折腾了一下,加强U盘的启动能力

今天新买的群联芯片的 8G U盘启动方面遇到一点问题。过程中觉得很奇怪,当然事实上是不奇怪的,只是目前bios和千差万别导致如此了。

首先是发现我的笔记本与公司电脑不一样,调好一边另一边启不动。后来发现grub4dos的启动能力强点。
就用它了,搞定一个 case。

然而又发现,在公司同样的dell 740版电脑,A机器进BIOS发现启动可选USB-HDD,而USB-ZIP旁边标示着not present.
B机器进BIOS,情况就反过来了,USB-ZIP可用,而USB-HDD则标为not present。
这两台机器,只有BIOS的版本不一样,其它硬件都一样。因为其中一台是刷过BIOS的。

这两种不同的情况导致了严重的后果。USB-ZIP的那台机器无法启动。显示
Remove disks or other media.
Press any key to restart
经查,这句话位于活动活区的第一扇区。把它改为其它值后发现,提示信息跟着变化。

这说明,bios直接启动了第一扇区的代码,未经过mbr.(mbr上装着grub4dos)

接下来就简单了,修改一下这个第一扇区的代码。还是老办法,0x40处的0x00一定要改为0x80,这是非软盘启动的基础。这个字节表示启动的介质类型。不是软盘就得填0x80。还有就是0xe6的四个字节跳转指令全部nop掉。强制用LBA方式(扩展int 13)读盘。这样不同BIOS的CHS参数不一样的问题 可以被绕过。此外0x170处的NTLDR改为GRLDR,强制启动grub4dos.

修改完成后,这个盘就可以在两台机器上都启动了。

此条目发表在boot分类目录。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*