歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux服務器 >> GRUB不能啟動解決全攻略

GRUB不能啟動解決全攻略

日期:2017/3/2 16:41:36   编辑:Linux服務器

請大家根據你們的情況一一對號入座。

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!

Copyright © Linux教程網 All Rights Reserved