关于NTLDR的一些注意事项

旧电脑还在跑 NT5 系列的系统……折腾多重启动很累

我是用第一个分区专做boot分区,第二个分区装 NT5,第三个分区装 Arch Linux.

boot分区一开始用GRUB4DOS (MBR+grldr+menu.lst) 现在改用 GRUB2 (MBR+grub.cfg),大体使用都差不多.

起初我把 NTLDR, NTDETECT.COM, BOOT.INI (以下简称三件套,由于只有一个选项,不显示菜单,故不使用字体)放在第二个分区,设置root为第二分区后chainloader /ntldr启动,发现直接重启了……一开始以为是 BOOT.INI 的问题,改了半天也没用,后来想了想觉得如果是 BOOT.INI 出问题应该会输出点什么,比如说 hal.dll, NTDETECT.COM 找不到一类的信息.

后来我把三件套放在第一个分区后,设置root为第一分区后chainloader /ntldr启动,竟然可以了.

当时就觉得好智障,难道 NTLDR 只会去搜硬盘的首分区?但因为我记得以前放第二个分区是可以启动的,不知道这次为什么不行了.

还是说只会去搜活动分区?我把第二分区设为活动后还是没什么用,当然了这不影响我的 GRUB4DOS 或者 GRUB2,因为它们是写在 MBR 里的.

后来拿 BOOTICE 看了下每个分区的 PBR,发现第一个分区竟然是 NT5 的 BOOT SECTOR,改之为其它类型的 PBR 即解决问题.

如果安装了多个 Windows 那么可以用 GRUB2 隐藏前面的 Windows 分区,让 NTLDR/BOOTMGR 检测不到.

因此 NTLDR 会搜索的是第一个带 NT5 的 BOOT SECTOR 的分区...

posted @ 2018-07-31 10:52  SigerYoung  阅读(778)  评论(0编辑  收藏  举报