W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在Linux系統(tǒng)中一切都是文件,硬件設(shè)備也不例外。既然是文件,就必須有文件名稱(chēng)。系統(tǒng)內(nèi)核中的udev設(shè)備管理器會(huì)自動(dòng)把硬件名稱(chēng)規(guī)范起來(lái),目的是讓用戶(hù)通過(guò)設(shè)備文件的名字可以猜出設(shè)備大致的屬性以及分區(qū)信息等;這對(duì)于陌生的設(shè)備來(lái)說(shuō)特別方便。另外,udev設(shè)備管理器的服務(wù)會(huì)一直以守護(hù)進(jìn)程的形式運(yùn)行并偵聽(tīng)內(nèi)核發(fā)出的信號(hào)來(lái)管理/dev目錄下的設(shè)備文件。Linux系統(tǒng)中常見(jiàn)的硬件設(shè)備的文件名稱(chēng)如表6-2所示。
表6-2 常見(jiàn)的硬件設(shè)備及其文件名稱(chēng)
硬件設(shè)備 | 文件名稱(chēng) |
---|---|
IDE設(shè)備 | /dev/hd[a-d] |
SCSI/SATA/U盤(pán) | /dev/sd[a-z] |
virtio設(shè)備 | /dev/vd[a-z] |
軟驅(qū) | /dev/fd[0-1] |
打印機(jī) | /dev/lp[0-15] |
光驅(qū) | /dev/cdrom |
鼠標(biāo) | /dev/mouse |
磁帶機(jī) | /dev/st0或/dev/ht0 |
由于現(xiàn)在的IDE設(shè)備已經(jīng)很少見(jiàn)了,所以一般的硬盤(pán)設(shè)備都會(huì)是以“/dev/sd”開(kāi)頭的。而一臺(tái)主機(jī)上可以有多塊硬盤(pán),因此系統(tǒng)采用a~p來(lái)代表16塊不同的硬盤(pán)(默認(rèn)從a開(kāi)始分配),而且硬盤(pán)的分區(qū)編號(hào)也很有講究:
主分區(qū)或擴(kuò)展分區(qū)的編號(hào)從1開(kāi)始,到4結(jié)束;
邏輯分區(qū)從編號(hào)5開(kāi)始。
國(guó)內(nèi)很多Linux培訓(xùn)講師以及很多知名Linux圖書(shū)在講到設(shè)備和分區(qū)名稱(chēng)時(shí),總會(huì)講錯(cuò)兩個(gè)知識(shí)點(diǎn)。第一個(gè)知識(shí)點(diǎn)是設(shè)備名稱(chēng)的理解錯(cuò)誤。很多培訓(xùn)講師和Linux技術(shù)圖書(shū)中會(huì)提到,比如/dev/sda表示主板上第一個(gè)插槽上的存儲(chǔ)設(shè)備,學(xué)員或讀者在實(shí)踐操作的時(shí)候會(huì)發(fā)現(xiàn)果然如此,因此也就對(duì)這條理論知識(shí)更加深信不疑。但真相不是這樣的,/dev目錄中sda設(shè)備之所以是a,并不是由插槽決定的,而是由系統(tǒng)內(nèi)核的識(shí)別順序來(lái)決定的,而恰巧很多主板的插槽順序就是系統(tǒng)內(nèi)核的識(shí)別順序,因此才會(huì)被命名為/dev/sda。大家以后在使用iSCSI網(wǎng)絡(luò)存儲(chǔ)設(shè)備時(shí)就會(huì)發(fā)現(xiàn),明明主板上第二個(gè)插槽是空著的,但系統(tǒng)卻能識(shí)別到/dev/sdb這個(gè)設(shè)備就是這個(gè)道理。
第二個(gè)知識(shí)點(diǎn)是對(duì)分區(qū)名稱(chēng)的理解錯(cuò)誤。很多Linux培訓(xùn)講師會(huì)告訴學(xué)員,分區(qū)的編號(hào)代表分區(qū)的個(gè)數(shù)。比如sda3表示這是設(shè)備上的第三個(gè)分區(qū),而學(xué)員在做實(shí)驗(yàn)的時(shí)候確實(shí)也會(huì)得出這樣的結(jié)果,但是這個(gè)理論知識(shí)是錯(cuò)誤的,因?yàn)榉謪^(qū)的數(shù)字編碼不一定是強(qiáng)制順延下來(lái)的,也有可能是手工指定的。因此sda3只能表示是編號(hào)為3的分區(qū),而不能判斷sda設(shè)備上已經(jīng)存在了3個(gè)分區(qū)。
在填了這兩個(gè)“坑”之后,劉遄老師再來(lái)分析一下/dev/sda5這個(gè)設(shè)備文件名稱(chēng)包含哪些信息,如圖6-2所示。
圖6-2 設(shè)備文件名稱(chēng)
首先,/dev/目錄中保存的應(yīng)當(dāng)是硬件設(shè)備文件;其次,sd表示是存儲(chǔ)設(shè)備;然后,a表示系統(tǒng)中同類(lèi)接口中第一個(gè)被識(shí)別到的設(shè)備,最后,5表示這個(gè)設(shè)備是一個(gè)邏輯分區(qū)。一言以蔽之,“/dev/sda5”表示的就是“這是系統(tǒng)中第一塊被識(shí)別到的硬件設(shè)備中分區(qū)編號(hào)為5的邏輯分區(qū)的設(shè)備文件”。考慮到我們的很多讀者完全沒(méi)有Linux基礎(chǔ),不太容易理解前面所說(shuō)的主分區(qū)、擴(kuò)展分區(qū)和邏輯分區(qū)的概念,因此接下來(lái)簡(jiǎn)單科普一下硬盤(pán)相關(guān)的知識(shí)。
正是因?yàn)橛?jì)算機(jī)有了硬盤(pán)設(shè)備,我們才可以在玩游戲的過(guò)程中或游戲通關(guān)之后隨時(shí)存檔,而不用每次重頭開(kāi)始。硬盤(pán)設(shè)備是由大量的扇區(qū)組成的,每個(gè)扇區(qū)的容量為512字節(jié)。其中第一個(gè)扇區(qū)最重要,它里面保存著主引導(dǎo)記錄與分區(qū)表信息。就第一個(gè)扇區(qū)來(lái)講,主引導(dǎo)記錄需要占用446字節(jié),分區(qū)表為64字節(jié),結(jié)束符占用2字節(jié);其中分區(qū)表中每記錄一個(gè)分區(qū)信息就需要16字節(jié),這樣一來(lái)最多只有4個(gè)分區(qū)信息可以寫(xiě)到第一個(gè)扇區(qū)中,這4個(gè)分區(qū)就是4個(gè)主分區(qū)。第一個(gè)扇區(qū)中的數(shù)據(jù)信息如圖6-3所示。
圖6-3 第一個(gè)扇區(qū)中的數(shù)據(jù)信息
現(xiàn)在,問(wèn)題來(lái)了—第一個(gè)扇區(qū)最多只能創(chuàng)建出4個(gè)分區(qū)?于是為了解決分區(qū)個(gè)數(shù)不夠的問(wèn)題,可以將第一個(gè)扇區(qū)的分區(qū)表中16字節(jié)(原本要寫(xiě)入主分區(qū)信息)的空間(稱(chēng)之為擴(kuò)展分區(qū))拿出來(lái)指向另外一個(gè)分區(qū)。也就是說(shuō),擴(kuò)展分區(qū)其實(shí)并不是一個(gè)真正的分區(qū),而更像是一個(gè)占用16字節(jié)分區(qū)表空間的指針—一個(gè)指向另外一個(gè)分區(qū)的指針。這樣一來(lái),用戶(hù)一般會(huì)選擇使用3個(gè)主分區(qū)加1個(gè)擴(kuò)展分區(qū)的方法,然后在擴(kuò)展分區(qū)中創(chuàng)建出數(shù)個(gè)邏輯分區(qū),從而來(lái)滿(mǎn)足多分區(qū)(大于4個(gè))的需求。當(dāng)然,就目前來(lái)講大家只要明白為什么主分區(qū)不能超過(guò)4個(gè)就足夠了。主分區(qū)、擴(kuò)展分區(qū)、邏輯分區(qū)可以像圖6-4那樣來(lái)規(guī)劃。
所謂擴(kuò)展分區(qū),嚴(yán)格地講它不是一個(gè)實(shí)際意義的分區(qū),它僅僅是一個(gè)指向下一個(gè)分區(qū)的指針,這種指針結(jié)構(gòu)將形成一個(gè)單向鏈表。
圖6-4 硬盤(pán)分區(qū)的規(guī)劃
讀者們來(lái)試著解讀下/dev/hdc8代表著什么?(答案模式) https://www.linuxprobe.com/chapter-06.html 答案:這是第三塊IDE設(shè)備(比較少見(jiàn)了)中的編號(hào)為8的邏輯分區(qū)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: