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

2023-05-11 15:35 更新

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

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

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

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

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

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

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

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

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

圖6-2 設(shè)備文件名稱

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

正是因為計算機有了硬盤設(shè)備,我們才可以在玩游戲的過程中或游戲通關(guān)之后隨時存檔,而不用每次重頭開始。硬盤設(shè)備是由大量的扇區(qū)組成的,每個扇區(qū)的容量為512字節(jié)。其中第一個扇區(qū)最重要,它里面保存著主引導(dǎo)記錄與分區(qū)表信息。就第一個扇區(qū)來講,主引導(dǎo)記錄需要占用446字節(jié),分區(qū)表為64字節(jié),結(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個)的需求。當(dāng)然,就目前來講大家只要明白為什么主分區(qū)不能超過4個就足夠了。主分區(qū)、擴展分區(qū)、邏輯分區(qū)可以像圖6-4那樣來規(guī)劃。

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

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

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

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號