From:http://wenku.baidu.com/view/ef78e110fe4733687e21aac3.html
用LiveCD修復Grub2的具體方法如下:
1、用ubuntu9.10的LiveCD光盤啓動系統;
2、打開終端,輸入終端命令:
sudo fdisk -l (查看計算機分區列表)
請記錄下來根分區 /
和 /boot 分區安裝的位置(我的根分區位於/dev/sda6,/boot沒有單獨分區(若有則假設位於/dev/sda7)),
下面就以我的分區爲例說明,請大家根據自己的磁盤分區情況進行相應修改;
3、在終端輸入命令:
sudo su - (or sudo -i 取得root特權)
mount /dev/sda6 /mnt
mount /dev/sda7 /mnt/boot (如果/boot沒有單獨分區則不要執行這個命令)
grub-install --root-directory=/mnt/ /dev/sda
(注意此命令中root前面是兩個減號橫槓)
4、執行完以上步驟和命令,重新啓動系統。
此時出現雙系統啓動菜單,且可正常進入ubuntu9.10,卻無法進入windows xp了。
繼續修復如下:
進入Ubuntu9.10系統,打開終端,輸入命令:
sudo update-grub (重建GRUB列表,將windows
xp引導項修復)
sudo grub-install/dev/sda (重新寫入第一分區mbr)
5、重新啓動系統,雙系統啓動應該恢復成功。
若還是無法進入windows xp,可以嘗試手動修改grub.cfg文件,
若想修改啓動順序的話,也要修改grub.cfg文件。
具體方法如下:
進入Ubuntu9.10系統,打開終端,輸入命令:
sudo-i (取得root特權)
chmod +w /boot/grub/grub.cfg (修改grub.cfg文件的操作權限)
gedit /boot/grub/grub.cfg (編輯grub.cfg文件,方法類似修改grub的menu.lst文件)
當無法進入windows xp時,若grub.cfg文件中windows引導相關的部分包含search或drivemap的話,應該刪除其所在行。(這種情況比較少見)
例如,將以下內容
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
search –no-floppy –fs-uuid –set 4a807ca0807c93e3
drivemap -s (hd0) $root
chainloader +1
}
修改爲
menuentry "Microsoft Windows XP Professional" {
set root=(hd0,1)
chainloader +1
}
grub.cfg文件修改完畢後,爲了安全起見,應該恢復它的只讀權限,操作如下:
chmod -w /boot/grub/grub.cfg
這裏介紹一個比較簡單的方法,利用Ubuntu的live cd進行GRUB修復工作。(未測試)
#sudo grub
#find /boot/grub/stage1
上面的命令會返回一個值(hd?,?)
#root (hd?,?)
#setup(hd0)
以上命令執行完畢之後推出
#quit
然後重啓你的計算機,你可以看到GRUB已經修復了
5.2. ubuntu grub 調整系統啓動順序
cd /etc/grub.d
ls -l
-rwxr-xr-x 1 root root 6831 2010-10-06 20:23 00_header
-rwxr-xr-x 1 root root 1481 2010-10-06 20:05 05_debian_theme
-rwxr-xr-x 1 root root 4757 2010-10-06 20:23 10_linux
-rwxr-xr-x 1 root root 5028 2010-10-06 20:23 20_linux_xen
-rwxr-xr-x 1 root root 1588 2010-09-25 01:14 20_memtest86+
-rwxr-xr-x 1 root root 6933 2010-10-06 20:23 30_os-prober
-rwxr-xr-x 1 root root 214 2010-10-06 20:23 40_custom
-rwxr-xr-x 1 root root 95 2010-10-06 20:23 41_custom
-rw-r--r-- 1 root root 483 2010-10-06 20:23 README
30_os-prober即爲安裝的windows系統
cp 30_os-prober 02_os-prober
這樣windows就在ubuntu啓動前面
再update-grub 或者 grub-mkconfig
6. 補充說明
使用天意U盤工具中的slitaz系統安裝grub後能啓動win8系統(顯示爲vista),不能啓動ubuntu系統。