2009/11/04

用 XP 開機選單開啟 Ubuntu

安裝 XP 以後再安裝 Ubuntu 基本上會相安無事,不過 XP 經常有事沒事就需要重灌,重灌完 MBR 被洗掉 Ubuntu 就進不去了。目前參考網路上的作法,讓使用者可以用 XP 的開機程式開啟 Ubuntu,且重灌時備份也很方便。

測試環境:
  • IDE Master:Windows XP
  • IDE Slave:Ubuntu

先安裝完 XP 以後再安裝 Ubuntu 到兩個不同的硬碟後,正常情況下應該會看到 Ubuntu GRUB 的開機選單,這時先進入 Ubuntu 內。



第一件事情,就是先把 Ubuntu 建立的 MBR 開機程式複製出來。

開啟終端機 (應用程式選單 => 附屬應用程式 => 終端機),先用 fdisk 看一下自己的硬碟在 Ubuntu 上面的編號:
zero@zero-desktop:~$ sudo fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xd011d011

所用裝置 Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        1043     8377866    7  HPFS/NTFS

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x000ea8c9

所用裝置 Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         993     7976241   83  Linux
/dev/sdb2             994        1044      409657+   5  延伸的
/dev/sdb5             994        1044      409626   82  Linux swap / Solaris
可以看到我的 XP 是安裝在 /dev/sda1,開機程式也會在這個硬碟上,所以接下來用 dd 備份 MBR:
zero@zero-desktop:~/桌面$ sudo dd if=/dev/sda1 of=~/桌面/Ubuntu.img bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.000470415 s, 1.1 MB/s
這一步做完最難的部份也結束了。

再來使用 Windows XP 開機光碟還原成 Windows 的 MBR 開機程式。


使用修復模式進入 command line



使用 fixmbr 將開機程式寫入 MBR


最後把 Ubuntu.img 這個檔案複製 Windows XP 的 C 槽根目錄,打開 boot.ini 修改開機設定:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect
C:\Ubuntu.img="我的 Ubuntu"
改好存檔以後,重新開機應該就會看到以下的畫面,選擇「我的 Ubuntu」就會跳到 GRUB 開機選單,也可以啟動 Ubuntu。



以後重灌 Windows 只要記得備份 Ubuntu.img,重灌完只要修改 boot.ini 就可以開啟 Ubuntu 了。

參考資料:
用Windows內建的boot.ini做多重開機Linux + XP
http://www.wretch.cc/blog/mezl/20241371

Jserv's blog: Linux/x86 開機流程:自 MBR 到 init
http://blog.linux.org.tw/~jserv/archives/001714.html

異動:
2009.11.05 更新:補上還原 Windows MBR 部份。

1 則留言: