Como saber se um dispositivo de bloco é o mesmo que um conectado anteriormente?

0

Eu tenho um dispositivo de bloco. É removido do sistema e posteriormente adicionado novamente. Como posso verificar se é exatamente o mesmo dispositivo?

O dispositivo sempre será um dispositivo de armazenamento em massa (para o qual não estou planejando gravar e apenas montará somente leitura).

Eu consegui md5sum dos dois dispositivos e verifiquei se os hashes correspondem, mas isso consome tempo para os grandes dispositivos de armazenamento.

Existe um método mais rápido?

    
por Owen Pauling 15.06.2018 / 15:36

3 respostas

2

A saída de fdisk -l $device inclui uma linha iniciando 'Identificador de disco:' com alguns detalhes do dispositivo que normalmente é exclusivo e persistente para ele. Ilustração:

# fdisk -l /dev/sda | grep 'Disk identifier:'
    
por 15.06.2018 / 22:39
1

Você pode usar o UUID de dispositivos. lsblk -f ou blkid .

O UUID pode ser definido (com tune2fs ), mas para a maioria dos casos de uso, ele deve ser exclusivo o suficiente.

    
por 15.06.2018 / 16:47
1

ID exclusivo (?) codificado

A maioria dos dispositivos de armazenamento em massa (talvez nem todos) tem um ID exclusivo codificado, visto em /dev/disk/by-id . A seguinte linha de comando mostrará este ID,

sudo ls -l /dev/disk/by-id|grep -v '[1-9]$'|tr -s ' ' '\t'|cut -f 9- | sed 's#../../#/dev/#'

e também mostra em qual dispositivo de bloco ele é representado, ' -> /dev/sdx '

Exemplo (meu computador de trabalho com três pendrives USB conectados)

$ sudo ls -l /dev/disk/by-id|grep -v '[1-9]$'|tr -s ' ' '\t'|cut -f 9- | sed 's#../../#/dev/#'

ata-HL-DT-STDVD+-RW_GSA-H21L    ->  /dev/sr0
ata-KINGSTON_SKC300S37A120G_50026B724703BCA8    ->  /dev/sda
ata-WDC_WD4002FYYZ-01B7CB1_K3GWHAEB ->  /dev/sdb
usb-Corsair_Voyager_GT_3.0_070883862E1B9719-0:0 ->  /dev/sdc
usb-SanDisk_Cruzer_Blade_200429068118E7C2CFFD-0:0   ->  /dev/sde
usb-SanDisk_Cruzer_Blade_200429068118F440A09E-0:0   ->  /dev/sdd
wwn-0x5000cca25ccc7f97  ->  /dev/sdb
wwn-0x50026b724703bca8  ->  /dev/sda

UUID do (s) sistema (s) de arquivos

Se houver partições com sistemas de arquivos, também haverá UUIDs para cada sistema de arquivos, que geralmente são, mas nem sempre exclusivos, dependendo se foram criados individualmente ou clonados de algum sistema de arquivos original ou arquivo de imagem. Os UUIDs podem ser mostrados por blkid e por lsblk através da seguinte linha de comando,

lsblk -l -o name,size,UUID,model

Exemplo (meu computador de trabalho com três pendrives USB conectados)

$ lsblk -l -o name,size,UUID,model
NAME   SIZE UUID                                 MODEL
sda  111,8G                                      KINGSTON SKC300S
sda1 106,9G 0ac1cb43-1609-4fc3-8c69-3e21299729bc 
sda2     5G 6d54c49d-31ac-45fe-917c-2335bcfe7399 
sdb    3,7T                                      WDC WD4002FYYZ-0
sdb1   510M 9F05-5B18                            
sdb2     5G 08b7164f-8852-451b-9624-63b16a66359a 
sdb3    10G fa242ddd-90f8-4603-af5c-c89f4b71ac70 
sdb4    15G 491a6a2b-4867-44d5-94d8-082f79066a5a 
sdb5     1M                                      
sdb6   100G 44156f43-0958-4ea1-800d-b02afbc7d306 
sdb7   3,5T 862210fd-a6fd-4fe3-913c-e18e1448ef36 
sdb8     5G 6958d86a-57a9-4e40-8376-1e41258e5810 
sdc   29,5G                                      Voyager GT 3.0  
sdc1   9,1G 38028BF9184E3FB4                     
sdc2     1M                                      
sdc3   244M 4299-B748                            
sdc4   1,8G 2018-04-26-18-43-51-00               
sdc5  18,4G 033ffb75-518d-4335-89cb-ef7d159cf20b 
sdd    3,7G 2016-08-24-07-06-03-00               Cruzer Blade    
sdd1   1,3G 2016-08-24-07-06-03-00               
sde    3,7G 2016-07-19-21-27-51-00               Cruzer Blade    
sde1   1,4G 2016-07-19-21-27-51-00               
sde2   2,3M 0F7B-9366                            
sr0   1024M                                      DVD+-RW GSA-H21L

Esses métodos são suficientes para me ajudar a identificar os dispositivos de armazenamento em massa conectados após uma rápida inspeção manual.

É possível usar o ID codificado e / ou os UUIDs automaticamente. Por exemplo, você pode criar um md5sum correspondente para cada dispositivo de armazenamento em massa que você tenha e armazenar os md5sums em variáveis em um shellscript, onde você pode verificar as correspondências.

    
por 15.06.2018 / 17:31