1. 把NT的安装盘中的NTLDR拷贝到C:下(这假定是原来的Windows 9x, 要求FAT16,NT不认FAT32). 然后在Win 9x下进行2(Win 9x的DOS Mode不行, 要不你得Lock C:盘,因为要Direct Disk Access)
2. 运行NT安装盘中的winnt: winnt /b (floppyless operation, /x大概也差不多)它的操作是将C:的boot record备份成bootsect.dos, 并加了个boot.ini,在boot.ini中加了两个entry, 然后把C:的boot record换成NT的(hehe, 要的就是这个了)要注意的是winnt /b考贝文件时就可以Ctrl+Alt+Del把它干掉了, 不必浪费磁盘空间. 而且一定要把NTLDR copy到C:下, 不然等一下就说NTLDR not found启动不了了.
3. 这样就装完NT OS Loader了, 接下来可以然后就可以自己改boot.ini了把它attrib -r -h -s 比较方便 :-)
[Boot Loader]
Timeout=5
Default=C:BOOTSECT.DOS
[Operating Systems]
C:BOOTSECT.DOS = "Microsoft Windows 95"
C:BOOTSECT.LNX = "Redhat Linux 5.1"
C:BOOTSECT.SLK = "Slackware 3.5"
C:BOOTSECT.BSD = "FreeBSD 2.2.6"
可以安装自己的需要加入更多 OS的boot record entry
关于怎么把各种OS的分区boot record搞出来前面也提到了, 就是用dd了装 OS时把它们的Loader装在分区中(不要装在MBR中)
eg: dd if=/dev/hda3 of=/mnt/dosc/bootsect.lnx bs=512 count=1
(假设Linux的 LILO装在/dev/hda3)
dd if=/dev/hda4 of=/mnt/dosc/bootsect.bsd bs=512 count=1
(FreeBSD在/dev/hda4, 原来有篇mini-HOWTO说NT Os Loader不能直接load FreeBSD 2.2.5, 我在FreeBSD 2.2.6下经过验证, 已经可以了,不必拿LILO来引导FreeBSD)
多说两句:
1. 关于这种引导方法的好处
NT OS Loader是Microsoft的东西, 在重装Win95/NT等时都会自动识别且不会覆盖,不象LILO那样会被误为virus或被无情override.
而且NT OS Loader是装在C: 的boot record上的, MBR保持untouched(uninstallLinux时不用fdisk /mbr恢复MBR) 当然这种方法需要一个FAT16的分区了, 相信许多人的硬盘上还是有个Win9x的吧? :-))
另外NT Os Loader可以display出 OS Prompt让你用Arrow Keys选择,对许多人来说很方便, 加入你的机器上同时还装了NT那这种方法就更适合了
2. 用lilo更新完boot record后要及时dump到bootsect.xxx中去
在Linux下lilo update完boot record后要dd一下, 不然记录的一些sector位置可能前后不符, 导致无法启动
hehe, 反正我自己一直都是这样用的, 觉得OS Loader还不错...