我有一个块设备。它已从系统中删除,稍后再次添加。如何验证它是否是完全相同的设备?
该设备将始终是大容量存储设备(我不打算写入并且只会以只读方式安装)。
我可以md5sum
同时使用两个设备并验证哈希值是否匹配,但这对于大型存储设备来说非常耗时。
有没有更快的方法?
答案1
的输出fdisk -l $device
包括一行以“磁盘标识符:”开头的行,其中包含来自设备的一些详细信息,这些详细信息通常对其来说是唯一且持久的。插图:
# fdisk -l /dev/sda | grep 'Disk identifier:'
答案2
您可以使用设备 UUID。
lsblk -f
或者blkid
。
UUID 可以设置(使用tune2fs
),但对于大多数用例来说,它应该足够唯一。
答案3
硬编码唯一(?)ID
大多数大容量存储设备(也许不是全部)都有一个硬编码的唯一 ID,可以在 中看到/dev/disk/by-id
。以下命令行将显示此 ID,
sudo ls -l /dev/disk/by-id|grep -v '[1-9]$'|tr -s ' ' '\t'|cut -f 9- | sed 's#../../#/dev/#'
并显示它所代表的块设备,' -> /dev/sdx
'
示例(我的工作计算机连接了三个 USB 闪存盘),
$ 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
如果存在带有文件系统的分区,则每个文件系统也有 UUID,这些文件系统通常但并不总是唯一的,具体取决于它们是单独创建的还是从某些常见的原始文件系统或映像文件克隆的。 UUID 可以通过blkid
以下lsblk
命令行显示,
lsblk -l -o name,size,UUID,model
示例(我的工作计算机连接了三个 USB 闪存盘),
$ 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
这些方法足以帮助我在快速手动检查后识别连接的大容量存储设备。
可以自动使用硬编码 ID 和/或 UUID。例如,您可以为您拥有的每个大容量存储设备创建一个相应的 md5sum,并将 md5sum 存储在 shell 脚本的变量中,您可以在其中检查匹配项。