GRUB學習筆記

@ GRUB學習筆記 @




GRUB學習筆記
聲明:本筆記並非原創,只是我個人的學習筆記!
很多的內容來自www.linuxsir.com www.linuxfans.org www.linuxAID.com
非常感謝以上網站對我的學習提供的莫大的幫助,本着學習和分享的原則我貼出我的學習筆記,更希望兄弟們能給我指出其中錯誤的地方.謝謝!!!
學習這部分知識,首先要學到問題的思路,其次你還要記住一些東西,是死記硬背下來!你會發現這點東東的確是很有用的!
儘管如此,本文檔歸屬linuxsir-probing!轉載請註明出處!更不能被用到商業用途上!

1
首先要了解的幾個概念

1.1
啓動管理器
啓動管理器是存儲在磁盤開始扇區中的一段程序,例如,硬盤的MBR(Master Boot Record),在系統完成啓動測試後,如果系統是從MBR啓動,則BIOS(Basic Input/Output System)將控制傳送給MBR。然後存儲在MBR中的這段程序將運行。這段程序被稱爲啓動管理器。它的任務就是將控制傳送給操作系統,完成啓動過程》有許多可用的啓動管理器,包括GNU GRUB (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等等.
1.2
什麼是GRUB?
grub
是一個多重啓動管理器。grubGRand Unified Bootloader的縮寫,它可以在多個操作系統共存時選擇引導哪個系統。它可以引導的操作系統包括:
Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000
WinXP。它可以載入操作系統的內核和初始化操作系統(如Linux,FreeBSD),或者把引導權交給操作系統(如Windows 98)來完成引導。
1.3 GRUB
的特點
特別適用於linux與其它操作系統共存情況。
支持大硬盤 現在大多數Linux發行版本的lilo都有同樣的一個問題:根分區(/boot分區)不能分在超過1024柱面的地方,一般是在8.4G左右的地方,否則lilo不能安裝,或者安裝後不能正確引導系統。而grub就不會出現這種情況,只要安裝時你的大硬盤是在LBA模式下,grub就可以引導根分區在8G以外的操作系統。
支持開機畫面   grub支持在引導開機的同時顯示一個開機畫面。對於玩家來說,這樣可以製作自己的個性化開機畫面;對於PC廠商,這樣可以在開機時顯示電腦的一些信息和廠商的標誌等。grub支持640x480,800x600,1024x768各種模式的開機畫面,而且可以自動偵測選擇最佳模式,與Windows320x400的開機畫面不可同日而語。
兩種執行模式 grub不但可以通過配置文件進行例行的引導,還可以在選擇引導前動態改變引導時的參數,還可以動態加載各種設備。例如你在Linux下編譯了一個新的核心,但不能確定它能不能工作,你就可以在引導時動態改變grub的參數,嘗試裝載這個新的核心進行使用。Grub的命令行有非常強大的功能,而且支持如bashdoskey一樣的歷史功能,你可以用上下鍵來尋找以前的命令。
菜單式選擇   grub使用一個菜單來選擇不同的系統進行引導。你還可以自己配置各種參數,如延遲時間,默認操作系統等。
分區大小改變後不必重新配置   grub是通過文件系統直接把核心讀取到內存,因此只要操作系統核心的路徑沒有改變,grub就可以引導系統。
除此之外,Grub還有許多非常強大的功能。例如支持多種外部設備,動態裝載操作系統內核,甚至可以通過網絡裝載操作系統核心。Grub支持多種文件系統,支持多種可執行文件格式,支持自動解壓,可以引導不支持多重引導的操作系統,支持網絡啓動等。
1.4 MBR
和第一扇區
你可以簡單的理解爲MBR是整個硬盤的物理第一位置,而第一扇區是硬盤的物理第二位置.
1.5
一個GRUB配置文件
基於本例的分區如下:
hda 15G
hda1 8G / RED HAT LINUX8.0
hda5 7G /home
hdc 20G
hdc1 6.4G WinXP
hdc5 6.4G
hdc6 6.4G
hdc7 6.4G
#fdisk -l
# Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hdc1 * 1 894 7181023+ b Win95 FAT32
/dev/hdc2 895 2434 12370050 f Win95 Ext'd (LBA)
/dev/hdc5 895 1787 7172991 b Win95 FAT32
/dev/hdc6 1788 2434 5196996 b Win95 FAT32

Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders
Units = cylinders of 16065 * 512 bytes

Device Boot Start End Blocks Id System
/dev/hda1 * 1 1020 8193118+ 83 Linux
/dev/hda2 1021 1802 6281415 83 Linux
/dev/hda3 1803 1867 522112+ 82 Linux swap

grub.conf,
這個文件位於;/boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=3
splashp_w_picpath=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.18-14)
root (hd0,0)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /boot/initrd-2.4.18-14.img
title Microsoft Windows XP
map (hd0) (hd1)
map (hd1) (hd0)
root (hd1,0)
chainloader (hd1,0)+1
makeactive
boot


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章