我的機器安裝有Windows XP和Ubuntu7.04雙系統,由於莫名其妙的問題會讓我們重裝不穩定的Windows,並且當重裝Windows後,也會毫無提示的將硬碟的MBR改寫,覆蓋原來的啟動菜單。下面步驟介紹如何恢複啟動菜單並進入Ubuntu:
注意:當然要保證在重裝Windows的時候沒有把Linux分區格式化。
第一步到下面這個網站上下載一個最新版的grub4dos:
http://download.gna.org/grub4dos/
把剛剛下載而來的grub4dos解壓到系統所在盤c盤,將這個檔案夾下面的grldr和grub.exe,及menu.lst拷貝到系統硬碟根目錄。其他的檔案就暫時不用理會了,我們這裡不需要。
第二步、開啟系統所在的根目錄,在“檔案夾選項”裡面將“隱藏受保護的作業系統檔案(推薦)”前面的勾去掉,並保證已經“顯示所有檔案夾”。
找到根目錄下的boot.ini這個檔案,按右鍵去掉該檔案的“唯讀”屬性。用記事本開啟boot.ini,在最後的空白行裡添加
c:/grldr=”Start with GRUB4DOS”
第三步、重新啟動電腦,選擇Start with GRUB4DOS
然後選擇”enter command line”
輸入如下命令列:
root (hdX,Y)
如果不知道x,Y是多少輸入:
#> find /boot/grub/stage1
PS:root和(hdX,Y)之間是有一個空格的。hdX的這個X,是硬碟數,從零開始,如果是一個硬碟就是hd0,Y是根所在的分區
再運行: setup (hdX)
最後運行 reboot 重啟電腦
這時就會看到啟動菜單,選擇正確的選項就可進入Ubuntu了;
有時會出現 Error: Can not mount selected partition 這樣的錯誤資訊,表示不能加裁磁碟分割,對雙系統,在window下pq調整分區大小也很容易產生分區表重改等莫名其妙的問題。上述錯誤就是分區表被改寫,原有的linux boot分區號發生變化,因此grub引導錯誤。解決辦法如下:
在啟動菜單選擇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)即可。
當然如果採用光碟片安裝時恢複的方法就更簡單了,這裡就不再細說了。。。。。。。。