復原 Windows MBR 的各種方式
玩 Linux 最常見的方式就是切 Partition 做多重開機, 讓 GRUB 寫入 MBR 做開機選單. 但是若不小心把 Linux Partition 刪掉了, 或是哪天不想玩 Linux 了, 想恢復為 Windows 單一作業環境的時候, 就得把 Windows Pre-Boot 程式寫回 MBR 的前 446 Bytes 喔!
方法一:使用 DOS / Win9x / ME 開機片開機
開機後在 MS-DOS 模式下執行 fdisk /mbr
重新啟動電腦即可
方法二:使用 Windows 2000 / XP 光碟片開機 (過程中需要 Administrator 密碼)
在 Welcome to Setup (歡迎使用安裝程式) 畫面中按 R 或 F10 進入「Windows 修復主控台」
進入主控台後, 輸入 fixmbr
重新啟動電腦即可詳細操作過程請參考微軟官方網頁 - Windows XP 修復主控台的說明
方法三:使用 Linux 光碟片開機, 進入 Rescue 模式; 或用 KNOPPIX 之類的 Linux 作業系統開機 (過程中請啟用網路)
依序輸入以下指令恢復 Windows MBR
wget http://cha.homeip.net/downloads/ms.mbr -O /tmp/ms.mbr
dd if=/tmp/ms.mbr of=/dev/hda
exit (重開機時請移除光碟片)
- 以上操作結果同 fdisk /mbr
- 網路上流傳 dd if=/dev/zero of=/dev/hda bs=446 count=1 效果等同 fdisk /mbr 是錯誤的, 這樣只會清掉 MBR 的 Pre-Boot 內容而已.
- 警告: 請勿於頭腦混沌、神智不清時使用 dd 指令; 使用時請特別注意數字是否正確!
方法四:什麼開機片都沒有, 但開機後還有 GRUB> 提示符號
依序輸入以下指令啟動 Windows
rootnoverify (hd0,0)
makeactive
chainloader +1
boot
- (hd0,0) 其中 hd0 表示 Primary IDE Master HDD, 0 表示第一個分割區, 請依實際狀況套用.
- 注意: 這只是解決 Windows 的啟動問題而已, 仍要靠前三種方法的其中一種才能讓 MBR 恢復正常喔! 當然, Windows 開機後您也可以上網尋找其他的解決方案 :)
參考資料:
- BBS 留言討論 - 關於 MBR (Big5 編碼)
- GRUB Manual: Booting (英文)