Linux中的主機規劃和磁碟分割槽

2021-08-27 09:15:42 字數 3697 閱讀 7851

以下內容摘自《鳥哥的私房菜》

在linux系統中,每個裝置都被當成乙個檔案來對待。比如說:ide介面的硬碟檔案的檔名是/dev/hd[a-d]。

下面列出了一些常見裝置在linux中的檔名

裝置                                          

裝置在linux內的檔名                                

ide硬碟

/dev/hd[a-d]

scsi/sata/usb硬碟(也就是行動硬碟??)

/dev/sd[a-p]

u盤/dev/sd[a-p]同上一樣

軟碟機(還有人用???)

/dev/fd[0-1]

印表機25針:/dev/lp[0-2]

usb:/dev/usb/lp[0-15]

滑鼠

usb:/dev/usb/mouse[0-15]

ps2:/dev/psaux

當前cd rom/*** rom

/dev/cdrom

當前滑鼠

/dev/mouse

磁帶機(還有人用???)

ide:/dev/ht0

ide:/dev/st0

那麼下來我們來看看磁碟分割槽

1)磁碟連線的方式與裝置檔名的關係

對著上面的圖就可以知道他們之間的關係

q: 為什麼ide介面的裝置名只能是/dev/hd[a-d]四個呢??

a:這是因為乙個ide扁平電纜可以連線兩個ide裝置,通常情況下,主機又都只提供2個這樣的電纜,因此最多只能連線4個ide裝置。

2)磁碟的組成

我們知道磁碟主要有碟片、機械手臂、磁頭與主軸馬達等組成,而資料的寫入其實只是在碟片。碟片上面又可以細分為扇區與柱面兩種單位,其中每個扇區的大小為512bytes那麼大。柱面是檔案系統最小的單位,也是分割槽的最小單位。

乙個碟片有多個扇區,但是第乙個扇區特別重要,這是因為他記錄了整塊磁碟的重要資訊。最主要的兩個資訊為:

1)主引導分割槽(master boot record,mbr):可以安裝引導引導程式的地方,大小為446bytes。

mbr非常的重要,因為系統在開機的時候會主動去讀取這個區域的資訊,這樣系統才會知道你的程式放在**,且該如何開機。

2)分割槽表(partition table):記錄整塊磁碟分割槽的狀態,有64bytes。

在分割槽表的64bytes容量中,總共分為四組記錄區,每組記錄區記錄了該區段的起始於與結束的柱面號碼。如下圖所示:

圖:磁碟分割槽表的作用示意圖

從上圖我們可以得到:

所謂的分割槽只是針對那個64bytes的分割槽表進行設定而已

磁碟預設的分割槽表僅能寫入四組分割槽資訊

這四組分割槽我們成為主分割槽(primary)或擴充套件分割槽(extended)

分割槽最小的單位是柱面(cylinder)

q:既然第乙個磁區所在的分割表只能記錄四筆資料, 那我可否利用額外的磁區來記錄更多的分割資訊???

a: 可以。如下圖所示:

在上圖當中,我們知道硬碟的四個分割記錄區僅使用到兩個,p1為主要分割,而p2則為擴充套件分配。請注意,擴充套件分配的目的是使用額外的磁區來記錄分割資訊,擴充套件分配本身並不能被拿來格式化然後我們可以透過擴充套件分配所指向的那個區塊繼續作分割的記錄。

如上圖右下方那個區塊有繼續分割出五個分割槽, 這五個由擴充套件分配繼續切出來的分割槽,就被稱為邏輯分割槽(logical partition)。 同時注意一下,由於邏輯分割槽是由擴充套件分配繼續分割出來的,所以他可以使用的磁柱範圍就是擴充套件分配所配置的範圍喔! 也就是圖中的101~400啦!

同樣的,上述的分割槽在linux系統中的裝置檔名分別如下:

仔細看看,怎麼裝置檔名沒有/dev/hda3與/dev/hda4呢?因為前面四個號碼都是保留給primary或extended用的嘛!所以邏輯分割槽的裝置名稱號碼就由5號開始了!這是個很重要的特性,不能忘記喔!

所以我們總結一下:

1)主分割槽與擴充套件分割槽最多可以有4個

2)擴充套件分割槽最多只能有乙個

3)邏輯分割槽時由擴充套件分割槽持續切割出來的分割槽

4)能被格式化後作為資料訪問的分割槽為主分割槽和邏輯分割槽,擴充套件分割槽是無法格式化的。

5)邏輯分割槽的數量依作業系統而不同,在linux系統中,ide硬碟最多有59個邏輯分割槽,sata硬碟則有11個邏輯分割槽。

3)開機流程與主引導分割槽(mbr)

簡單的說,整個啟動流程到作業系統之前的動作應該是這樣的:

bios:啟動主動執行的韌體,會認識第乙個可啟動的裝置;

mbr:第乙個可啟動裝置的第乙個磁區內的主要啟動記錄區塊,內含啟動管理程式;

啟動管理程式(boot loader):一支可讀取核心檔案來執行的軟體;

核心檔案:開始作業系統的功能...

由上面的說明我們會知道,bios與mbr都是硬體本身會支援的功能,至於boot loader則是作業系統安裝在mbr上面的一套軟體了。由於mbr僅有446 bytes而已,因此這個啟動管理程式是非常小而美的。 這個boot loader的主要任務有底下這些專案:

上面前兩點還容易理解,但是第三點很有趣喔!那表示你的計算機系統裡面可能具有兩個以上的啟動管理程式呢! 有可能嗎?我們的硬碟不是只有乙個mbr而已?是沒錯啦!但是啟動管理程式除了可以安裝在mbr之外, 還可以安裝在每個分割槽的啟動磁區(boot sector)喔!瞎密?分割槽還有各別的啟動磁區喔? 沒錯啊!這個特色才能造就『多重啟動』的功能啊!

我們舉乙個例子來說,假設你的個人計算機只有乙個硬碟,裡面切成四個分割槽,其中第

一、二分區分別安裝了windows及linux, 你要如何在啟動的時候選擇用windows還是linux啟動呢?假設mbr內安裝的是可同時認識windows/linux作業系統的啟動管理程式, 那麼整個流程可以圖示如下:

在上圖中我們可以發現,mbr的啟動管理程式提供兩個選單,選單一(m1)可以直接載入windows的核心檔案來啟動; 選單二(m2)則是將啟動管理工作交給第二個分割槽的啟動磁區(boot sector)。當使用者在啟動的時候選擇選單二時, 那麼整個啟動管理工作就會交給第二分割槽的啟動管理程式了。 當第二個啟動管理程式啟動後,該啟動管理程式內(上圖中)僅有乙個啟動選單,因此就能夠使用linux的核心檔案來啟動羅。 這就是多重啟動的工作情況啦!我們將上圖作個總結:

那現在請你想一想,為什麼人家常常說:『如果要安裝多重啟動, 最好先安裝windows再安裝 linux』呢?這是因為:

linux在安裝的時候,你可以選擇將啟動管理程式安裝在mbr或各別分割槽的啟動磁區, 而且linux的loader可以手動

配置選單(就是上圖的m1, m2...),所以你可以在linux的boot loader裡面加入windows啟動的選項

windows在安裝的時候,他的安裝程式會主動的覆蓋掉mbr以及自己所在分割槽的啟動磁區,你沒有選擇的機會, 而且他沒有讓我們自己選擇選單的功能。

Linux主機規劃與磁碟分割槽

linux的核心概念 各個元件或裝置在linux下面都是乙個檔案。這也是和windows系統最大的不同 各硬體裝置在linux中的檔名 裝置 裝置在linux中的檔名 scsi sata usb硬碟 dev sd a p 中括號中的字母代表不同的硬碟 u盤 dev sd a p virtio介面 d...

02 主機規劃和磁碟分割槽

正常的實體機器使用的磁碟名大多是 dev sd a 的磁碟檔名,虛擬機器環境下大多會使用 dev vd a p 這種檔名 最多只有4個主要的分割槽,可以是主分割槽 primary 和擴充套件分割槽 extended 分割槽 可以通過擴充套件分割槽進行擴充套件的的邏輯 logical 分割槽.新的gp...

Linux 學習「主機規劃與磁碟分割槽」

磁碟陣列是利用硬體技術將數個硬碟整合成乙個大硬碟的方法,作業系統只會看到整合後的大硬碟 在linux裡每個裝置都被當成乙個檔案來對待 linux中幾乎所有的硬體裝置都在dev這個目錄下 linux中ide介面分插不一樣地方名字固定,但是sata介面就不同了,它有不定的順序,根據系統檢測到的順序 磁碟...