分享
 
 
 

如何使用 Windows NT boot loader 来启动 Linux

王朝system·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

如何使用 Windows NT boot loader 来启动 Linux

1. 摘要

2. NT OS Loader 是如何运作的?

3. 如何安装 Windows NT 及 Linux 在同一系统上的提示

* 3.1 安装 Windows NT

* 3.2 分割磁碟

* 3.3 安装 Linux

* 3.4 Lilo

4. Bootpart

5. Linux 部份的工作

6. Windows NT 部份的工作

7. 再做一次

8. 排除问题

9. 其它

* 9.1 参考资料

* 9.2 感谢

* 9.3 回馈

* 9.4 译注: 以 NT Loader 启动 FreeBSD

_________________________________________________________________

1. 摘要

本文件描述了使用 Windows NT boot loader 来启动 Linux 的方法. 本过程已

在 Windows NT 4.0 Workstation 版及 Linux 2.0 上测试过.

2. NT OS Loader 是如何运作的?

NT OS loader 希望来自其它作业系统的启动磁区变成一档案来取用. 它读入这

档案并启动选择的作业系统,也就是说,或是不同模式运作的 Windows NT 或是

任何其它的作业系统.

3. 如何安装 Windows NT 及 Linux 在同一系统上的提示

3.1 安装 Windows NT

先试著安装 Windows NT.如果你想使用 NTFS 作为你 Windows NT 分割区的档案

系统,记住,目前版本的 Linux 无法取用 NTFS 的分割区. 一个可以读 NTFS

分割区的 Alpha 版驱动程式可在

[4]http://www.informatik.hu-berlin.de/~loewis/ntfs 找到. 你可建立另外

一个 FAT 分割区作为资料交换用,或是你可以使用 DOS 格式化的软碟片.

3.2 分割磁碟

另外一个 mini-howto 建议不要使用 NT 的“磁碟系统管理员“来建立 Linux 的置

换以及根目录分割区. 它会留下一些空间.我也建议使用 Linux 的 fdisk.

3.3 安装 Linux

现在从磁片上启动 Linux,建立置换及根目录分割区.Fdisk 会将 NTFS 分割区

认为是 HPFS 分割区,这是正常的. 再次从磁片启动 Linux 并按你的喜好安装

Linux.

在安装过程中建议你挂上它找到的 HPFS 分割区时: 忽略它.

3.4 Lilo

当你做到安装 Lilo 的部份时,指定你的 Linux 根目录分割区作为你的启动装置

因为你磁碟的主启动记录(MBR)现在是 Windows NT 所有. 这表示在你

/etc/lilo.conf 的 root 项目及 boot 项目会有相同的值. 如果你有一个 IDE

硬碟且你的 Linux 分割区是在第二块分割区上,你 /etc/lilo.conf 的 boot 项

目看起来会像:

boot=/dev/hda2

如果你有两个磁碟机而且你的 Linux 位於第二颗磁碟的第一个分割区上,你

/etc/lilo.conf 的 boot 项目看起来会像:

boot=/dev/hdb1

以符合你系统的核心执行 lilo.如果你不确定的话从磁片上启动以检查核心.

如果你现在无法启动 Windows NT,你有麻烦了.我希望你已经建立了最近的修复

磁片.

4. Bootpart

有一个由 G. Vollant 所写的 NT 程式叫 bootpasr 可以为你做到下述的两点.

Bootpart 可在此取得:

[5]http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

如果你想知道事情是如何运作的,使用第五及第六节描述的步骤.

5. Linux 部份的工作

你必须从磁片上启动 Linux 直到 NT 部份改好为止.

现在你必须从你的 Linux 根目录分割区中取出启动磁区. 如果 /dev/hda2 是你

的 Linux 分割区,这个 dd 指令是:

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

如果你的 bootsect.lnx 超过了 512 个位元组那麽就有些事不对劲.

现在将档案 bootsect.lnx 拷贝到一片 DOS 格式化过的磁片中,如果这是你将档

案传到 NTFS 分割区内的方法的话.

你可以这样来拷贝

# mcopy /bootsect.lnx a:

或者用

# mount -t msdos /dev/fd0 /mnt

# copy /bootsect.lnx /mnt

# umount /mnt

6. Windows NT 部份的工作

从磁片上将档案拷贝到 C:bootsect.lnx. 我不会告诉你怎麽做. (译注: copy

a:bootsect.lnx c:, 应该会吧.)

就像 Linux 下的 lilo.conf, 在 Windows NT 中是 c:boot.ini. 在你编修它之

前用这个指令除去它的系统及唯读属性:

C:attrib -s -r c:boot.ini

现在用一编辑器更改 boot.ini 档案,例如 notepad, 像这样:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINNT=“Windows NT Workstation ...

multi(0)disk(0)rdisk(0)partition(1)WINNT=“Windows NT Workstation ...

C:BOOTSECT.LNX=“Linux“

在本例中只加入了最後一行.在你储存 boot.ini 後用这个指令回复它的属性:

C:attrib +s +r c:boot.ini

在关掉你的 Windows NT 并重新启动後你应该会看到像这样的:

OS Loader V4.00

请选择您想要启动的作业系统:

Windows NT Workstation Version 4.0

Windows NT Workstation Version 4.0 [VGA mode]

Linux

使用↑键和↓键将您想要的选项反白,

选定後请按 Enter 键确认

选择 Linux 并会看到

LILO loading zImage ....

7. 再做一次

每次你 Linux 分割区的启动磁区被修改後一份新拷贝的 bootsect.lnx 就必须转

移到 C:BOOTSECT.LNX. 一个例子是当你重新用 lilo 安装一新的核心时. 因

此你可以看出这样的系统并不适合用来测试实验的核心.

8. 排除问题

如果事情并不按照预期的运作,用一磁片来检查可启动性. 如果 /dev/hdb1 是

你的 Linux 分割区,你的 /etc/lilo.conf 有下列的项目:

root=/dev/hdb1

boot=/dev/fd0

插入一磁片并执行 lilo. 现在尝试从磁片上启动. 如果你在 /dev/hdb1 上的

Linux 无法被启动,那麽 NT OS loader 也将无法启动它. 如果你看到一大堆

01 01 01 01,表示你的 root 磁碟无法取用. 检查是否你所有的磁碟都被

BIOS 侦测到.

如果这磁片可以启动你的 Linux 分割区,你可以用下面指令取出你的启动磁区给

NT OS loader 用:

# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

你可保留这磁片在你的 Windows NT 安装出问题时作为你的急救磁片.

9. 其它

9.1 参考资料

* The Linux+WindowsNT mini-HOWTO

* The FAQ for FreeBSD 2.X

9.2 感谢

* 感谢 Xiaoming Yi 提示这些过程也在除了第一颗磁

碟外的其它磁碟上运作.

* 感谢 Frank Dennler 提供的磁碟技巧.

9.3 回馈

任何意见都很欢迎.

9.4 译注: 以 NT Loader 启动 FreeBSD

因译者的电脑中除了 Windows NT 4.0 及 Linux 之外,还装了 FreeBSD 2.2,於

是就仿照上面的做法试试 NT Loader 有没有办法启动 FreeBSD. 我的 FreeBSD

装在 /dev/sda2, 也就是 FreeBSD 的 /dev/sd0s2. 按照上面的做法我先将

/dev/sda2 的 boot sector 存成一档案:

# dd if=/dev/sda2 of=/bootsect.bsd bs=512 count=1

并将它拷贝到 C: 下.再於 boot.ini 中加入

C:BOOTSECT.BSD=“FreeBSD“

不料这个方法竟然失败了,无法启动 FreeBSD!

一方面觉得失望,一方面又不死心.忽然想到,lilo 也可以拿来启动 FreeBSD.

於是,又做了下面的实验,进入 Linux 後,将 /etc/lilo.conf 改为:

boot = /dev/fd0

install = /boot/boot.b

vga = normal

other = /dev/sda2

label = FreeBSD

table = /dev/sda

loader = /dev/os2_d.b

放入一格式化过的磁片,再跑 lilo -v.然後将磁片的启动磁区变成一档案:

# dd if=/dev/fd0 of=/bootsect.bsd bs=512 count=1

并放到 C: 下.移去磁片後重新开机,在 NT Loader 的选单下选择 FreeBSD,

接著就看到:

LILO loading FreeBSD

>> FreeBSD BOOT @ 0x10000: 639/65536 k of memory

Usage: [[0:][fd](0,a)]/kernel][-abcCdhrsv]

Use 1:sd(0,a)/kernel to boot sd0 if it is BIOS drive 1

Use ? for file list or press Enter for defaults

Boot:

我成功了!!

References

1. mailto:reichert@dial.eunet.ch

2. http://www.phys.ntu.edu.tw/~cwhuang/pub/

3. mailto:cwhuang@phys.ntu.edu.tw

4. http://www.informatik.hu-berlin.de/~loewis/ntfs

5. http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm

Linux + NT OS Loader mini-HOWTO 中译版

作者: Bernd Reichert [1]reichert@dial.eunet.ch

译者: [2]C.W.Huang [3]cwhuang@phys.ntu.edu.tw

v1.11, 2 September 1997 翻译日期: 11-12 November 1997

_________________________________________________________________

本文件描述了使用 Windows NT boot loader 来启动 Linux 的方法.

_________________________________________________________________

1. 摘要

2. NT OS Loader 是如何运作的?

3. 如何安装 Windows NT 及 Linux 在同一系统上的提示

* 3.1 安装 Windows NT

* 3.2 分割磁碟

* 3.3 安装 Linux

* 3.4 Lilo

4. Bootpart

5. Linux 部份的工作

6. Windows NT 部份的工作

7. 再做一次

8. 排除问题

9. 其它

* 9.1 参考资料

* 9.2 感谢

* 9.3 回馈

* 9.4 译注: 以 NT Loader 启动 FreeBSD

_________________________________________________________________

1. 摘要

本文件描述了使用 Windows NT boot loader 来启动 Linux 的方法. 本过程已

在 Windows NT 4.0 Workstation 版及 Linux 2.0 上测试过.

2. NT OS Loader 是如何运作的?

NT OS loader 希望来自其它作业系统的启动磁区变成一档案来取用. 它读入这

档案并启动选择的作业系统,也就是说,或是不同模式运作的 Windows NT 或是

任何其它的作业系统.

3. 如何安装 Windows NT 及 Linux 在同一系统上的提示

3.1 安装 Windows NT

先试著安装 Windows NT.如果你想使用 NTFS 作为你 Windows NT 分割区的档案

系统,记住,目前版本的 Linux 无法取用 NTFS 的分割区. 一个可以读 NTFS

分割区的 Alpha 版驱动程式可在

[4]http://www.informatik.hu-berlin.de/~loewis/ntfs 找到. 你可建立另外

一个 FAT 分割区作为资料交换用,或是你可以使用 DOS 格式化的软碟片.

3.2 分割磁碟

另外一个 mini-howto 建议不要使用 NT 的“磁碟系统管理员“来建立 Linux 的置

换以及根目录分割区. 它会留下一些空间.我也建议使用 Linux 的 fdisk.

3.3 安装 Linux

现在从磁片上启动 Linux,建立置换及根目录分割区.Fdisk 会将 NTFS 分割区

认为是 HPFS 分割区,这是正常的. 再次从磁片启动 Linux 并按你的喜好安装

Linux.

在安装过程中建议你挂上它找到的 HPFS 分割区时: 忽略它.

3.4 Lilo

当你做到安装 Lilo 的部份时,指定你的 Linux 根目录分割区作为你的启动装置

因为你磁碟的主启动记录(MBR)现在是 Windows NT 所有. 这表示在你

/etc/lilo.conf 的 root 项目及 boot 项目会有相同的值. 如果你有一个 IDE

硬碟且你的 Linux 分割区是在第二块分割区上,你 /etc/lilo.conf 的 boot 项

目看起来会像:

boot=/dev/hda2

如果你有两个磁碟机而且你的 Linux 位於第二颗磁碟的第一个分割区上,你

/etc/lilo.conf 的 boot 项目看起来会像:

boot=/dev/hdb1

以符合你系统的核心执行 lilo.如果你不确定的话从磁片上启动以检查核心.

如果你现在无法启动 Windows NT,你有麻烦了.我希望你已经建立了最近的修复

磁片.

4. Bootpart

有一个由 G. Vollant 所写的 NT 程式叫 bootpasr 可以为你做到下述的两点.

Bootpart 可在此取得:

[5]http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm.

如果你想知道事情是如何运作的,使用第五及第六节描述的步骤.

5. Linux 部份的工作

你必须从磁片上启动 Linux 直到 NT 部份改好为止.

现在你必须从你的 Linux 根目录分割区中取出启动磁区. 如果 /dev/hda2 是你

的 Linux 分割区,这个 dd 指令是:

# dd if=/dev/hda2 of=/bootsect.lnx bs=512 count=1

如果你的 bootsect.lnx 超过了 512 个位元组那麽就有些事不对劲.

现在将档案 bootsect.lnx 拷贝到一片 DOS 格式化过的磁片中,如果这是你将档

案传到 NTFS 分割区内的方法的话.

你可以这样来拷贝

# mcopy /bootsect.lnx a:

或者用

# mount -t msdos /dev/fd0 /mnt

# copy /bootsect.lnx /mnt

# umount /mnt

6. Windows NT 部份的工作

从磁片上将档案拷贝到 C:bootsect.lnx. 我不会告诉你怎麽做. (译注: copy

a:bootsect.lnx c:, 应该会吧.)

就像 Linux 下的 lilo.conf, 在 Windows NT 中是 c:boot.ini. 在你编修它之

前用这个指令除去它的系统及唯读属性:

C:attrib -s -r c:boot.ini

现在用一编辑器更改 boot.ini 档案,例如 notepad, 像这样:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINNT

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINNT=“Windows NT Workstation ...

multi(0)disk(0)rdisk(0)partition(1)WINNT=“Windows NT Workstation ...

C:BOOTSECT.LNX=“Linux“

在本例中只加入了最後一行.在你储存 boot.ini 後用这个指令回复它的属性:

C:attrib +s +r c:boot.ini

在关掉你的 Windows NT 并重新启动後你应该会看到像这样的:

OS Loader V4.00

请选择您想要启动的作业系统:

Windows NT Workstation Version 4.0

Windows NT Workstation Version 4.0 [VGA mode]

Linux

使用↑键和↓键将您想要的选项反白,

选定後请按 Enter 键确认

选择 Linux 并会看到

LILO loading zImage ....

7. 再做一次

每次你 Linux 分割区的启动磁区被修改後一份新拷贝的 bootsect.lnx 就必须转

移到 C:BOOTSECT.LNX. 一个例子是当你重新用 lilo 安装一新的核心时. 因

此你可以看出这样的系统并不适合用来测试实验的核心.

8. 排除问题

如果事情并不按照预期的运作,用一磁片来检查可启动性. 如果 /dev/hdb1 是

你的 Linux 分割区,你的 /etc/lilo.conf 有下列的项目:

root=/dev/hdb1

boot=/dev/fd0

插入一磁片并执行 lilo. 现在尝试从磁片上启动. 如果你在 /dev/hdb1 上的

Linux 无法被启动,那麽 NT OS loader 也将无法启动它. 如果你看到一大堆

01 01 01 01,表示你的 root 磁碟无法取用. 检查是否你所有的磁碟都被

BIOS 侦测到.

如果这磁片可以启动你的 Linux 分割区,你可以用下面指令取出你的启动磁区给

NT OS loader 用:

# dd if=/dev/fd0 of=/bootsect.lnx bs=512 count=1

你可保留这磁片在你的 Windows NT 安装出问题时作为你的急救磁片.

9. 其它

9.1 参考资料

* The Linux+WindowsNT mini-HOWTO

* The FAQ for FreeBSD 2.X

9.2 感谢

* 感谢 Xiaoming Yi 提示这些过程也在除了第一颗磁

碟外的其它磁碟上运作.

* 感谢 Frank Dennler 提供的磁碟技巧.

9.3 回馈

任何意见都很欢迎.

9.4 译注: 以 NT Loader 启动 FreeBSD

因译者的电脑中除了 Windows NT 4.0 及 Linux 之外,还装了 FreeBSD 2.2,於

是就仿照上面的做法试试 NT Loader 有没有办法启动 FreeBSD. 我的 FreeBSD

装在 /dev/sda2, 也就是 FreeBSD 的 /dev/sd0s2. 按照上面的做法我先将

/dev/sda2 的 boot sector 存成一档案:

# dd if=/dev/sda2 of=/bootsect.bsd bs=512 count=1

并将它拷贝到 C: 下.再於 boot.ini 中加入

C:BOOTSECT.BSD=“FreeBSD“

不料这个方法竟然失败了,无法启动 FreeBSD!

一方面觉得失望,一方面又不死心.忽然想到,lilo 也可以拿来启动 FreeBSD.

於是,又做了下面的实验,进入 Linux 後,将 /etc/lilo.conf 改为:

boot = /dev/fd0

install = /boot/boot.b

vga = normal

other = /dev/sda2

label = FreeBSD

table = /dev/sda

loader = /dev/os2_d.b

放入一格式化过的磁片,再跑 lilo -v.然後将磁片的启动磁区变成一档案:

# dd if=/dev/fd0 of=/bootsect.bsd bs=512 count=1

并放到 C: 下.移去磁片後重新开机,在 NT Loader 的选单下选择 FreeBSD,

接著就看到:

LILO loading FreeBSD

>> FreeBSD BOOT @ 0x10000: 639/65536 k of memory

Usage: [[0:][fd](0,a)]/kernel][-abcCdhrsv]

Use 1:sd(0,a)/kernel to boot sd0 if it is BIOS drive 1

Use ? for file list or press Enter for defaults

Boot:

我成功了!!

References

1. mailto:reichert@dial.eunet.ch

2. http://www.phys.ntu.edu.tw/~cwhuang/pub/

3. mailto:cwhuang@phys.ntu.edu.tw

4. http://www.informatik.hu-berlin.de/~loewis/ntfs

5. http://ourworld.compuserve.com/homepages/gvollant/bootpart.htm

阅读:567次

来源:Linux自由空间

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有