Linux之常见的物理设备命名规则,既然是文件,就必須有


 在Linux系統中一切都是文件,硬件設備也不例外。既然是文件,就必須有文件名稱。系統內核中的udev設備管理器會自動把硬件名稱規範起來,目的是讓用戶通過設備文件的名字可以猜出設備大致的屬性以及分區信息等;這對於陌生的設備來說特別方便。另外,udev設備管理器的服務會一直以守護進程的形式運行並偵聽內核發出的信號來管理/dev目錄下的設備文件。

 由於現在的IDE設備已經很少見了,所以一般的硬盤設備都會是以“/dev/sd”開頭的。而一臺主機上可以有多塊硬盤,因此系統采用a~p來代表16塊不同的硬盤(默認從a開始分配),而且硬盤的分區編號也很有講究。

 國內很多Linux培訓講師以及很多知名Linux圖書在講到設備和分區名稱時,總會講錯兩個知識點。第一個知識點是設備名稱的理解錯誤。很多培訓講師和Linux技術圖書中會提到,比如/dev/sda表示主板上第一個插槽上的存儲設備,學員或讀者在實踐操作的時候會發現果然如此,因此也就對這條理論知識更加深信不疑。但真相不是這樣的,/dev目錄中sda設備之所以是a,並不是由插槽決定的,而是由系統內核的識別順序來決定的,而恰巧很多主板的插槽順序就是系統內核的識別順序,因此才會被命名為/dev/sda。大家以後在使用iSCSI網絡存儲設備時就會發現,明明主板上第二個插槽是空著的,但系統卻能識別到/dev/sdb這個設備就是這個道理。

  第二個知識點是對分區名稱的理解錯誤。很多Linux培訓講師會告訴學員,分區的編號代表分區的個數。比如sda3表示這是設備上的第三個分區,而學員在做實驗的時候確實也會得出這樣的結果,但是這個理論知識是錯誤的,因為分區的數字編碼不一定是強制順延下來的,也有可能是手工指定的。因此sda3只能表示是編號為3的分區,而不能判斷sda設備上已經存在了3個分區。

  首先,/dev/目錄中保存的應當是硬件設備文件;其次,sd表示是存儲設備;然後,a表示系統中同類接口中第一個被識別到的設備,最後,5表示這個設備是一個邏輯分區。一言以蔽之,“/dev/sda5”表示的就是“這是系統中第一塊被識別到的硬件設備中分區編號為5的邏輯分區的設備文件”。考慮到我們的很多讀者完全沒有Linux基礎,不太容易理解前面所說的主分區、擴展分區和邏輯分區的概念,因此接下來簡單科普一下硬盤相關的知識。

  正是因為計算機有了硬盤設備,我們才可以在玩遊戲的過程中或遊戲通關之後隨時存檔,而不用每次重頭開始。硬盤設備是由大量的扇區組成的,每個扇區的容量為512字節。其中第一個扇區最重要,它裏面保存著主引導記錄與分區表信息。就第一個扇區來講,主引導記錄需要占用446字節,分區表為64字節,結束符占用2字節;其中分區表中每記錄一個分區信息就需要16字節,這樣一來最多只有4個分區信息可以寫到第一個扇區中,這4個分區就是4個主分區。

  所謂擴展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鏈表。

相关内容