下午在window下用pqmagic把移動硬碟重新分區後,重新開機選擇進入ubuntu的時候出現啟動錯誤:
Grub Error17:Cannot mount selected partition......
上網查詢發現,對雙系統,在window下pq調整分區大小很容易産生分區表重改等莫名其妙的問題。上述錯誤就是分區表被改寫,原有的linux boot分區号發生變化,是以grub引導錯誤。解決辦法有很多:
1.最快最簡單的
在啟動菜單選擇unbuntu後,不要回車進入,按e進入編輯grub模式。修改root(hd0,y)的y值(hd0表第一塊硬碟,y表硬碟分區号)。
如:将原有的root(hd0,7)改為(hd0,8)。然後安b重新開機,如果能進入系統則表示正确,如果同樣報錯,那麼重複上述步驟修改(hd0,y)為别的值,試幾次就能成功了。
成功登入linux後還要修改menu.lst達到一勞永逸的效果。打開終端:
sudo vi /boot/grub/menu.lst
如将root(hd0,7)修改為正确的值(hd0,y),同時将kernel行的root=/dev/sda8也修改為正确數值y+1(sda8對應hd0,7)。例子如下:
title Ubuntu, kernel 2.6.17-10-generic
root (hd0,8)
kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/sda9 ro quiet splash locale=zh_CN
initrd /boot/initrd.img-2.6.17-10-generic
quiet
savedefault
boot
2.如果手頭有livecd(ubuntu的destop cd),可以通過livecd啟動linux,然後修改grub配置和menu.lst。
$sudo grub 進入grub
find /boot/grub/stage1 提示正确的boot位置,如(hd0,8)
root (hdX,Y)
setup (hdX)
quit
注意:其中的X、Y是執行find /boot/grub/stage1指令後系統提示的。或者執行$sudo fdisk -l根據各個分區顯示資訊判斷正确的boot分區号。
然後修改menu.lst,首先得将boot分區mount上。如:
$sudo mount /dev/sda9 /media
$cd /media
$sudo vi boot/grub/menu.lst 修改之。
重新開機ok。
3.假如boot下面的東西都損壞了,那還得麻煩點:
$sudo grep -v rootfs /proc/mounts >sudo tee /etc/mtab 生成/etc/mtab
$grub-install --no-floppy /dev/hda 安裝grub到mbr
然後建立menu.lst