系統引導過程及硬碟分割槽結構論述

2021-06-04 01:43:51 字數 1999 閱讀 9768

系統引導過程主要由以下幾個步驟組成(以硬碟啟動為例)

1、 開機;

2、 bios加電自檢(post---power on self test),記憶體位址為0fff:0000;

3、 將硬碟第乙個扇區(0頭0道1扇區,也就是boot sector)讀入記憶體位址0000:7c00處;

4、 檢查(word)0000:7dfe是否等於0xaa55。若不等於則轉去嘗試其他介質;如果沒有其他啟動介質,則顯示 」no rombasic」 ,然後宕機;

5、 跳轉到0000:7c00處執行mbr中的程式;

6、 mbr先將自己複製到0000:0600處,然後繼續執行;

7、 在主分割槽表中搜尋標誌為活動的分割槽。如果發現沒有活動分割槽或者不止乙個活動分割槽,則停止;

8、 將活動分割槽的第乙個扇區讀入記憶體位址0000:7c00處;

9、 檢查(word)0000:7dfe是否等於0xaa55,若不等於則顯示 「missing operating system」,然後停止,或嘗試軟盤啟動;

10、 跳轉到0000:7c00處繼續執行特定系統的啟動程式;

11、 啟動系統。以上步驟中(2),(3),(4),(5)步由bios的引導程式完成;(6),(7),(8),(9),(10)步由mbr中的引導程式完成。

一般多系統引導程式(如smart boot manager, bootstar, pqboot等)都是將標準主引導記錄替換成自己的引導程式,在執行系統啟動程式之前讓使用者選擇想要啟動的分割槽。而某些系統自帶的多系統引導程式(如 lilo,nt loader等)則可以將自己的引導程式放在系統所處分區的第乙個扇區中,在linux中即為兩個扇區的superblock。 注:以上步驟中使用的是標準的mbr,多系統引導程式的引導過程與此不同。 

3d引數(disk geometry):chs(cylinder/head/sector)c-cylinder柱面數表示硬碟每面碟片上有幾條磁軌,最大為1024(用10個二進位制位儲存);h-head磁頭數表示硬碟總共有幾個磁頭,也就是幾面碟片,最大為256(用8個二進位制位儲存);s-sector扇區數表示每條磁軌上有幾個扇區,最大為63(用6個二進位制位儲存)。

1、 引導扇區

boot sector組成:boot sector也就是硬碟的第乙個扇區,它由mbr(master boot record),dpt(diskpartition table) 和 boot record id三部分組成。 mbr又稱為主引導記錄,占用boot sector的前446個位元組(0~0x1bd),存放系統主引導程式(它負責從活動分割槽中裝載並且執行系統引導程式) 。 dpt即主分割槽表占用64個位元組(0x1be~0x1fd),記錄磁碟的基本分割槽資訊。主分割槽表分為四個分割槽項,每項16個位元組,分別記錄每個主分割槽的資訊(因此最多可以有四個主分割槽)。 bootrecord id即引導區標記占用兩個位元組(0x1fe~0x1ff),對於合法引導區,它等於0xaa55 。這是判別引導區是否合法的標誌)。。boot secor具體結構如圖: 

2、 分割槽表結構簡介

分割槽表由四個分割槽項構成,每一項結構如下:

byte state:分割槽狀態,0=未啟用,0x80=啟用(注意此項);

byte starthead:分割槽起始磁頭號;

word startsc:分割槽起始扇區和柱面號,底位元組的底6位為扇區號,高2位為柱面號的第9,10位,高位元組為柱面號的低8位;

byte type:分割槽型別,如0x0b=fat32,0x83=linux等,00表示此項未用;

byte endhead:分割槽結束磁頭號;

word endsc:分割槽結束扇區和柱面號,定義同前;

dword sectors:分割槽大小(總扇區數)。

在dos或windows系統下,基本分割槽必須以柱面為單位劃分(sectors*heads個扇區),如對於chs為764/256/63的硬碟,分割槽的最小尺寸為256*63*512/1048576=7。875mb。

由於硬碟的第乙個扇區已經被引導扇區占用,所以一般來說,硬碟的第乙個磁軌(0頭0道)的其餘62個扇區是不會被分割槽占用的。某些分割槽軟體甚至將第乙個柱面全部空出來。 擴充套件分割槽結構如圖:

linux硬碟分割槽及掛載

由於時間限制,本人僅在centos 8下測試通過,理論上適用於幾乎所有的linux發行版。輸入df h檢視當前系統的硬碟容量使用情況,當前我的伺服器上空間總容量看起來只有20g,然而當輸入lsblk檢視當前系統上所有的磁碟列表時,從輸出結果中可以看出,除了乙個vda的20g的硬碟外還有乙個vdb的6...

Linux新增硬碟分割槽及掛載

1 分割槽 fdisk命令,l 檢視所有分割槽 fdisk dev sdb1 進行分割槽,過程比較簡單,根據提示即可,注意最後要儲存生效 2 格式化 mke2fs命令,mke2fs t ext4 dev sdb1 格式化 dumpe2fs命令,dumpe2fs dev sdb1 檢視分割槽檔案系統 ...

linux 硬碟分割槽及行動硬碟掛載

1.linux 硬碟分割槽 在 linux 中規定,每乙個硬碟裝置最多能有 4 個主分割槽 其中包含擴充套件分割槽 構成,任何乙個擴充套件分割槽都要占用乙個主分割槽號碼,也就是在乙個硬碟中,主分割槽和擴充套件分割槽一共最多是 4 個。對於早期的 dos 和 windows windows 2000 ...