grub menu.list配置 因重裝系統,把GRUB引導菜單搞沒了,一直不知道怎麼找回來,今天看到貼子,試了下,成功了,主要步驟是下邊蘭字部分t 而恢複Grub,其實也很簡單的:用Live CD(對於Ubuntu來說就是Desktop CD或者DVD)啟動,開啟終端(Applications──>Accessory──>Terminal),執行以下代碼:代碼:sudo grub find /boot/grub/stage1root (hdX,Y)setup (hdX)quit 注意:其中的X、Y是執行find /boot/grub/stage1命令後系統提示的。,比如:代碼:grub> find /boot/grub/menu.lst(hd0,7) 注意:這裡的grub>是執行sudo grub命令後進入grub環境得到的提示符,不用輸入。這時,X就是0,Y就是7。 下面詳細解釋一下這幾條命令: sudo grub 以root使用者身份啟動grub,否則會出錯,錯誤見後文find /boot/grub/stage1 尋找/boot所在分區,其實換用find /boot/grub/menu.lst也一樣。這一步也可以跳過,在執行root (hdX,時連按兩下Tab列出可用分區,自己確定是哪個分區。如果是將/boot單獨分區,詳見說明。root (hdX,Y) 設定硬碟hdX的根檔案系統(root Device),實際就是設定/boot所在的分區setup (hdX) 自動安裝GRUB到硬碟hdX。quit 退出GRUBroot、setup命令後都有空格,如果沒有會出錯誤。如果不以root使用者身份會出現什麼樣的錯誤呢?引用:ubuntu@ubuntu:~$grub [ Minimal BASH-like line editing is supported. Forthe first word, TAB lists possible commandcompletions. Anywhere else TAB lists the possiblecompletions of a device/filename. ] grub> find /boot/grub/stage1 Error 15: File not found grub> find /boot/grub/menu.lst Error 15: File not found grub> root(hd0,7) Error 27: Unrecognized command grub> root (hd0,7) Error 21: Selected disk does not existgrub> setup (hd0) Error 12: Invalid device requested 一個成功例子:引用:ubuntu@ubuntu:~$ sudo grub[ Minimal BASH-like line editing is supported. Forthe first word, TAB lists possible commandcompletions. Anywhere else TAB lists the possiblecompletions of a device/filename. ] grub> find /boot/grub/menu.lst(hd0,7) grub> root (hd0,7) grub> setup (hd0)Checking if "/boot/grub/stage1" exists... yesChecking if "/boot/grub/stage2" exists... yesChecking if "/boot/grub/e2fs_stage1_5" exists... yesRunning "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.succeededRunning "install /boot/grub/stage1 (hd0) (hd0)1+15 p (hd0,7)/boot/grub/stage2 /boot/grub/menu.lst"... succeededDone.grub>quit 這是最簡單的方法,也有其它幾個尋找/boot分區的方法,但稍麻煩點:在終端使用ls /dev/sd*和ls /hd*命令來尋找系統的外部設定,用sudo mkdir命令來建立掛載目錄,用sudo mount命令掛載,再用ls命令查看是否/boot所在的分區。 也可以用sudo fdisk -l來找到開機磁碟分割(這裡不涉及將/boot單獨分區的情況,因為那種我沒有實驗過,不太清楚),如:引用:ubuntu@ubuntu:~$ sudo fdisk -l Disk /dev/sda: 160.0 GB, 160041885696 bytes255 heads, 63 sectors/track, 19457 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/sda1 * 1 2295 18434556 7 HPFS/NTFS/dev/sda2 2296 19456 137845732+ f W95 Ext'd (LBA)/dev/sda5 2296 4845 20482843+ 7 HPFS/NTFS/dev/sda6 4846 8669 30716248+ 7 HPFS/NTFS/dev/sda7 8670 16557 63360328+ 7 HPFS/NTFS/dev/sda8 * 16558 17361 6458098+ 83 Linux/dev/sda9 17362 19393 16322008+ 83 Linux/dev/sda10 19394 19456 506016 82 Linux swap / Solaris 就知道開機磁碟分割是/dev/sda8 有人可能會有疑問,在Linux系統中是用sda8來表示這個開機磁碟分割,而GRUB中則是用(hd0,7)表示,這是因為在新版的Ubuntu中系統將串口硬碟和並口硬碟都識別為sd,a表示第一硬碟,8表示第4個邏輯分區(1──4被分配給主要磁碟分割,擴充分區裡的邏輯分區從5開始計算)。而Grub中則是用統一用hd代表硬碟,硬碟號與分區號都是從0開始計算的。這部分是憑記憶寫的,可能不準確,請參考wiki。 PS:看到有的文章說Alterate CD可以在boot後輸入linux rescue來啟動救援盤,後面的操作則一樣。我因手頭沒有Alterate CD無法驗證。DVD雖說整合了Alterate CD與Desktop CD,但無法在以字元介面安裝時啟動救援盤。 感謝雕雕補充:雕嘯長空 寫道:補充一點,上面講的是在/boot下面的東西都還完好的,但如果RP不行,/boot都玩完了,可以試一下下面的:產生/etc/mtab代碼:sudo grep -v rootfs /proc/mounts >sudo tee /etc/mtab 安裝grub到mbr代碼:grub-install --no-floppy /dev/hda 然後就自己搞定menu.lst了.