|
回复 #1255 NicTense 的帖子
“三重MBR”的说明文档和配套工具都没有建立,很抱歉。从以下这个帖子中可以找到相关的技术和方法:
三重MBR救活一台笔记本实战: http://bbs.znpc.net/viewthread.php?tid=5593
------------
你所提到的问题,需要下大功夫才能弄清楚。
1。你的启动 U 盘是如何建立的(用什么工具、什么方法、什么步骤建立的)?
2。MBR 上是谁的代码?是grub4dos 的代码吗?(应该是 grub4dos 的才对)
3。PBR 上是谁的代码?从你的描述来看,PBR 应该是你的“软盘”的第一扇区。那个扇区上的代码是不是 grub4dos 的?(应该是 grub4dos 的才对)
4。经由何种方式进入 grub4dos 的环境?是 grldr 呢?还是 grub.exe?(应该是 grldr 才对)
你需要搞清楚,位于 MBR 上的代码,究竟起作用了没有。你可以检验这一点,只要稍稍修改 MBR 上的代码(需要了解一点简单的汇编知识),让它死机,然后插入 U 盘引导机器,如果确实死机了,则证明 MBR 已经被 BIOS 调用和执行过了,否则,如果根本不死机,则说明 BIOS 根本就没有把控制权交给 MBR,而是直接交给了 PBR。
如果 MBR 上的 grldr 引导代码接管了控制,它会正确识别 “软盘” 的分区,并把 grldr 所在的分区,比如说是 (fd0,0),当作 boot 和 root 设备。
如果 MBR 没有接管控制,而是 PBR 上的单一扇区 grldr 引导代码接管了控制,那么,这个“软盘”上的第一扇区,即 PBR,假定它是 grldr 的引导代码。这个代码有很多域,其详细说明在 README_GRUB4DOS.txt 文件中可以找到。其中有一段话是这样的:
Partition number of this partition on the boot drive.
0, 1, 2, 3 are primary partitions.
4, 5, 6, ... are logical partitions in the extended partition.
0xff is for whole drive. So for floppies, it should be 0xff.
因此,对于你的情况,它应该是 0xff,因为你的文件系统的起始地址是 PBR,在此之前的 32 个扇区是不可见的。所以,它是“整个软盘”的起始。这个值可能原来是 00,你应该手动把它更改成 FF。
为什么原来应该是 0 呢?因为当 U 盘被识别为 HDD 时,该分区确实是 (hd0,0),所以,分区号码应该是 0。但是,对于 USB-ZIP 的情况,软盘的起始地址已经平移了 32 个扇区,因此,此处的分区号码不再是 0 了,而应该是 0xFF,代表“整个磁盘”。
这么做显然很麻烦。但是,三重 MBR 就可以避免这个麻烦。三重 MBR 是专门对付这类错乱问题的。一旦安装了三重 MBR,你就无须手动调整任何设置了,他能自动应付一切变化。所以,最简单、最省事的办法,是直接安装三重MBR。
------------
不用安装三重MBR了。2010-04-20 又更新了 grldrstart.S。因此,grldr, grldr.mbr 和 bootlace.com 都需要更换成新版本。
你安装引导扇区的步骤与以前相同(以前是怎么安装的,现在还可以按照那个步骤来安装),只不过所用到的工具都要根据新版本来更新。
本次更新让 U 盘启动时,USB-ZIP 软盘的设备能够被正确处理为 (fd0)。具体改变的是 FAT 和 NTFS 的引导扇区代码。
[ 本帖最后由 不点 于 2010-4-20 23:16 编辑 ] |
|