6.2 物理設備的命名規(guī)則

2023-05-11 15:35 更新

在Linux系統(tǒng)中一切都是文件,硬件設備也不例外。既然是文件,就必須有文件名稱。系統(tǒng)內核中的udev設備管理器會自動把硬件名稱規(guī)范起來,目的是讓用戶通過設備文件的名字可以猜出設備大致的屬性以及分區(qū)信息等;這對于陌生的設備來說特別方便。另外,udev設備管理器的服務會一直以守護進程的形式運行并偵聽內核發(fā)出的信號來管理/dev目錄下的設備文件。Linux系統(tǒng)中常見的硬件設備的文件名稱如表6-2所示。

表6-2 常見的硬件設備及其文件名稱

硬件設備 文件名稱
IDE設備 /dev/hd[a-d]
SCSI/SATA/U盤 /dev/sd[a-z]
virtio設備 /dev/vd[a-z]
軟驅 /dev/fd[0-1]
打印機 /dev/lp[0-15]
光驅 /dev/cdrom
鼠標 /dev/mouse
磁帶機 /dev/st0或/dev/ht0

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

主分區(qū)或擴展分區(qū)的編號從1開始,到4結束;

邏輯分區(qū)從編號5開始。

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

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

在填了這兩個“坑”之后,劉遄老師再來分析一下/dev/sda5這個設備文件名稱包含哪些信息,如圖6-2所示。

圖6-2 設備文件名稱

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

正是因為計算機有了硬盤設備,我們才可以在玩游戲的過程中或游戲通關之后隨時存檔,而不用每次重頭開始。硬盤設備是由大量的扇區(qū)組成的,每個扇區(qū)的容量為512字節(jié)。其中第一個扇區(qū)最重要,它里面保存著主引導記錄與分區(qū)表信息。就第一個扇區(qū)來講,主引導記錄需要占用446字節(jié),分區(qū)表為64字節(jié),結束符占用2字節(jié);其中分區(qū)表中每記錄一個分區(qū)信息就需要16字節(jié),這樣一來最多只有4個分區(qū)信息可以寫到第一個扇區(qū)中,這4個分區(qū)就是4個主分區(qū)。第一個扇區(qū)中的數(shù)據(jù)信息如圖6-3所示。

圖6-3 第一個扇區(qū)中的數(shù)據(jù)信息

現(xiàn)在,問題來了—第一個扇區(qū)最多只能創(chuàng)建出4個分區(qū)?于是為了解決分區(qū)個數(shù)不夠的問題,可以將第一個扇區(qū)的分區(qū)表中16字節(jié)(原本要寫入主分區(qū)信息)的空間(稱之為擴展分區(qū))拿出來指向另外一個分區(qū)。也就是說,擴展分區(qū)其實并不是一個真正的分區(qū),而更像是一個占用16字節(jié)分區(qū)表空間的指針—一個指向另外一個分區(qū)的指針。這樣一來,用戶一般會選擇使用3個主分區(qū)加1個擴展分區(qū)的方法,然后在擴展分區(qū)中創(chuàng)建出數(shù)個邏輯分區(qū),從而來滿足多分區(qū)(大于4個)的需求。當然,就目前來講大家只要明白為什么主分區(qū)不能超過4個就足夠了。主分區(qū)、擴展分區(qū)、邏輯分區(qū)可以像圖6-4那樣來規(guī)劃。

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

圖6-4 硬盤分區(qū)的規(guī)劃

讀者們來試著解讀下/dev/hdc8代表著什么?(答案模式) https://www.linuxprobe.com/chapter-06.html 答案:這是第三塊IDE設備(比較少見了)中的編號為8的邏輯分區(qū)。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號