OSWikiHK: 請協力 GPLv3 的中文翻譯工作。
使用 NTLDR 在 Windows 啟動 GNU/Linux
OSWikiHK,自由中文開源知識庫
雖然大部份 GNU/Linux 在安裝時都會自動安裝開機管理程式 GRUB 讓使用者型以在開機時選擇啟動 GNU/Linux、 Windows 系統或其他作業系統。但不少人並不喜歡外來的程式佔據其 MBR (Master Boot Record)。本文講解如何使用 Windows NT/2000/XP 上的 NTLDR 取替 GRUB 在啟動 Windows 時讓使用者選擇啟動 Windows 還是其他作業。
目录 |
安裝 GNU/Linux 時把開機管理程式安裝在分割區中
這點很重要,安裝 GNU/Linux 時不要把開機管理程式安裝 MBR 中而安裝在分割區中。
Ubuntu
在『已準備好要安裝』畫面按『進階...』(Advanced...):
把『用來安裝開機管理程式的裝置』改成 GNU/Linux 所在的分割區。如 GNU/Linux 所在的分割區 hda2 或 sda2 就設定成“(hd0,1)” (hda/sda 對 hd0,第二個分割區對 1)。切忌改成“(hd0)”或 Windows 所在的分割區,會覆寫 MBR 或損壞 Windows 的啟動。
Fedora/CentOS/RHEL
在選擇分割硬碟方案時,把『What drive you would like to boot this installation from?』改成 GNU/Linux 所在的分割區。
切忌改成“hda”、“sda”或 Windows 所在的分割區,會覆寫 MBR 或損壞 Windows 的啟動。
複製 VBR
如果您打算使用 VBR 映像檔啟動 GNU/Linux,您需要預先把 VBR 複製成檔案。方法是以系統管理員身份 (即使用者 root):
dd if=/dev/hda2 bs=512 count=1 of=gnu.dos
以上命令把分割區 hda2 的第一個磁區複製成檔案 gnu.dos。如果您安裝開機管理程式並不安裝在 hda2,請把以上命令中的 hda2 改成所在的分割區名稱。
您需要把 VBR 映像檔 gnu.dos 放在 Windows 中,如果您是使用 2007 年推出的 GNU/Linux,應會提供讀寫 NTFS 功能,可以直接把映像檔複製至 Windows 的檔案系統中。您亦可以選擇把映像檔複製至已格式化的軟碟或 USB 儲存器中,再在啟動 Windows 後複製至 Windows 的檔案系統中。
改變 NTLDR 設定檔 boot.ini
- 使用 GNU/Linux 的 VBR (Volume Boot Record) - 安裝 GNU/Linux 時有把開機管理程式安裝在分割區中,那只要執行分割區最開首幾個磁區 (即 VBR) 就可以啟動 GNU/Linux 。
- 使用 GRUB4DOS - GRUB4DOS 顧名思意就是 DOS 版本的 GRUB,功能和原本的 GRUB 差不多。由於可以直接在 Windows 或 MS-DOS 上執行,無需要改動 MBR,比使用 PBR 彈性大,但安裝較麻煩。
使用 GNU/Linux 的 VBR (Volume Boot Record)
把之前複製出來的 GNU/Linux VBR 放在 Windows 上的 C:\,改一個容易識別的名稱,例如 gnu.dos。
編輯檔案 C:\boot.ini 並在 operating systems 章節加入一行 「C:\gnu.dos="GNU/Linux"」:
[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="Windows" /NoExecute=OptIn /fastdetect /usepmtimer C:\gnu.dos="GNU/Linux"
使用 GRUB4DOS
首先下載 grub4dos-*.zip 至您的 Windows 系統。GRUB4DOS 的最新版本為 0.4.3,下載點如下:
下載完成後,把 grub4dos-*.zip 裡的所有檔案解壓至開機磁碟 (一般為 C:) 的一個新資料夾中,例如 C:\GRUB4DOS 。把 C:\GRUB4DOS 中的 grldr.mbr 和 grldr 兩個檔案複製至 C:\ 中。
編輯檔案 C:\boot.ini 並在 operating systems 章節加入一行 「C:\grldr.mbr="Grub4Dos"」:
[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="Windows" /NoExecute=OptIn /fastdetect /usepmtimer C:\grldr.mbr="Grub4Dos"
完成後,您只需要設定好 GRUB4DOS 的設定檔 C:\menu.lst 就可以了。 menu.lst 的設定頗複雜,最簡單的方法是把安裝好 GNU/Linux 中的 /boot/grub/menu.lst 複製出來 (如以使用 LiveCD 或在 Windows 安裝 Ext2 IFS 把 menu.lst 複製至 Windows 中) ,把第一個 title 上面所文字刪掉用以下文字取代:
color black/cyan yellow/cyan timeout 30
如下:
color black/cyan yellow/cyan timeout 30 title Ubuntu 8.04.1, kernel 2.6.24-19-generic root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=5502783d-5a11-4918-9091-691042c466c4 ro quiet splash locale=zh_TW initrd /boot/initrd.img-2.6.24-19-generic quiet title Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode) root (hd0,1) kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=5502783d-5a11-4918-9091-691042c466c4 ro single initrd /boot/initrd.img-2.6.24-19-generic

