使用安裝版的windows重裝windows時會改寫mbr,造成grub丟失,可以用grub4dos引導進入ubuntu后修復grub或用livecd啟動后修復grub。
1、用grub4dos修復ubuntu
先下載最新版的grub4dos,下載地址http://sourceforge.net/projects/grub4dos/files/GRUB4DOS/,如果是xp系統,把grub4dos壓縮包內的grldr復制到C盤根目錄下,修改boot.ini,在最后加上一行 c:\grldr=”grub4dos”,
對 於vista/win7系統,把壓縮包內的grldr.mbr和grldr復制到C盤根目錄下,在C盤自己建立一個boot.ini文件,若有boot隱 藏分區的,先給boot分區分配盤符.
再把grldr,grldr.mbr和boot.ini放在boot分區下,boot.ini內容如下:
Win7使用軟改激活的請不要使用此方法,否則會造成win7不能啟動。
然后在根目錄新建一個menu.lst,內容為
timeout 0
default 0
title grub2
find –set-root /boot/grub/core.img
kernel /boot/grub/core.img
boot
(有/boot分區的改為
find –set-root /grub/core.img
kernel /grub/core.img)
重啟后選擇Grub4Dos會自動轉入grub2,從grub2菜單項選擇ubuntu啟動后,在終端執行
sudo grub-install /dev/sda
將grub裝入第一硬盤的mbr,如要裝入第二硬盤的mbr把sda改為sdb,第三硬盤為sdc,類推。
至於要把grub裝到sda或sdb或sdc的mbr上,需根據自己情況確定,看看要設置哪一塊硬盤為啟動盤,就把grub裝到那塊硬盤的mbr上。
2、用livecd修復grub
Linux 下制作 Ubuntu 啟動 USB
sudo dd if=ubuntu-13.10-desktop-amd64.iso of=/dev/sdb #/dev/sdb 為 USB 盤符
windows 下用 rufus, https://sourceforge.net/projects/rufus.mirror/ 將live iso 寫入usb 作啟動盤
1. 查看硬盤分區狀況,獲取 Linux 系統安裝分區編號
sudo fdisk -l
假如你的ubuntu的 / 分區是sdb1,又假如 /boot分區是 sdb6,用livecd啟動,在終端下輸入
sudo -i
mount /dev/sdb1 /mnt
mount /dev/sdb6 /mnt/boot (有boot 單獨分區一定要此步)
mount --bind /proc /mnt/proc
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
chroot /mnt
grub-install --root-directory=/mnt /dev/sda
若卸載掉舊的grub, 如下
apt-get purge grub-pc
安裝新
apt-get install grub-pc
grub-mkconfig
grub-install /dev/sda
如果grub.cfg己丟失,或grub.cfg出現錯誤,需要重建的繼續執行下面操作:
grub-mkconfig -o /boot/grub/grub.cfg
Grub 已經修復成功,我們還需要退出 chroot 環境、卸載已經掛載的設備與目錄:
exit #退出 chroot 環境
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys ; umount /mnt/boot
umount /mnt
reboot
3、用帶grub啟動的光盤或U盤修復
如果手上有grub啟動的工具盤,用工具盤啟動,在grub菜單上按c進入命令行狀態,
在grub>提示符下輸入
grub>find /boot/grub/core.img (有/boot分區的用find /grub/core.img)
(hdx,y) (顯示查找到的分區號)
grub>root (hdx,y)
grub>kernel /boot/grub/core.img (/boot分區的用 kernel /grub/core.img)
grub>boot
執行boot后能轉入grub2菜單,啟動ubuntu后,再在ubuntu終端下執行
sudo grub-install /dev/sda (或sdb,sdc等)修復grub。
如果ubuntu的啟動分區使用ext4格式,要有支持ext4格式的grub才能修復。
4、沒安裝引導器的 grub4dos引導ubuntu的方法
按第一步的方法使用 boot.ini 建立grub4dos引導項,自己編寫 menu.lst,內容如下
timeout 3
default 0
title Ubuntu 9.10
root (hdx,y) ——–> (hd0x,y) 為 /boot分區的分區號
kernel /vmlinuz-xxx-generic root=/dev/sdxy ——->/dev/sdxy 為 / 分區的分區號
initrd /initrd.img-xxx-generic
沒 /boot 分區的用
timeout 3
default 0
title Ubuntu 9.10
root (hdx,y)
kernel /boot/vmlinuz-xxx-generic root=/dev/sdxy
initrd /boot/initrd.img-xxx-generic