USB 设备何时挂载为 sdb,何时挂载为 sdc?

USB 设备何时挂载为 sdb,何时挂载为 sdc?

上周我有一个脚本希望我的 USB 是 sdc,我正在使用这个命令

usb_path=`lsblk | grep sdc1 | awk '{print $7}'`

但后来我回来看到棒子是空的,因为棒子的名字是sdb。那么这根棍子的名字取决于什么呢?当它获得 sdc 时,我没有插入其他磁盘,现在它是 sdb,也没有插入其他磁盘。所以我能看到的唯一区别是时间,但这似乎很愚蠢。哦,这是与上周相同的 U 盘。

答案1

/中的字母b/是一个计数器。csdbsdc

检测到的第一个磁盘获取sda,第二个磁盘获取sdb,依此类推。

例如,如果您在插入 U 盘时连接暂时松动,则可能会跳过字母。首先,USB 棒获得sdb,然后连接中断并重新建立,然后它获得sdc,因为sdb尚未释放。

由于您不能指望同一设备每次都获得相同的名称,Ubuntu 有一个目录,其中包含指向磁盘的符号链接,这些磁盘绑定到磁盘上文件系统的 ID: /dev/disk/by-uuid/

您连接的每个磁盘上的每个分区都会在此目录中获得一个条目,并且对于同一分区,该条目始终保持不变。

如果您想访问插入特定 USB 端口的 USB 记忆棒而不是通过 USB 记忆棒的标识,您可以使用 中的条目/dev/disk/by-path

lsblk如果您想要有关特定设备的信息,则接受参数。因此,lsblk | grep …您可以使用例如lsblk /dev/disk/by-id/1234-5678lsblk /dev/disk/by-path/pci-0000:00:2.0-usb-0:1:1.0-scsi-0:0:0:0

相关内容