|
本帖最后由 2011yaya2007777 于 2023-1-30 10:00 编辑
现在分析一下神舟K470 phoenix BIOS启动U盘的情况:
经过BIOS自己的判断,认为U盘是可移动介质,因此分配盘符A,隐藏第一个分区之前的扇区,修改(确切地说是减少)总扇区数,修改第一个分区(PBR)的参数表(BPB),具体是修改偏移0x1c处的4字节隐藏分区值。以求道者的UD为例,是将0x4000修改为0。然后把控制权移交给PBR代码。此时,使用int13/ah=42读LBA(0),由于隐藏了第一个分区之前的扇区,现在LBA(0)指向第一个分区(PBR),因而不是返回MBR代码,而是返回PBR代码。
BIOS根本就没有把控制权移交给MBR的代码,因此UD的引导代码没有起作用,隐藏分区的启动菜单及文件也没有使用。UD启动失败。
要想在这种情况下UD仍然可以成功启动,办法是:
把可见分区的启动代码修改为G4D的启动代码(使用bootice)(不要修改0x1c处的值),根目录放置grldr,建立相关启动目录,复制相关启动菜单及文件。(几乎是把隐藏分区的文件都搬过来了)
这样修改后,UD的优点荡然无存! |
|