Linux

/dev/sda 和 /dev/sda1 之間的區別

  • June 16, 2016

我知道 /dev/sda 是原始設備,而 /dev/sda1 是分區或虛擬設備。

但是我有點困惑為什麼 sda# 只在某些時候出現,或者只在某些系統上出現。是什麼導致這種情況發生?也許 sda# 驅動器不出現的時候是它未分區的時候?或者硬體之間可能不一樣?

為什麼我可以同時安裝兩者?(有時)分區不應該是可掛載的嗎?

您可以提供的任何資源或顏色將不勝感激。先感謝您。

在現代系統上,分區設備只有在分區實際存在時才會出現。

在具有 MBR 分區表的磁碟上,分區號 1 到 4 對應於分區表中的四個插槽,稱為“主”分區。它們不必按順序填充,因此有可能,例如,有一個 sda2 但沒有 sda1。分區號 5 及以上對應於擴展分區中的“邏輯驅動器”,它們總是按順序編號,因此如果沒有 sda5,就不能擁有 sda6。

在具有 GPT 分區表的磁碟上,可以有更多(通常最多 128 個)分區,並且都是“主”分區。例如,您可以擁有一個唯一分區為 sda9 的磁碟。

如果磁碟沒有分區表,那麼它當然沒有分區設備。

較舊的系統——那些使用靜態 /dev 而不是由 udev 管理的系統——通常會為所有可能的分區號提供設備節點,而不管分區是否實際存在。(當然,嘗試為不存在的分區打開設備文件會失敗。)


可以放棄分區並將文件系統直接放在磁碟上。當您掛載塊設備時,文件系統驅動程序通常會在距設備開頭預定偏移量處查找超級塊,並且由於分區的開頭不是磁碟本身的開頭,因此分區中文件系統的超級塊位於磁碟上與在“整個磁碟”設備上創建的文件系統的超級塊不同的位置。

因此,如果磁碟過去只有一個文件系統,然後它被分區並在一個分區中創建了一個文件系統,那麼舊的超級塊可能仍然存在,例如在第一個分區開始之前的小間隙中。所以磁碟似乎在原始磁碟設備和分區設備上都有一個文件系統,因為無論你嘗試掛載哪個,當文件系統驅動程序去尋找超級塊時,它都會找到一個。

但是,掛載和使用這兩個文件系統實際上並不安全,因為它們在磁碟上重疊。一個人可能在另一個人認為是可用空間的地方擁有重要的簿記數據。這就是為什麼將塊設備的開頭歸零、刪除任何不需要的超級塊、將原始磁碟更改為分區磁碟(反之亦然)或更改分區上使用的文件系統類型等時是個好主意的原因.

引用自:https://serverfault.com/questions/338937