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,依此類推。

例如,如果您在插入 USB 隨身碟時連接暫時鬆動,則可能會跳過字母。首先,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

相關內容