今天回家,老爸說叫了個專家過來給電腦新裝一個sata硬盤, 結果開機啟動grub報錯:
grub loading stage1.5
error 17
因為老爸說那專家發現硬盤被自檢識別出來後提出是否要安裝操作系統,老爸回答:no(幸好老爸知道已經有了他要的windows,不需要再裝了),於是就沒有再做其他任何操作。
只是添加一個硬盤就能讓grub啟動失敗?應該不至於吧,grub只是記錄了linux的啟動分區位置,相當於windows分區的mbr。我想可能是那位專家不小心把grub給破壞掉了, 可能當時想給安裝系統,後來又取消了。
知道了原因就好辦了, 拿出Ubuntu的livecd,進入虛擬系統。
打開終端
$sudo -i
$grub
$find /boot/grub/stage1
#find命令會查找grub所在分區,返回一個值,比如(hd1,6),表示第一塊硬盤,編號為6的分區
$root (hdx,x)
#root命令設定boot分區,如果上面find步驟返回的(hd1,6),這裡你就root (hd1,6)
$setup (hdx)
#如果find命令返回的是(hd0,num),你就 setup (hd0)
如果提示succeed、表示重建grub成功。這個過程如果不了解hd和分區編號,可以執行sudo fdisk -l 來查看,會發現對於硬盤的編號從0開始,不同接口還會有hd和sd之分。而grub從1開始計算, 硬盤統一都是hd,不分什麼hd和sd。
$quit
#退出grub
這個時候最好檢查一下sudo gedit /boot/grub/menu.lst。確保linux的啟動分區和windows啟動分區是正確的,但是這裡的硬盤編號跟grub不同,計數從0開始,但也統一都是hd。重啟系統,Done。
分析:
grub出現問題一般都是系統的引導記錄丟失, 比如你去重新安裝了xp(一般重新安裝linux不會有這個問題,會自動重建grub)。grub問題出現,首先要嘗試恢復grub,而不是再次重裝系統,或者fdisk/mbr。 (作者:spiritfrog)