請大家根據你們的情況一一對號入座。
1.裝完XP,Vista,Win7後grub無法啟動,有Live CD:
這種問題是最經常遇到的,要解決問題,你需要一張ubuntu live cd。
用live cd引導系統,直接按Ctrl+Alt+F1進入終端,輸入sudo grub進入GRUB命令行,輸入:
root (hdx,y)
X為硬盤號,通常為0(第一個硬盤),y為ubuntu分區號,如果你不知道是哪個,請在輸入逗號時,按一下TAB,grub會自己列出一堆分區,找有ext3/ext4/reiserfs/xfs/jfs的一行,輸入行頭的數字即可。
接著輸入
setup (hdx)
x為硬盤號。然後輸入quit退出,sudo halt關機,問題解決,如果出現錯誤,請看第三條。
2.裝完XP,Vista,Win7後grub無法啟動,無Live CD:
(alert:這種方法轉自ubuntucn論壇,我自己沒有試過,應該可以。)
在你WIN系統中,下載GRUB4DOS,解壓,拷貝grldr到c:\,編輯boot.ini,在最後添上一句:c:\grldr=”GRUB4DOS”,保存重啟,選擇GRUB4DOS啟動項即可。
個人感覺這個方法治標不治本,不太好用,但貌似只有這種方法不用Live CD。
Vista/win7和WUBI安裝的朋友們看這裡(FROM UBUNTUCN):
下載grub4dos,解壓後將grldr和grldr.mbr復制到C盤根目錄下。
用bcdedit添加新項目(以管理員身份運行CMD)
bcdedit /create /d “GRUB” /application bootsector
此時生成一個{id}
bcdedit /set {id} device partition=C:
bcdedit /set {id} path \grldr.mbr
bcdedit /displayorder {id} /addlast
WUBI安裝的繼續,VISTA/WIN7略過:
從wubi安裝Ubuntu的分區中(比如D:\),則將D:\ubuntu\winboot\menu.lst這個文件復制到C盤根目錄下。(無意中發現了這個文件)
重啟系統,進入GRUB,OK了!
XP/Vista/Win7:
啟動進了GRUB後,按c鍵打開GRUB CMD,輸入:
root (hdx,y)
X為硬盤號,通常為0(第一個硬盤),y為ubuntu分區號,如果你不知道是哪個,請在輸入逗號時,按一下TAB,grub會自己列出一堆分區,找有ext3/ext4/reiserfs/xfs/jfs的一行,輸入行頭的數字即可。
接著輸入
setup (hdx)
x為硬盤號,然後重啟即可!
3.裝完XP,Vista,Win7後grub無法啟動,或無故不能啟動,有Live CD,方案1失敗:
比較棘手,前提是你的硬盤系統不能是EXT4(除非你有9.04 Live CD),否則看第4條。
注:此條適用於GRUB2,但會Fallback到GRUB0.97去,又要執行upgrade-from-grub-legacy,所以我個人認為第4條效果更好。
用Live CD啟動,同1,進入終端,先掛載Linux分區(X為安裝盤):
sudo mount /dev/sdaX /mnt
然後運行:
sudo grub-install /dev/sda –root-directory=/mnt
OK!如果不行或你的分區是EXT4或你裝的是GRUB2,請看——
4.(最極端的情況,有一次我就碰上了,搜了一晚的GOOGLE,終於找到了)分區是EXT4,或裝GRUB2:
先mount分區,X為安裝分區(EXT4掛在Intrepid比較麻煩):
sudo apt-get install e2fsprogs
sudo tune2fs -E test_fs /dev/sdaX
sudo mount -t ext4dev /dev/sdaX /mnt
然後依次掛載proc,sys,dev(個人認為比較BT)
sudo mount -t proc proc /mnt/proc
sudo m
ount -t sysfs sys /mnt/sys
sudo mount -o bind /dev /mnt/dev
然後切換Terminal:
sudo chroot /mnt /bin/bash
然後執行grub-install即可!
grub-install /dev/sda –root-directory=/
5. (有時候某些人就是RP不好:D)終極殺手锏,不能算辦法的辦法:
http://www.eisoo.com/cn/professional/diskgenius/
此處下載Disk Genius,掛載你的LINUX分區,趕緊把你所有的數據COPY出來,然後格式化重裝!算了,不多說了,大家對於這是什麼方法心知肚明!呵呵。
補充:
6.(關於EXT4)升級2.6.28內核後,/是ext4dev無法啟動
From Ubuntu-CN
ext4在2.6.28中正式啟用,fstab的ext4dev也可以改為ext4了,但直接啟動會提示ext4-fs not marks…..之類的錯誤。
這樣就需要更改gurb或grub4dos的配置文件,添加rootfstype=ext4。
如:
kernel /boot/vmlinuz-2.6.28 root=UUID=xxxxx rootfstype=ext4 ro splash
這樣就行可以解決了。
7.GRUB menu.lst范例(勿照搬,適用於Ubuntu 8.04.2):
給個Ubuntu 8.04.2的,你參考一下:
title Ubuntu 8.04.2, kernel 2.6.24-23-generic
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=d6747029-70cf-4f34-be5f-6da3a3b70716 ro splash locale=zh_CN vga=792
initrd /boot/initrd.img-2.6.24-23-generic
quiet
title Ubuntu 8.04.2, kernel 2.6.24-23-generic (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=d6747029-70cf-4f34-be5f-6da3a3b70716 ro single vga=792
initrd /boot/initrd.img-2.6.24-23-generic
重點修改root後的分區標志與UUID,詳情參見上文。
UUID掃盲:UUID是Linux標記磁盤的ID,貌似每個磁盤都不一樣。如果你不知道你磁盤的UUID,可以把上述KERNEL這一行改為:
kernel /boot/vmlinuz-2.6.24-23-generic root=/dev/sdaX ro single vga=792
X為你UBUNTU所在的分區。
8.GRUB重裝時出現Error 22:
MBR分區表錯誤,打開終端,輸入:
sudo fdisk /dev/sda
按w並回車,重寫MBR
然後按照前面的修復步驟進行,不再報錯,成功修復Grub!