首頁 > 軟體

【主機規劃與磁碟分割區】 磁碟分割區 MBR

2020-06-16 18:07:19

磁碟連線的方式與裝置檔名的關係
主流的磁碟介面為SATA介面。
SATA/USB/SCSI等磁碟介面都是使用SCSI模組來驅動的,因此這些介面的磁碟裝置檔名都是/dev/sd[a-p]的格式。順序需要根據Linux核心檢測到磁碟的順序來決定。

比如PC上面有兩個SATA磁碟以及一個USB磁碟,而主機板上面有6個SATA的插槽。這兩個SATA磁碟分別安插在轉的SATA1 SATA5介面上,請問這三個磁碟在Linux中的裝置檔名是什麼?
1.SATA1插槽上的檔名 /dev/sda
2.SATA2插槽上的檔名 /dev/sdb
3.USB磁碟(開機完成後才被系統識別) /dev/sdc

磁碟的組成複習
磁碟資料的寫入實際上是在碟片上面。碟片上面又可以細分出磁區(Sector)與柱面(Cylinder)兩種單位,其中磁區每個為512bytes那麼大。

每塊磁碟的第一個磁區特別重要,因為它記錄了整塊磁碟的兩個重要資訊:
①主引導分割區(Master Boot Record MBR):可以安裝引導載入程式的地方,有446 bytes
②分割區表(partition table):記錄整塊硬碟分割區的狀態,有64bytes

MBR是很重要的,因為系統在開機的時候會主動去讀取這個區塊的內容,這樣系統才會知道你的程式放在哪裡且該如何進行開機。如果你要安裝多重引導的系統 MBR這個區塊的管理就非常重要了。
分割區表記錄磁碟的分割區情況,在下面介紹。

磁碟分割區表(partition table)
柱面是檔案系統的最小單位,也就是分割區的最小單位。我們就是利用參考柱面號碼的方式來處理,在分割區表所在的64bytes容量中,總共分為四組記錄區,每組記錄區記錄了該區段的起始與結束的柱面號碼。

假設上面的硬碟裝置檔名是是/dev/hda時,那麼這四個分割區在Linux系統中的裝置檔名如下所示:
P1:/dev/hda1
P2:/dev/hda2
P3:/dev/hda3
P4:/dev/hda4

由於分割區表的容量限制,最多只能容納四個分割區。這四個分割區被稱為主(Primary)或者擴充套件(Extended)分割區。
請注意以下資訊:
①其實所謂的”分割區”只是針對那個64bytes的分割區表進行設定而已。
②硬碟預設的分割區表僅能寫入四組分割區資訊。
③這四組分割區資訊我們稱為主(Primary)和擴充套件(Extended)分割區。
④分割區的最小單位為柱面(cylinder)。

當系統要寫入磁碟時,一定會參考磁碟分割區表,才能針對某個分割區進行資料的處理。

為什麼”分割區”?
原因①:資料的安全性
原因②:系統的效能考慮

雖然分割區表只能記錄四個分割區,但是不代表我們最多只能分割區四個。既然第一個磁區所在的分割區表只能記錄四個資料,那可以利用額外的磁區來記錄更多的分割區資訊。
擴充套件分割區的目的是使用額外的磁區來記錄分割區資訊,擴充套件分割區本身並不能被拿來格式化。但是我們可以通過擴充套件分割區所指向的那個區塊繼續做分割區記錄。

由擴充套件分割區繼續切出來的分割區稱為邏輯分割區(logical partition)。由於邏輯分割區是由擴充套件分割區繼續分割區出來的,所以它可以使用的柱面範圍就是擴充套件分割區所設定的範圍。
需要注意的時,不管分割區表的4個記錄用不用完,檔案中1-4始終都是保留著呢。即使只用了一個主分割區,擴充套件分割區也是從5開始。

請注意以下資訊:
①主分割區與擴充套件分割區最多可以有四個(硬碟的限制)。
②擴充套件分割區最多只能有一個(作業系統的限制)。
③邏輯分割區是由擴充套件分割區持續切割出來的分割區。
④能夠被格式化後作為資料存取的分割區為主分割區和邏輯分割區。擴充套件分割區無法格式化。
⑤邏輯分割區的數量依作業系統不同而不同。在Linux系統中,SATA硬碟最多有11個邏輯分割區(5號到15號)

注意: 如果擴充套件分割區被破壞,所有邏輯分割區都將會被刪除。因為邏輯分割區的資訊都記錄在擴充套件分割區裡面。

所以,如果一個硬碟的第一個磁區(就是MBR與partition table所在的磁區)物理壞掉了,那這個硬碟大概就沒有用了。

舉個例子
舉個栗子
假設PC上有兩塊硬碟,在第二塊硬碟(sdb)分出6個可用的分割區,那麼每個分割區在Linux系統下的裝置檔名如何?

分法一: P+P+P+E的環境 (第四個做成擴充套件分割區,擴充套件分割區再分出3個邏輯分割區)
可用的分割區有:/dev/sdb(1,2,3,5,6,7)

分法二: P+E的環境
可用的分割區有:/dev/sdb(1,5,6,7,8,9)

開機流程與主引導分割區(MBR)
開機流程
CMOS:記錄各個硬體引數並且切入在主機板上面的儲存器
BIOS:一個寫入到主機板上的韌體。

BIOS是開機的時候計算機會主動執行的第一個程式。
接著BIOS會分析計算機裡面有哪些儲存裝置,並且到硬碟裡面去讀取第一個磁區的MBR位置。 MBR這個僅有446bytes的硬碟容量裡面會放置最基本的引導載入程式。 接著MBR 識別硬碟內的檔案系統格式,引導載入核心檔案 ,進入作業系統。

簡單說開機步驟:
①BIOS:開機主動執行的韌體,會認識第一個可開機的裝置。
②MBR:第一個可開機裝置的第一個磁區內的主引導分割區塊,內包含引導載入程式。
③引導載入程式(Boot loader):一支可讀取核心檔案來執行的軟體。
④核心檔案:開始作業系統的功能。

主引導分割區(MBR)
Boot loader是作業系統安裝在MBR上面的一套軟體,這個程式小而完美。這個boot loader的主要任務有下面這些專案:
①提供選單:使用者可以選擇不同的開機選項,這也是多重引導的重要功能。
②載入核心檔案 :直接指向可開機的程式區段來開始作業系統。
③轉交其他loader:將引導載入功能轉交給其他loader負責。(多系統)

引導載入程式除了可以安裝在MBR之外,還可以安裝在每個分割區的引導磁區(boot sector)

請注意一下資訊:
①每個分割區都擁有自己的啟動磁區(boot sector)
②實際可開機的核心檔案是放置到各分割區內的
③loader只會認識自己的系統分割區內的可開機核心檔案,以及其他loader而已
④loader可以直接指向或是間接將管理權轉交給另一個管理程式。

windows安裝程式會主動覆蓋掉MBR以及自己所在分割區的啟動磁區 ,所以如果雙系統,最好先安裝windows再安裝linux。
(否則也可以用Linux的救援模式來挽救MBR)

Linux安裝模式下,磁碟分割區的選擇(極重要)
目錄樹結構
整個Linux最重要的地方就是在與 目錄樹 結構。所謂的目錄樹結構是指 以根目錄(/)為主, 然後向下呈現分支狀的目錄結構的一種檔案結構。 所有的檔案都與目錄樹有關。

如何結合目錄樹的架構和磁碟內的資料,就要牽扯到”掛載”了。

檔案系統與目錄樹的關係
利用一個目錄當成進入點, 將磁碟分割區的資料放置在該目錄下。也就是說,進入該目錄就可以讀取該分割區的意思。
這個操作稱為 掛載 ,那個進入點的目錄稱為 掛載點 。

根目錄一定需要掛載到某個分割區

舉個例子
舉個栗子
partition1掛載到根目錄,partition2掛載到/home目錄。也就是說,我的資料放在/home內的各次目錄時,資料是放在partition2的。如果不是放在/home下面的目錄,那麼資料就會被放置到partition1。

安裝distributions時,掛載點與磁碟分割區的規劃
安裝Linux時選擇自定義安裝(專家安裝)。

自定義安裝”Custom”
初次接觸linux:只要分割區”/”和”swap”即可
建議分割區的方法:預留一個備用的剩餘磁碟容量。

選擇Linux安裝程式提供的預設硬碟分割區方式
安裝Linux盡量不要選擇預設的Server安裝選項。


IT145.com E-mail:sddin#qq.com