Mount
Linux根據哪種算法分配硬碟驅動器號?
我觀察到,在同一系統的重複啟動之間,設備名稱
/dev/sda
、/dev/sdb/
…和物理硬碟驅動器之間的映射保持不變。但是,如果我將硬碟驅動器插入主機板上的不同插槽或添加/刪除驅動器,我不確定它是否保持不變。
Linux 對設備名稱到物理硬碟的映射有什麼保證?
它使用哪些規則將物理硬碟驅動器映射到 /dev/ 中的文件?
驅動器名稱(在典型的 Linux 系統上)由核心決定(因為必須首先在那裡檢測到設備),然後可能由 udev 修改。它如何決定哪個硬體映射到哪個塊特殊文件是一個實現細節,這將取決於您的 udev 配置、核心配置、模組設置和許多其他事情(包括運氣)。
即使使用相同的硬體和配置,也不能保證設備到驅動器號的映射始終相同(由於競爭條件,有些系統特別容易交換設備名稱,例如並行模組載入的系統) .
要回答您沒有提出的問題,
/dev/sd*
除非您事先確定要安裝的設備(例如,您在使用fdisk
和/或檢查後手動安裝blkid
),否則不要用作任何東西的標識符。相反,使用文件系統標籤、文件系統 UUID 或磁碟 ID 來確保您通過其屬性而不是檢測順序指向正確的設備、分區或文件系統。您可以在 中找到磁碟 ID/dev/disk/by-id
,這是一個方便的掛載位置,並保證您始終使用同一個磁碟。要查找可用於目前分區的磁碟 ID
/dev/sda1
,例如,您可以使用find
:$ find -L /dev/disk/by-id -samefile /dev/sda1 /dev/disk/by-id/wwn-0x5000cca22dd9fc29-part1 /dev/disk/by-id/ata-HGST_HUS724020ALA640_PN1181P6HV51ZW-part1