IBM的LPI複習資料之LPI101-Topic102:Linux安裝和包管理(2)啟動管理器GRUB,GRUB2,LILO

來源:互聯網
上載者:User
文章並沒有完全一對一翻譯,主要是意譯,有時會省略原文內容,有時會增加自己理解。摘要學習如何為你的Linux系統選擇和配置一個種啟動管理器。(Lilo不再是LPI的要求,但是本文還是包含了LILO)。概述在本文,你將學會如何為Linux系統選擇和配置啟動管理器,具體是:
  • 配置多位置啟動和備份啟動選項
  • 安裝和配置一種啟動管理器,如GRUB,GRUB2,或者是LILO
  • 在啟動時增加核心啟動參數或者運行載入器命令
  • 從常見的啟動問題中恢複
  • 使用GRUB啟動GRUB2

本文討論了PC的啟動流程和用於Linux系統的三種主要的啟動載入器(GRUB,GRUB2,LILO),以此來協助讀者為LPI101的目標102.2做準備。這個要求的權重是2。


啟動流程概述

在我們詳解一個具體的啟動載入器之前,先來看看PC是怎樣開始啟動的。一種被稱為BIOS的代碼儲存在向ROM,EEPROM,或者flash這樣的非易失記憶體中。當PC開機或者重啟時,這段代碼被執行。通常他執行加電自檢。最後,它載入啟動硬碟的MBR中的可執行代碼。

關於MBR的知識,文章IBM的LPI複習資料之LPI101-Topic102:Linux安裝和包管理(1)硬碟分區已經進行詳細說明,MBR不僅有可執行代碼還有分區表。不僅僅是硬碟,就算是磁碟片的MBR裡也都存放著一段可執行代碼,即使這段代碼的功能僅僅是列印像“Non-bootable disk in drive A"這樣的訊息。這段代碼通常被叫做"first stage boot
loader"或者"stage 1 boot loader"。

MS DOS,PC DOS,以及Windows系統使用的MBR的功能是:檢查MBR中的分區表,找到帶有啟動標誌的分區,然後載入這個分區的第一個扇區(稱為分區開機記錄),並把控制權交給這個扇區的代碼。由於空間還是局限於一個扇區(512位元組),所以這段代碼的功能還是很有限,但是能載入本分區裡的更多內容(這些內容就是stage 2 boot loader)。對於MS-DOS,PC-DOS來說,這個stage 2 boot loader的作用就是直接載入作業系統核心。就這樣,作業系統就啟動了。

這對於只有一個系統的機器來說沒有什麼問題。但是如果需要同時安裝多個作業系統,比如既有OS/2,WindowsXP,又有多個Linux發行版,該怎麼辦?你可以使用一些像fdisk之類的工具修改MBR分區表中的使用中的磁碟分割標記,把要啟動的OS所在的分區設定為可啟動。但這並不能完全解決問題。比如標準的MBR最多隻能由4個主要磁碟分割,並且只能有一個使用中的磁碟分割,並且不能從邏輯分區啟動。而我們一共有5個作業系統需要共存,這就不能通過修改MBR中的分區表來解決了。

解決上述問題的辦法是使用一段特殊的代碼,這段代碼的功能是可以讓使用者選擇啟動哪個分區。這樣的程式已經存在,如:

Loadin--這個程式運行在DOS中,所以必須先進入DOS才能運行

OS/2 Boot Loader--這個程式需要安裝到一個單獨的分區中,這個分區設定為使用中的磁碟分割,這樣MBR就會載入這個程式。

更聰明的啟動載入器--這個程式不需要單獨佔用一個分區,可以和作業系統共存同一個分區中,並且既可以通過MBR直接載入,也可以被分區引導記錄載入。這樣的程式有:

BootMagic, LILO, GRUB, GRUB2。

顯然,只要你能夠把系統的控制權交給一個體積大於512位元組的程式,這個程式就不難去完成像啟動邏輯分區,或者啟動其他硬碟上的分區的任務。上面提到的程式都有這些功能。

鏈式載入當一個啟動載入器取得控制權後,它能做很多事,其中一件事就是載入其他的啟動載入器。一個啟動載入器載入另一個啟動載入器的過程就叫做鏈式載入。最常見的就是MBR裡的載入器載入分區開機記錄裡的載入器,另外Linux的啟動載入器也常用來載入Windows所在分區的Windows啟動載入器來啟動Windows。當然,不同分區的GRUB也可以相互載入,只是這並不怎麼有必要。Linux的啟動載入器三種Linux啟動載入器將在本文討論,他們是GRUB,GRUB2,LILO。譯註:原文介紹了三種,考慮到LILO不是LPI的內容,沒有對LILO進行翻譯。GRUB關於GRUB的設定檔,命令,之前的文章 http://blog.csdn.net/smstong/article/details/8574719有說明,不再累述。這裡說一下如何製作GRUB啟動盤。grub的安裝位置(1)安裝在硬碟MBR此時stage1檔案安裝到MBR,stage2檔案安裝到某個分區的檔案系統中,由於stage1不認識檔案系統,所以需要把stage1.5安裝到MBR後面的某些特定扇區內。(2)安裝在硬碟分區此時stage1檔案安裝到該分區的第一個扇區,也就是分區開機記錄。stage2還是安裝到分區的檔案系統,stage1.5則安裝到分區開機記錄後面的某些特定的扇區內。(3)安裝在光碟片此時不再有stage1,stage1.5,stage2之分,GRUB提供了一個專門供CD/DVD啟動的鏡像,檔案名稱為: stage2_eltorito,使用IOS製作工具寫入光碟片既可。注意:stage1.5需要識別檔案系統,所以針對不同的檔案系統類型,提供了不同的stage1.5。而stage1和stage2則是與檔案系統無關的。GURB啟動盤的製作(0)建立一個目錄grubcd(1)拷貝/usr/share/grub/stage/stage2_eltorito檔案到grubcd。(按照個人需要可以把其他任意資料檔案拷貝到目錄下)(2)genisoimage -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grubcd.iso grubcd(3)把產生的grubcd.iso鏡像檔案燒錄成光碟片既可。GRUB2GRUB目前已經不再繼續開發,只是修正存在的錯誤。官方的說法是GRUB的編碼實在太爛,以至於沒法進行維護升級了,所以重新從零開發了新的GRUB2,從此以後原來的GRUB就叫做GRUB legacy了。GRUB2採用了清晰的架構和模組化的布局,與GRUB legacy相比有很大不同:
  1. 設定檔改名為grub.cfg,而且設定檔不能手動修改了,只能通過grub-mkconfig命令產生。
  2. 分區編號不再從0開始,而是從1開始,硬碟編號還是從0開始。
  3. Grub2除了支援傳統的PC BIOS啟動方式,還支援PC EFI,PC corboot, PowerPC, SPARC,MIPS lemote Yeeloogn。
  4. GRUB2能直接從LVM和RAID中讀取檔案。
  5. 鏡像檔案改變了,GRUB中的stage1,stage1.5,stage2不再存在。
Grub和GRUB2的對應:
  1. 'stage1', 對應GRUB2中的boot.img,作用完全相同
  2. _stage_1_5',Grub中的stage1.5的功能是識別檔案系統,以載入儲存在檔案系統中的stage2。某種意義上,這與GRUB2中的core.img類似,但是core.img得功能更多更強大。
  3. 'stage2',GRUB2沒有單獨的stage2鏡像檔案,對應的是core.img會動態載入/boot/grub裡的模組檔案。
  4. ‘stage2_eltorito',在GRUB2中,為了能從CD啟動,會把cdboot.img和core.img兩個檔案合并成一個。最好是使用grub-mkrescue命令來合并這兩個檔案。
  5. 'nbgrub',沒有對應的。
  6. 'pxegrub',在GRUB2中,從PXE網路啟動的鏡像是通過合并pxeboot.img和core.img完成的。
GRUB2在MBR格式硬碟中安裝:也就是兩個鏡像檔案的位置,一個是boot.img,一個是組合的core.img。
  1. 對於boot.img,只能安裝到MBR上,這與GRUB legacy不同。
  2. core.img有兩個安裝位置:
  • 一個是MBR和第一個分區之間的空閑部分,這部分通常叫做boot track,MBR gap,或者embedding area。這部分通常至少會有31KB大小。這種方式的問題是,把代碼存放到這裡不安全,一些軟體可能會修改這裡的資訊,另外也不能保證MBR和第一扇區之間一定有足夠的空間。
  • 一個是安裝到一個分區的檔案系統裡,然後把它所佔用的塊表編號儲存在這個分區的第一個扇區內。這種方式的問題是,core.img所佔用的塊可能會被檔案系統移動(系統最佳化時這種情況經常發生)
GRUB開發小組通常建議把core.img安裝到MBR和第一扇區之間的空閑地區,在現代硬碟上,這塊地區通常會大於1M,空間一般不是問題。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.