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

下載本文檔

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

文檔簡(jiǎn)介

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論