歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux服務器

GRUB不能啟動解決全攻略

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

    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