红联Linux门户
Linux帮助

使用NTLDR在Windows启动GNU/Linux

发布时间:2008-08-13 11:40:06来源:红联作者:ylnyzl
PS:http://wiki.debian.org.hk/w/Boot_GNU/Linux_on_Windows_with_NTLDR

虽然大部份 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
文章评论

共有 10 条评论

  1. weixiaoyu111 于 2011-01-04 13:12:29发表:

    为为wwwwwwwww

  2. 2012linuxroot 于 2010-12-24 13:00:18发表:

    看得一知半解的

  3. wx-1 于 2010-12-24 12:05:45发表:

  4. yong009003 于 2010-01-19 13:45:24发表:

    很是不错!我在XP里安装小芭比(puppy,10M)时,就看了看!不错!:0()w(1

  5. jerry520 于 2009-03-23 13:33:06发表:

    不错又学习了.

  6. jack67686 于 2008-10-12 10:49:12发表:

    诶呀,娘诶:0w223dc 俺可找到你了(5ty(

  7. menyuqi 于 2008-09-05 13:13:40发表:

    这样也可以的:0wl;l1

  8. netlee 于 2008-08-27 15:11:10发表:

    一般来说,GRUB的引导方式更先进

  9. shenshen 于 2008-08-17 15:39:16发表:

  10. pshark 于 2008-08-16 13:36:04发表:

    支持.......支持.......支持.......