硬碟分割槽和系統啟動

2022-03-21 15:58:43 字數 4924 閱讀 3107

一.分割槽

1.1安裝linux在分割槽時,最好有以下三個分割槽

/boot:分割槽時一般將磁碟最前面的100-200m分出來做/boot分割槽,該目錄用於存放核心kernel和boot loader,boot loader即系統啟動程式grub

根分割槽/:這個就不說了,這是必須有的

swap:在windows中叫虛擬記憶體

1.2在企業中一般將/tmp和/var/log也單獨分出來

/tmp用於儲存宕機時的檔案,單獨分割槽,防止多次宕機時將根分割槽佔滿

/var/log用於儲存日誌,單獨分割槽作用同上(但linux一般會在凌晨4點定期清除日誌)

二.關於硬碟和作業系統啟動

2.1 mbr,dpr和pbr

在硬碟的第乙個扇區(每個扇區是512位元組),也就是0磁頭(head)、0柱面(cyliner)、0扇面(side)、0磁軌(track)、0扇區(sector)處,存放著硬碟最重要的資訊mbr(master boot record,主引導記錄)和dpt(磁碟分割槽表)

其中mbr佔446位元組,dpt佔64位元組,剩餘2位元組存的是55aa(結束標誌);每乙個分割槽需要16位元組存放其資訊,所以最多可以分出64/16=4個主分割槽。

mbr(master boot record)即硬碟的主引導記錄。mbr,共446位元組,一般在作業系統安裝時寫入,但它並不屬於作業系統。mbr就是一段引導程式,用於檢測磁碟的分割槽合法性和載入作業系統,它的重要作用就是識別活動分割槽,並引導作業系統。

dpt,即磁碟分割槽表,共64位元組,記錄了硬碟有多少分割槽以及分割槽的各種屬性。由於乙個分割槽的資訊要占用16位元組,所以分割槽表只能定義64/16=4個分割槽,這就是為什麼我們說硬碟一般最多只能分為 4個主分割槽

ps:如果是mbr和dpt部分出了問題,即使只是」55aa」標誌字丟失或被改為其他值,通常都會出現」無效分割槽表」、邏輯盤丟失、啟動宕機等現象

pbr: (partition boot record) 即硬碟的分割槽引導記錄, pbr是各個分割槽自己的引導記錄,又稱分割槽引導記錄,它是由format高階格式化命令寫在各個分割槽開始處第乙個扇區。

ps:如果pbr部分出了問題,通常會出現」未格式化的分割槽」的錯誤提示,顯然如果該分割槽裝有作業系統,該分割槽的作業系統也無法啟動。

2.2 主分割槽,拓展分割槽和邏輯分割槽

主分割槽:正如前面所講, 主分割槽是由主引導扇區中64位元組的磁碟分割槽表所定義的,最多只能有4個。

拓展分割槽:為了滿足更多分割槽的需求,便產生了 擴充套件分割槽 。形式上,如果擁有擴充套件分割槽,就必須犧牲乙個主分割槽,而且最多有乙個擴充套件分割槽,也就是說: 主分割槽+擴充套件分割槽<=4 and 擴充套件分割槽<=1 。因此擴充套件分割槽也可以看成一種特殊的主分割槽。

邏輯分割槽:但擴充套件分割槽並不可以直接使用,擴充套件分割槽又必須以邏輯分割槽的形式出現,可以這樣認為:擴充套件分割槽包含著若干邏輯分割槽,而且至少包含乙個。

擴充套件分割槽中的邏輯分割槽是以鏈式存在的。即每乙個邏輯分割槽都記錄著下乙個邏輯分割槽的位置資訊,依次串聯。事實上每乙個邏輯分割槽都有乙個和主引導扇區類似的引導扇區,引導扇區裡有類似的分割槽表。該分割槽表記錄了該分割槽的資訊和乙個指標,指向下乙個邏輯分割槽的引導扇區。

因此,邏輯分割槽是借鑑了主分割槽的方法,相當於在乙個主分割槽下面建立了若干級「主分割槽」。另乙個可以**的現象是:一旦某乙個邏輯分割槽損害,跟在它後面的所有邏輯分割槽都將丟失,而前面的邏輯分割槽去可以保留。這也是鏈式結果的特點。

2.3 活動分割槽,系統分割槽,啟動分割槽和引導分割槽

之前的主分割槽,拓展分割槽和邏輯分割槽時物理概念,現在講的這幾個是邏輯概念。

首先,引導分割槽就是啟動分割槽 ,兩者是同一概念

啟動分割槽:包含作業系統核心檔案的分割槽

系統分割槽:包含作業系統引導檔案的分割槽

活動分割槽:我們結合雙系統來講,啟動分割槽被標記為活動分割槽後,該活動分割槽的作業系統核心才會被載入,啟動作業系統。也就是說,加入我們安裝了多個作業系統,就存在多個啟動分割槽,我們開機時選擇的那個作業系統對應的啟動分割槽會被標記為活動分割槽。

ps:根據windows的概念,活動分割槽必須是主分割槽,即作業系統必須安裝在主分割槽,其實不必,在系統啟動中我們會講。

2.4 作業系統的啟動

拿linux來說啟動過程是這樣的:加點—–>bios自檢——>執行引導載入器程式——>載入核心——>執行init程序——>登入linux系統

執行引導引導程式即執行boot loader,這一步可以細分為bios->mbr -> dpt -> pbr,為什麼還有bios呢:因為其實bios也是引導引導程式,bios負責檢測硬體,如果未發現問題,則將硬體設施設定為備用狀態,而mbr負責載入作業系統核心。

每種不同體系結構的cpu都有不同的boot loader:

x86架構的cpu自帶bios,我們在其上裝系統很簡單可以選擇從硬碟啟動還是usb啟動,因為bios實現了這些功能。

而在嵌入式開發還有android等系統中是不存在bios的,bois和mbr是作為boot loader這樣的乙個整體存在的

不管是bios和mbr分開的還是一體的,boot loader的實質都是相同的,是在作業系統核心執行之前執行的一段小程式。通過這段小程式,我們可以初始化硬體裝置、建立記憶體空間的對映圖,從而將系統的軟硬體環境帶到乙個合適的狀態,以便為最終呼叫作業系統核心準備好正確的環境。

每種作業系統都有自己的boot loader,其會在系統安裝時寫入mbr,而且當你安裝第二個作業系統時,新的mbr會覆蓋原來的mbr。

最初linux的boot loader是lilo(linux loader),現在在linux中 grub(grand unified bootloader)是乙個系統預設自帶的多重啟動管理器。它可以在多個作業系統共存時選擇引導哪個系統。儘管引導作業系統看上去是件平凡且瑣碎的任務,但它實際上很重要。如果引導裝入器不能很好地完成工作或者不具有彈性,那麼就可能鎖住系統或者無法引導計算機

其他常見系統的boot loader:

ntldr(xp)、bootmgr(win7、vista)、grldr(grub)、btldr.mbr(bootlink)

那麼系統是怎麼引導核心啟動的呢,下面分三種情況講一下:

①如果只有乙個系統安裝在主分割槽,啟動時bios找到mbr中的引導程式,通過dpt找到各個主分割槽,如果該分割槽中有作業系統kernel,mbr會找該分割槽下的pbr,讀取後,載入系統的啟動檔案,比如ntldr,然後就是一系列的系統啟動的順序了。

(ps:boot loader可以巢狀,一層一層引導,如我們在刷機時就用到,只是大家沒注意過)

②安裝了多個作業系統windows和linux,且都在主分割槽下,如下圖1,那麼開機時bios載入mbr中的boot loader,mbr檢測到有兩個時則會讓使用者選擇,被選擇的分割槽被標記為活動分割槽,mbr載入活動分割槽的pbr,讀取後,載入系統的啟動檔案

圖1 ③如果安裝了多個作業系統,且其中有乙個在邏輯分割槽如圖2,須在活動分割槽的啟動支援檔案裡加上對這個邏輯分割槽裡centos的引導資訊。具體到xp,就是boot.ini檔案新增上對雙系統的引導,而這個boot,ini檔案必須在啟動分割槽。

圖2ps:同時安裝linux和windows時應先安裝windows,因為後來的mbr會覆蓋之前的mbr。而linux的啟動引導程式會正確識別windows的並接管,windows的主引導卻只識別windows系統

三. linux系統的7種執行級別

3.1linux系統有7個執行級別(runlevel)

執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動

執行級別1:單使用者工作狀態,root許可權,用於系統維護,禁止遠端登陸

執行級別2:多使用者狀態(沒有nfs)

執行級別3:完全的多使用者狀態(有nfs),登陸後進入控制台命令列模式

執行級別4:系統未使用,保留

執行級別5:x11控制台,登陸後進入圖形gui模式

執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動

3.2執行級別的原理

①在目錄/etc/rc.d/init.d下有許多伺服器指令碼程式,一般稱為服務(service)

②在/etc/rc.d下有7個名為rcn.d的目錄,對應系統的7個執行級別

③rcn.d目錄下都是一些符號鏈結檔案,這些鏈結檔案都指向init.d目錄下的service指令碼檔案,命名規則為k+nn+服務名或s+nn+服務名,其中nn為兩位數字。

④系統會根據指定的執行級別進入對應的rcn.d目錄,並按照檔名順序檢索目錄下的鏈結檔案

對於以k開頭的檔案,系統將終止對應的服務

對於以s開頭的檔案,系統將啟動對應的服務

⑤檢視執行級別用:runlevel

⑥進入其它執行級別用:init n

⑦另外init0為關機,init 6為重啟系統

3.3 修改預設執行級別

用文字編輯器修改 /etc/inittab,其中id:5:initdefault行中id後對應的數字即為預設執行級別。儲存後就reboot重起,即更改為你改的執行級別。

linux硬碟分割槽

今天做了一套筆試題,裡面有一道選擇題,關於硬碟分割槽的,hda4,擴充套件分割槽。在linux 下硬碟分割槽的表示是通過hd x 或 sd x 表示的,其中 表示的是a b c x表示的數字 1 2 3 ide 硬碟在linux或者其它類unix系統的一般表示為 hd 比如hda hdb 我們可以通...

硬碟分割槽隱藏

測試說明 執行後請登出或者重啟才能生效.登錄檔鍵值 hkey current user software microsoft windows currentversion policies explorer nodrives 鍵值設為ffffffff即可 大家在隱藏碟符的時候一般都是靠軟體設定的,要...

硬碟分割槽 3

本節主要描述mbr分割表和gpt分割表的特點。1 mbr master boot record 主引導記錄區,共512 bytes.包含兩個區域 1 主引導程式區 共446 bytes 2 分割表 共64 bytes,分4組記錄區,每組記錄區記錄了該區段的啟動與結束的磁柱號碼,每組16 bytes。...