當你安裝了Windows 7或後續版本,但你電腦中原本還有Ubuntu Linux或其他的Linux系統,要怎麼樣才能恢復開機的功能呢?
以常見的Grub,這個Linux開機的前導程式為主,最簡單的方法就是放入LiveCD 來執行簡單的指令,就可以恢復重建Windows 7安裝後破壞掉的Grub選單。
這和安裝Windows XP後只要修改boot.ini不一樣,從代號Longhorn的Windows Vista開始,以及這次的Windows 7,微軟讓作業系統的開機前導機制改成了bcd啟動的bootmgr,當它破壞掉了原本安裝Ubuntu後自動做好的多重開機選單Grub,最快恢復的方 法就是執行LiveCD上的grub,此方法針對裝了Ubuntu後,又裝上一次Vista或Windows 7有用。
執行的方法如下:
1、放入LiveCD到光碟機,或者是將LiveUSB隨身碟插到電腦的USB插孔上,開機。
2、選擇英文或中文語言後,選擇第一個選項「試用Ubuntu………」
3、有兩種情況,一種是系統會檢查硬碟,然後自動進入終端機狀態。另一種則是進入桌面,你要自行打開終端機。
這時請輸入sudo su,按下enter鍵。(一般是不需要密碼確認,有需要密碼再另外輸入)
4、輸入grub,按下enter鍵。
5、grub程式介面啟動,依序在grub>提示符下輸入兩個指令,都按下enter鍵。
root (hdx,y)
setup (hdx)
這裡要特別注意,x是硬碟的編號,y是硬碟上的分區編號。第一行指令的意義是指定/boot這個磁區在第幾顆硬碟上的第幾個磁區,第二行指令的意義就是執行grub選單重建。
一般的情況是這樣,只有一個硬碟,那麼第一顆實體硬碟機的編號就是0,第2顆硬碟就是1。
至於硬碟分區編號,會是用數字來排列,如果你的Ubuntu安裝在第n個分區,那麼y這個數字就是n-1。
大部分的初學者,安裝Ubuntu都是裝成單一磁區,所以如果你的磁區裝在第一顆硬碟上的第3個分區,就是輸入root (hd0,2),記得root和(之間要有一個半形的空格。
我自己的Ubuntu磁區分成很多個,而/boot則在硬碟磁區的第9個(sda9),所以第一行指令輸入會是root (hd0,8)。
這2個指令執行時,會檢查你指定的磁區到底有沒有/boot,所以如果它找不到/boot,執行完後會顯示錯誤訊息,你可以從0、1、2、3一直測試到有為 止,它屬於相對安全的指令,並不會對非掛載/boot的磁區下動作。(我因為忘記/boot自己裝在第幾個,一直試到8為止。)
網友補充:找/boot更快的方法是下find /boot/grub/stage1指令,就會找到了。(對喔,耍笨忘了用find ==)
然後,按下ctrl alt delete 重開機就好了。
Update: 恢復Grub2開機選單的方法
如果是
Ubuntu 9.10以後,是使用grub2,恢復的方法如下:
用livecd或live usb開機
通常windows是先裝的,假設只有一個windows分區(C:),那麼在linux下,它這個分區會是sda1
於是Linux下的根目錄 / 分區假設是 sda3
/boot分區是 sda2
開機後,打開終端機,輸入以下指令即可
fdisk -l (看分區資訊)
sudo -i
mount /dev/sda3 /mnt (把根目錄 / mount)
mount /dev/sda2 /mnt/boot (如果沒 /boot 這個單獨分區,那麼就不用做這個指令)
grub-install –root-directory=/mnt/ /dev/sda
exit
接著滑鼠按下重新開機按鈕即可
開機時就會看到你的grub2選單恢復了
延伸閱讀:
安裝Windows 7後恢復Ubuntu等Linux系統開機的方法
用戶期望的微軟新版作業系統Windows 7預計新功能清單被放出來