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


相關頁面

相關連結

Personal tools
廣告橫額