Yblog = yourblog,你的優質部落格。願真田幸村紅鎧策馬赤備突擊的身影,帶給我們更多的勇氣。
星期二, 一月 13, 2009
安裝Windows 7後恢復Ubuntu等Linux系統開機的方法

當你安裝了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預計新功能清單被放出來 

More... funp HemiDemi MyShare del.icio.us technorati Google Bookmarks Digg
ivan 發表於 12:30 AM | 文章分類: 數位科技, software | 標籤列表: , ,

迴響留言

我剛好前幾天換硬碟修復grub,參考 http://justfor1221.pixnet.net/blog/post/11589260 ,
用 "find /boot/grub/stage1" 這個指令,提供給ivan。
鳥毅 發表於 22:29, Jan 14, 2009
118.169.212.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
grubinst 就好了.....還搞liveCd...
由 r 發表於 11:16, Jan 16, 2009
76.30.106.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
你安裝Ubuntu的時候一定有LiveCD或USB
直接放上去就可以執行這個了
更多的情況是只有這一台電腦 剛好有這樣的方式還比較快

還去下載grubinst來做 就太麻煩了
ivan 發表於 9:00, Feb 9, 2009
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
請問windowsXP/Ubuntu/Windows7安裝順序要如何呢˙˙"
由 水玥 發表於 13:26, Jan 28, 2010
114.42.208.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
windowsXP/Windows7/Ubuntu
ivan 發表於 0:27, Jan 29, 2010
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
感謝~明天試看看...汗
由 水玥 發表於 22:45, Jan 29, 2010
114.42.77.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
嚴重的問題...開機選單出來了,xp能進,ubuntu損壞= =
由 水玥 發表於 20:50, Feb 3, 2010
114.42.79.* | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
使用恢復開機的方法
把grub修復~

如果是
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選單恢復了
ivan 發表於 16:24, Feb 9, 2010
208.97.143.* | ivanusto at gmail dot com | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字
很感謝大大發這篇文章, 但因為之前曾經因為安裝ubuntu之後,常常發生有些檔案及資料夾無法開啟或者二台於windows界面中,網路芳鄰上的磁碟無法共享的問題(會跳出,權限不夠,請洽管理員之類的字眼),除非改變硬碟的代號才行,所以再也不敢用了。sorry。若有解決方法,煩請告知,感謝。
由 leon 發表於 20:48, Jan 2, 2011
175.180.65.* | neoleon007 at yahoo dot com dot tw | 標記為廣告 | 回應此篇迴響
名稱
電子郵件
網址




請輸入你在圖片中看到的文字

張貼迴響:
名稱
電子郵件
網址



請輸入你在圖片中看到的文字
引用列表
本篇文章引用網址: http://yblog.org/api/trackback/?id=9665
沒有引用










Collablog Portal enabled