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:'
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?
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:'
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.
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
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.
Tags block-device