GRUB基礎(chǔ)及問題匯總.doc_第1頁
GRUB基礎(chǔ)及問題匯總.doc_第2頁
GRUB基礎(chǔ)及問題匯總.doc_第3頁
GRUB基礎(chǔ)及問題匯總.doc_第4頁
GRUB基礎(chǔ)及問題匯總.doc_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一、 GRUB 基礎(chǔ)目前 GRUB 分成 GRUB legacy 和 GRUB 2。版本號是 0.9x 及之前的版本都稱為 GRUB Legacy ,從 1.x開始的就稱為 GRUB 2。二、命名習慣(這里可能有問題,GRUB把第一個認到硬盤稱為hd0,第二個為hd1,所有hda不一定是hd0) 與硬盤的關(guān)系: 既然 grub 主程序是安裝在 MBR ( super block ) 當中,并且動態(tài)去搜尋設(shè)定文件的信息, 所以啰,他必須要認識硬盤才行啊!那么 grub 到底是如何認識硬盤的呢? 嘿嘿! grub 對硬盤的代號設(shè)定與傳統(tǒng)的 Linux 磁盤代號可完全是不同的! 他的代號有點像: (hd0,0) 夠神了吧?跟 /dev/hda1 風馬牛不相干怎么辦???其實只要注意幾個東西即可, 那就是: 硬盤代號以小括號 ( ) 包起來; 硬盤以 hd 表示,后面會接一組數(shù)字; 以搜尋順序做為硬盤的編號,而不是依照硬盤排線的排序!(這個重要!) 第一個搜尋到的硬盤為 0 號,第二個為 1 號,以此類推; 每顆硬盤的第一個 partition 代號為 0 ,依序類推。 所以說,第一顆搜尋到的硬盤代號為:(hd0),而該顆硬盤的第一號 partition 為 (hd0,0)這樣說,容易了解了吧?。吭趥鹘y(tǒng)的主機板上面, 通常第一顆硬盤就會是 /dev/hda,所以常常我們可能會誤會 /dev/hda 就是 (hd0) , 其實不是喔!要看您 BIOS 的設(shè)定值才行! 有的主機板 BIOS 可以調(diào)整開機的硬盤搜尋順序,那么就要注意了,因為 grub 的硬盤代號可能會跟著改變吶!留意留意! 所以說,整個硬盤代號為: 硬盤搜尋順序 在 Grub 當中的代號 第一顆 (hd0) (hd0,0) (hd0,1) (hd0,4). 第二顆 (hd1) (hd1,0) (hd1,1) (hd1,4). 第三顆 (hd2) (hd2,0) (hd2,1) (hd2,4). 以上摘自鳥哥的linux私房菜首先 GRUB 需求設(shè)備名被括在一個 ( ) 中。fd表示軟盤,hd 表示硬盤(不區(qū)分 IDE 還是 SCSI)。其次設(shè)備是從 0 開始編號,分區(qū)也是如此,分區(qū)和設(shè)備之間用一個 , 分開。下面給出幾個例子 :(fd0) :表示整個軟盤(hd0,1) :表示 BIOS 中的第一個硬盤的第2個分區(qū)(hd0,0)/boot/vmlinuz :表示 BIOS 中的第一個硬盤的第一個分區(qū)下的 boot/ 目錄下的vmlinuz 文件。如果沒有指定某個分區(qū),則表示使用整個設(shè)備,否則只使用指定的分區(qū)。三、 安裝 GRUB3.1 下載 tarball有兩種方法,一種是 rpm ;一種是 tarball 。rpm 沒有什么好說的,只是 rpm ?Uvh 就能了。不過一般不會啟用網(wǎng)絡引導功能,所以我們決定采用 tarball 的方式安裝。 首先到下面的地址下載 tarball : /gnu/grub上面有 GRUB Legacy 和 GRUB 2 ,就選擇目前 RHEL AS4 用的 0.95 版本做實驗。不過在安裝之前先要用 rpm ?q grub 檢查一下 grub 是否安裝了。如果是的話,用 rpm ?e grub 刪除,即使你在安裝時指定不安裝 boot loader ,安裝程式還是會安裝 grub rpm 包的。32 參數(shù)介紹下面我們介紹幾個 configure 過程中可能用到的選項,要完整的選項列表,能參看 INSTALL 文件和 netboot/README.netboot 文件。(注意選項名不含引號). -enable-preset-menu=FILE :默認情況下 grub.conf 和 stage2 文件是分離的,使用該選項,能直接把設(shè)置文件嵌入到 stage2 中,這樣啟動時能即時獲得設(shè)置文件。對于一些嵌入式的系統(tǒng)來說比較有用,又或在前面提到的沒有顯示器/鍵盤的主機有用,因為在轉(zhuǎn)換顯示輸出到你的筆記本之前,你是看不到啟動的畫面的,所以執(zhí)行轉(zhuǎn)換顯示操作也是在看不到輸出的情況下進行的(轉(zhuǎn)換顯示之后就不會了)。通過這個選項你能在中指定啟動時即時把顯示輸出轉(zhuǎn)換到你的筆記本上了。. -enable-diskless :如果使用了該選項,你會得到額外的兩個文件,nbgrub 和 pxegrub。接下來你需要指定網(wǎng)卡的驅(qū)動程式,netboot/ 目錄下有較常見的幾種 ,能看到幾種網(wǎng)卡能合用一個驅(qū)動。常見的有 :. Intel Etherexpress Pro/100-enable-eepro100. Novell NE2100 and NE1500-enable-ne2100. Realtek 8139SMC 1211D-Link DFE530TX+ and DFE538TX-enable-rtl8139. 3Com90x-enable-3c90x如果你不想那么麻煩,則按照下面的過程進行 :. ./configure. make. make install. 安裝結(jié)束。默認命令會放在 /usr/local/bin 和 /usrlocal/sbin 下。Stage 文件則放在 /usr/local/share/grub/i386-pc/ 目錄下。3.3 安裝之后的操作. 把 /usr/local/share/grub/i386-pc/ 目錄下的所有文件統(tǒng)統(tǒng)拷貝到 /boot/grub/ 目錄下。. 接下來是創(chuàng)建 grub.conf ,并在 /boot/grub/ 目錄下建立一個 menu.lst ,指向 grub.conf。. 注意,這個 symbol link 在 Redhat 9 是必需的,否則啟動時會直接進入命令模式,即使已存在 grub.conf ;但在 RHEL AS4 下卻不是。. 確認 /usr/local/sbin 和 /usr/local/bin 在 PATH 變量的值中。. 執(zhí)行 grub-install /dev/hda1 把 stage1 寫入到 /boot 分區(qū)的引導扇區(qū)。也能執(zhí)行 grub 進入 grub shell ,然后通過 root 和 setup 命令來安裝 stage1 。. 重啟機器,安裝過程到此結(jié)束。四、 GRUB 接口GRUB 除了菜單模式,還提供了一個命令模式和 grub shell 。當系統(tǒng)啟動并顯示菜單時,按 c 鍵就能進入命令模式。提示符是 grub 。如果你已成功引導操作系統(tǒng)并登錄,能在 shell 提示符下執(zhí)行 grub ,這會啟動一個 grub shell。提示符也是 grub 。GRUB 能夠象 bash 相同使用上下鍵來訪問 command history ,ctrl-u、ctrl-k、ctrl-l 等快捷鍵也能使用。想要編輯菜單,能按下 e 鍵;想要新增一空白行,能按下 o 鍵(當前行之后)或 O 鍵(當前行之前)。想要刪除當前行,按下 d 鍵; ESC 鍵放棄當次修改并返回上級菜單。有些命令只能在命令模式下,有些命令只能用于設(shè)置文件(菜單模式),有些命令在兩個模式下都能使用。下面我們就介紹 GRUB 常用的命令。五、 GRUB 常用命令5.1 只能用于設(shè)置文件的命令下面這5個命令只能出現(xiàn)于設(shè)置文件中,分別是 :. default :定義默認引導的操作系統(tǒng)。0 表示第一個操作系統(tǒng),1表示第2個,依此類推. fallback :如果 default 所指定的操作系統(tǒng)引導失敗,則默認引導由 fallback 指定的操作系統(tǒng). hiddenmenu :用于啟動時隱藏菜單,除非在 timeout 之前按下 ESC 才能看到菜單。. timeout :定義多少秒內(nèi)如果用戶沒有按下鍵盤上的某個按鍵,就自動引導 default 所指定的操作系統(tǒng)。. title :定義引導項目的名稱。. password :用于定義進入 GRUB 命令模式的密碼。你還能為每個操作系統(tǒng)都定義一個密碼,方法是把 password 命令放在title行之后。而且每個操作系統(tǒng)的引導密碼能不同,也能和進入命令模式的那個密碼不同,最大程度的確保 GRUB 的安全。5.2 只能用于命令模式或 grub shell 的命令. device :用于定義 BIOS 中的磁盤設(shè)備和操作系統(tǒng)的磁盤設(shè)備之間的映射關(guān)系。例如 device (hd0)/dev/hdb 把 BIOS 中的第一個硬盤相當于 Linux 的 /dev/hdb. serial :用于初始化一個串口設(shè)備。例如 :serial ?-unit=0 ?-speed=9600 表示初始化 COM1(-unit=0),速率為 9600 Baud不過 grub shell 下執(zhí)行該命令會顯示 “無法識別的命令”. terminal :用于轉(zhuǎn)換顯示輸出。有兩這個值可選 :console 和 serial 。當你把筆記本接到一個沒有顯示器/鍵盤的主機上時,執(zhí)行 terminal serial 就能在你的筆記本上操作這臺主機的 GRUB 了。執(zhí)行 terminal console 把顯示輸出還原到該主機。不過 grub shell 下執(zhí)行該命令會顯示“無法識別的命令”. splashimage :用于定義啟動時的背景圖片。例如 splashimage /grub/splash.xpm.gz經(jīng)過測試,發(fā)現(xiàn)用 tarball 安裝的不支持該命令,這似乎是 redhat grub rpm 專有的。. blocklist :用于顯示某個文件在文件系統(tǒng)中的位置,以 block list 的形式顯示。例如 blocklist /vmlinuz. cat :用于顯示文件內(nèi)容。由于 GRUB 能直接訪問多種文件系統(tǒng),所以能用 cat (hd0,1)/etc/passwd 來在 GRUB 命令模式下查看 /etc/passwd 文件. root :用于指定含有 stage 文件的分區(qū)。如果有 /boot 分區(qū),則 root device 就是 /boot 分區(qū),否則就是 / 分區(qū)。. rootnoverify :和 root 類似,但不會嘗試掛載該分區(qū)。例如用于指定 windows 操作系統(tǒng)所在的分區(qū)。. chainloader :用于加載另外一個 boot loader ,通常是用于加載 windows 的 boot loader 。他的參數(shù)是個 block list ,例如 chainloader (hd0,0)0+1 表示加載第一個磁盤的第一個分區(qū)的第1塊,0 是開始位置(block 從0開始編號),+1 表示總共讀取多少個 block。所以 chainloader 2+0 表示讀取第3個block (編號為2). find :能用于在所有分區(qū)上搜索文件。注意,是所有分區(qū),而不是某個分區(qū)。例如 find /vmlinuz 將會在所有分區(qū)上查找位于該分區(qū)的頂級目錄下的vmlinuz文件,如果找到就打印該分區(qū)名,例如 (hd0,1)。. geometry :用于顯示或設(shè)置某個硬盤的 CHS 參數(shù),同時還顯示分區(qū)信息。例如 geometry (hd0). halt :關(guān)機. reboot :重啟機器. kernel :指定操作系統(tǒng)內(nèi)核文件,還能在內(nèi)核文件名后加上參數(shù)。例如kernel /vmlinuz ro root=LABEL=/表示以只讀的方式掛載 / 分區(qū),且根分區(qū)設(shè)備是 label 為 / 的那個設(shè)備;也能直接給出設(shè)備名。. initrd :用于指定 RAM Disk 文件,例如 initrd /initrd-2.xx.img 。. boot :引導 kernel 所指定的內(nèi)核,對于 linux 來說,必須先加載了 kernel 和 initrd 才能執(zhí)行 boot 。. setup :用于安裝 stage1 到磁盤的 MBR 或某個分區(qū)的引導扇區(qū)。六、 保護 GRUB 設(shè)置下面是個例子password ?-md5 timeout=30default=0title “redhat AS 4”password ?-md5 root (hd0,1)kernel /vmlinuz ro root=LABEL=/initrd /initrd-xxx.imgtitle “windows”password ?-md5 rootnoverify (hd0,0)chainloader +1當出現(xiàn) GRUB 菜單時,必須按下 p 并輸入才能進入命令模式,如果選擇 “redhat AS 4”并按下回車,會出現(xiàn)提示信息,需求輸入密碼,這時應該輸入 。同樣只有輸入才能進入 windows 系統(tǒng)。-md5 告訴 GRUB 后面的內(nèi)容是已用 md5 算法加密過的了。所以 GRUB 會將你輸入的口令用 MD5 加密后再和之比較。你能命令模式下用md5crypt 命令或在 shell 下執(zhí)行 grub-md5-cypt 來得出一個字符串用 MD5 加密后的結(jié)果,再插入到設(shè)置文件中。為每個引導項目設(shè)置 GRUB 密碼有好處也有壞處 :好處是 :你能禁止用戶隨便引導某個操作系統(tǒng),即使普通用戶能接觸GRUB 菜單,沒有密碼也沒有用;壞處是 :如果你一旦重啟機器,就必須手工輸入口令,否則會一直停在那里。如果你是在半夜遠程重啟某個主機的話. Hoho建議 :只設(shè)置 GRUB 密碼,也就是限制用戶進入命令模式,具體菜單項不設(shè)置密碼。七、 GRUB 和 stage 文件GRUB 含有幾個 images 文件,兩個基礎(chǔ)(必需的)stages 文件(stage1和 stage2),可選的 stage(也稱為stage1.5),和兩個網(wǎng)絡引導的images 文件(nxgrub 和 pxegrub)。stage1 是用于引導 GURB 的一個必須的映象文件。通常他是被嵌入到 MBR。或一個分區(qū)的引導扇區(qū)之中。因為 PC 的引導扇區(qū)是 512 字節(jié),所以 stage1 也是 512 字節(jié)。 stage1 的作用就是從一個本地磁盤加載 stage 2 或 stage 1.5 。因為大小的限制,stage1 對 stage2 或stage 1.5 的位置進行編碼,也就是說,stage1 是無法識別文件系統(tǒng)格式的。stage2 是 GRUB 的核心映象。他幾乎處理所有的事情(除了加載他自己),通常能把他放在文件系統(tǒng)上,但不是必須的。一旦你執(zhí)行了 grub-install 安裝了 boot loader ,stage1 文件就不是必須的,能把他移動到任意位置,因為他已被嵌入到 MBR 或 PBR 了。stage1和stage2 文件一般位于 /boot/grub/ 目錄下,在這個目錄下更有非常多 stage 1.5 的文件,而且都是以文件系統(tǒng)格式命名的。他們的目的是在 stage1 和 stage2之間搭建一個橋梁,也就是 stage 1 加載 stage 1.5,stage 1.5 加載 stage2。stage1 和 stage 1.5 的不同之處是 stage1 無法識別文件系統(tǒng), stage 1.5 能。因為 Stage2 太大了,無法被嵌入到某個固定的區(qū)域,而 Stage1.5能安裝在 MBR 之后的位置。至于 nxgrub 和 pxegrub 我們在第10節(jié)才介紹。八、 GRUB 常見錯誤信息我們把出錯信息分成3類,stage1 階段的、stage 1.5 階段的、stage2 階段。后兩個能合在一起。81 Stage1 階段可能出現(xiàn)的錯誤 :GRUB 對于該階段出現(xiàn)的錯誤一般是打印一個出錯信息并掛起機器,除非按CTRL-ALT-DEL 重啟。. Hard Disk Error :表示無法判讀 stage 1.5 文件所在的磁盤的大小和 CHS 參數(shù). Floppy Error :表示無法讀取 stage 1.5 文件所在的軟盤的大小和 CHS 參數(shù). Read Error :表示無法讀取 stage 1.5 文件或 stage2 文件. Geom Error :stage2 或 stage 1.5 位于 BIOS 的 read 調(diào)用能訪問的范圍之外。8.2 Stage 1.5/2 階段可能出現(xiàn)的錯誤 :一般會打印一個 “Error “的錯誤信息,并根據(jù)錯誤的嚴重程度看是否繼續(xù)進行。=1 : Filename must be either an absolute filename or blocklist解釋 :1號錯誤表示文件名格式錯誤。在 GRUB 中要么是以絕對路徑給出文件例子 :grub kernel vmlinuz root=label=/Error 1: Filename must be either an absolute pathname or blocklistgrub=2 : Bad file or directory type解釋 :2號錯誤表示命令期望的是個普通文件,但相應文件名的對象是個符號鏈接、目錄、FIFO例子 :grub kernel /testdir root=LABEL=/Error 2: Bad file or directory typegrub=3 : Bad or corrupt data while decompressing file解釋 :3號錯誤表示解壓文件時發(fā)生錯誤。可能是因為這個文件被損壞了=4 : Bad or incompatible header in compressed file解釋 :4號錯誤表示壓縮文件的頭部格式不被兼容或錯誤=5 : Partition table invalid or corrupt解釋 :5 號錯誤表示分區(qū)表無效或被破壞。這是個不好的預兆=6 : Mismatched or corrupt version of stage1/stage2解釋 :6號錯誤表示 install 命令發(fā)現(xiàn) stage1 和 stage2 的頒布號不被兼容=7 : Loading below 1MB is not supported解釋 :This error is returned if the lowest address in a kernel is belowthe 1MB boundary. The Linux zImage format is a special case andcan be handled since it has a fixed loading address and maximum size=8 : Kernel must be loaded before booting解釋 :8號錯誤表示執(zhí)行 boot 命令之前沒有先執(zhí)行 kernel 命令=9 : Unknown boot failure解釋 :9 號錯誤表示未知的引導錯誤=10 : Unsupported Multiboot features requested解釋 :10 號錯誤表示請求 Multiboot header 所需求功能不被 GRUB 所支持。=11 : Unrecognized device string解釋 :11 號錯誤表示無法識別的設(shè)備字符串。例子 :grub root hd0Error 11: Unrecognized device stringgrub=12 : Invalid device requested解釋 :12 號錯誤表示請求的設(shè)備無效例子 :grub root (hd2)Error 21: Selected disk does not existgrub kernel /grub/grub.conf root=LABEL=/Error 12: Invalid device requestedgrub=13 : Invalid or unsupported executable format解釋 :13 號錯誤表示無效或無法識別的可執(zhí)行格式例子 :grub kernel /grub/grub.conf root=LABEL=/Error 13: Invalid or unsupported executable formatgrub=14 : Filesystem compatibility error, cannot read whole file解釋 :14 號錯誤表示文件系統(tǒng)兼容性錯誤,無法讀取整個文件=15 : File not found解釋 :請求的文件無法找到例子 :grub find /grub-noexist/grub.confError 15: File not foundgrub=16 : Inconsistent filesystem structure解釋 :16 號錯誤表示不一致的文件系統(tǒng)結(jié)構(gòu)??赡苁俏募到y(tǒng)結(jié)構(gòu)被破壞了。=17 : Cannot mount selected partition解釋 :17號錯誤表示無法掛載指定分區(qū)。例如 swap 分區(qū)例子 :grub root (hd0,2) 這是個 swap 分區(qū)Filesystem type unknown, partition type 0x82grub kernel /vmlinuzError 17: Cannot mount selected partitiongrub=18 : Selected cylinder exceeds maximum supported by BIOS(bios放電,重新識別硬盤,GRUB可能是認錯了,群中的生活認為,我是新手,大家關(guān)照)解釋 :18 號錯誤表示選擇的柱面超過了 BIOS 支持的最大能力。這通常發(fā)生在不支持 LBA 模式的硬盤上。=19 : Linux kernel must be loaded before initrd解釋 :19 號錯誤表示執(zhí)行 initrd 命令前必須先執(zhí)行 kernel 命令=20 : Multiboot kernel must be loaded before modules解釋 :20 號錯誤表示執(zhí)行 module 或 moduleunzip 命令前必須先執(zhí)行 kernel 命令=21 : Selected disk does not exist解釋 :21 號錯誤表示選擇的磁盤不存在例子 :grub root (hd2)Error 21: Selected disk does not existgrub=22 : No such partition解釋 :22 號錯誤表示分區(qū)不存在例子 :grub root (hd0,10)Error 22: No such partitiongrub=23 : Error while parsing number解釋 :23 號錯誤表示參數(shù)解釋錯誤,希望是個數(shù)值,但參數(shù)卻是其他類型例子 :grub root (hda,0)Error 23: Error while parsing numbergrub=24 : Attempt to access block outside partition解釋 :24 號錯誤表示嘗試訪問的 block 超出了分區(qū)=25 : Disk read error解釋 :25 號錯誤表示磁盤讀錯誤=26 : Too many symbolic links解釋 :26 號錯誤表示太多的符號連接(默認最多允許5個)=27 : Unrecognized command解釋 :無法識別的命令=28 : Selected item cannot fit into memory解釋 :選擇的對象無法被加載到內(nèi)存中。例子 :rootmonitor boot# dd if=/dev/zero of=vmlinuz-2.4.20-31.9 bs=1024 count=1 seek=1讀入了 1+0 個塊輸出了 1+0 個塊rootmonitor boot#grubgrub kernel /vmlinuz-2.4.20-31.9 root=label=/Linux-bzImage, setup=0x1400, size=0xfffff200Error 28: Selected item cannot fit into memorygrub=29 : Disk write error解釋 :磁盤寫錯誤=30 : Invalid argument解釋 :無效參數(shù)例子 :grub serial -noarg=0Error 30: Invalid argumentgrub=31 : File is not sector aligned解釋 :This error may occur only when you access a ReiserFS partition byblock-lists (e.g. the command install). In this case, you shouldmount the partition with the -o notail option.=32 : Must be authenticated解釋 :需求輸入口令才能繼續(xù)進行下面的操作。例如設(shè)置文件中有 password 或 lock 命令例子 :password root1234title DOSlockrootnoverify (hd0,0)chainloader +1=33 : Serial device not configured解釋 :33 號錯誤表示串口還沒有設(shè)置。這一般發(fā)生在你執(zhí)行 terminal serial 的時候=34 : No spare sectors on the disk解釋 :磁盤自由空間不足??赡馨l(fā)生在把 stage 1.5 嵌入到 MBR 之后的空間的時候。但這部分空間可能已被分區(qū)表使用了=九、 制作 GRUB 引導軟盤GRUB 不僅能安裝在硬盤上,也能安裝在軟盤。有兩種方式可用于創(chuàng)建 GRUB 引導軟盤,差別在于后者帶有文件系統(tǒng),而前者只有 boot loader 本身。如果你誤刪除那些 stage 文件,后一種方式就大大有用了。第一種 :用 dd 命令創(chuàng)建 GRUB 軟盤. 按照 ./configure , make ,make install 的步驟安裝 GRUB. dd if=/usr/local/share/grub/i386-pc/stage1 of=/dev/fd0. dd if=/usr/local/share/grub/i386-pc/stage2 of=/dev/fd0 seek=1. 這樣就創(chuàng)建好一張 GRUB 引導軟盤了。第二種 :用 grub-install 創(chuàng)建帶文件系統(tǒng)的 GRUB 引導軟盤. 同樣是先安裝 GRUB. mke2fs /dev/fd0. mount /dev/fd0 /mnt/floppy. grub-install ?-root-directory=/mnt/floppy (fd0). 這樣軟盤上就會有一個 /boot/grub/ 目錄,下面就是那些 stage 文件了。. 上面的兩種方法做出來的軟盤都只能進入 GRUB 命令模式,你可能會覺得不爽,是否能直接進入菜單呢?答案是能的,只需要多一個步驟 :. 把 /boot/grub/ 目錄下的 device.map ,grub.conf ,menu.lst 統(tǒng)統(tǒng)拷貝到 /mnt/floppy/boot/grub 目錄下,這樣就能了。因為之前 GRUB 在軟盤上未找到設(shè)置文件,所以自動進入命令模式,目前用他啟動機器就能直接進入菜單模式了。十、 使用 GRUB 通過網(wǎng)絡引導操作系統(tǒng)GRUB 不僅能從本地硬盤引導操作系統(tǒng),還能通過網(wǎng)絡引導操作系統(tǒng)內(nèi)核。假使你由于某種原因,無法啟動操作系統(tǒng)。這時你需要在別的空閑的機器上先 build 一份GRUB ,并安裝到一張軟盤上。不過由于要支持網(wǎng)絡功能,所以 ./configure 時有所不同了 :你必須指定啟用網(wǎng)絡功能,和網(wǎng)卡芯片的型號 :(具體參考netboot/README.netboot 文件)。由于測試機器的網(wǎng)卡芯片是 RTL-8139 ,所以加上 ?-enable- rtl8139 ,整個過程就是(在別的空閑的機器上進行的) :# rpm ?e grub (刪除原來的 GRUB rpm,如果沒有裝就不用了)# ./configure ?-enable-diskless ?-enable-rtl8139 (這是故障主機的網(wǎng)卡型號)# make# make install# cp ?fa /usr/local/share/grub/i386-pc/* /boot/grub/# grub-install /dev/hda# mke2fs /dev/fd0 (格式化軟盤,建立 ext2 文件系統(tǒng))# mount /dev/fd0 /mnt/floppy# grub-install ?-root-directory=/mnt/floppy (fd0)# 檢查 /mnt/floppy 下是否有 nbgrub 和 pxegrub 兩個文件,這兩個文件就是用于網(wǎng)路啟動的。如果沒有,就從 /boot/grub/ 目錄拷貝到 /mnt/floppy/boot/grub/ 目錄下。切記切記!這樣你就制作好了一張帶有 stage 文件,支持網(wǎng)絡引導,且?guī)в芯W(wǎng)卡驅(qū)動的 GRUB 引導盤了。接下來就是 TFTP 服務器方面的工作了 :-)1、啟動 TFTP 服務器(編輯 /etc/xinetd.d/tftp 文件,把 disalbe改為 no)。-)2、檢查防火墻設(shè)置,確保故障主機能順利訪問該 TFTP 服務器-)3、找出一臺和故障機器具有相同內(nèi)核的主機,把 /boot/vmlinuz-2.xx 和 /boot/initrd-2.xx.img 拷貝到 TFTP 服務器的 /tftpboot/boot 目錄下-)4、把這張軟盤插入故障機器的軟驅(qū)并用他啟動機器,就會自動進入 GRUB 命令模式。-)5、執(zhí)行 ifconfig 命令將會顯示下面的畫面-)6、下面開始設(shè)置 ip 信息了 :(ifconfig 命令能分成多次執(zhí)行)-)7、目前網(wǎng)卡 ip 和 TFTP 服務器的地址都已設(shè)置了。-)8、下面設(shè)置 root device、kernel、initrd 。注意 root 括號中是 nd ,切記切記!當你執(zhí)行 boot 時,內(nèi)核將被解壓并執(zhí)行,一切就和往常相同。補充 :如果你的網(wǎng)絡有 dhcp 服務器,則能直接執(zhí)行 dhcp 命令來代替 ifconfig 命令獲取 ip 信息十一、 把設(shè)置文件嵌入到 GRUB 中 這里介紹一種比較少見的情況。有時我們會遇見主機不帶顯示器/鍵盤,但由于某些原因需要重啟主機并訪問 GRUB,這時怎么辦?你可能會說用串口連接。不錯,通過串口的確能控制 GRUB ,但有一個問題,即使你把筆記本連接到該主機上,但啟動時 GRUB 并不會自動使用筆記本的鍵盤,又怎么通過筆記本控制GRUB 呢?GRUB 支持一個功能叫做 preset menu(預設(shè)菜單),工作原理 :. GRUB 檢查是否啟用了 preset menu 功能,如果是的話,加載 preset menu 文件(不是 grub.conf). GRUB 加載 grub.conf ,這個過程是一定會執(zhí)行的,不管有沒有 preset menu 存在。. 在 grub.conf 被加載后,不管 grub.conf 有沒有引導項目,只要 preset menu 含有所有引導條目,都會被清掉。只有 grub.conf 文件不可用時,preset menu 的內(nèi)容才會被保留。看到這里,我想你應該明白 preset menu 怎么用了。我們能定義一個文件 pre-menu.conf ,內(nèi)容是把顯示轉(zhuǎn)換到 COM1 上 ,grub.conf 則是正常的內(nèi)容。然后把筆記本接到故障主機的 COM1,啟動終極終端。再啟動故障主機,GRUB 會先把顯示轉(zhuǎn)換到 COM1 ,然后加載 grub.conf ,后面的過程就和普通情況沒有什么不同。要使用 preset-menu ,你必須在執(zhí)行 configure 腳本時指定 ?-preset-menu ,例如#./configure ?-preset-menu=pre-menu.conf# make# make installpre-menu.conf 文件的內(nèi)容就是下面兩句 :serial ?-unit=0 ?-speed=9600terminal ?-timeout=0 serial注意,當內(nèi)核開始執(zhí)行時,顯示也就交回給原來的主機,而不再是你的筆記本了。要解決該問題,能在顯示菜單是進入命令模式,在 kernel 行后面加上 console=ttyS0,這樣 boot 時就能在終極終端上看到啟動的信息了。不過在 login 提示符出現(xiàn)時,顯示輸出又會回到原來的故障主機上了。這時你能用 secureCRT 來登錄了,不必再用到終極終端了。整體效果如下圖 :(通過串口看的)選擇引導 Red Hat 9 項目 :一旦你不想使用preset-menu了,是否直接刪除 pre-menu.conf 就能呢?不能。因為 pre-menu.conf 已被嵌入到 grub 中了,這時留在硬盤上的 pre-menu.conf 文件其實已沒有用了。要象取消 preset-menu 功能,必須重新 congfiure ,并去掉 ?-enable-preset-menu 選項,再重新安裝GRUB 。十二、 總結(jié)寫了這么多,目前總結(jié)一下大概的內(nèi)容. GRUB 是一種 boot loader ,他分成兩個階段 :stage1 和 stage2(中間可能有 stage 1.5). stage1 嵌入到 MBR 或 PBR 中,stage2 留在文件系統(tǒng)中。. build GRUB三部曲 :configure 、make、make install、. grub-install 和 grub shell 都能用于安裝 stage1 ,但 grub-install 功能更加強大. GRUB 支持菜單模式、命令模式。命令模式下的快捷鍵 :c、o、O、e、d、ESC. 使用 GRUB 口令保護 GRUB 設(shè)置. GRUB 支持從網(wǎng)絡引導操作系統(tǒng),不過在編譯時事先指定 ?-enable-diskless 和網(wǎng)卡驅(qū)動??上У氖?,GRUB 支持的網(wǎng)卡驅(qū)動不多。. GRUB 支持通過串口來訪問 GRUB 的命令和菜單模式. GRUB 能把設(shè)置文件事先嵌入到 GRUB ,但刪除時也需要重裝 GRUB 。十三、個人建議當安裝好操作系統(tǒng)后,應該做好下面幾項工作. 安裝光盤(建議刻成 ISO 文件便于保存). 制作一張 bootdisk 用于引

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論