|
|
楼主 |
发表于 2008-1-15 23:51:09
|
显示全部楼层
有的BIOS不把正确的启动驱动器传给MBR这也是一个U盘无法启动的因素。而如果BIOS不提供这一信息,MBR或BOOT区的代码根本无法自行判断自己究竟是从哪里启动的,应到哪里继续加载后续的启动代码。关于这一点可以考虑启动时人工介入来提供这一信息。可以使用现成的:debain中的MBR包。这个包所安装的MBR代码可以在启动时提示用户输入后续启动代码的位置,可选位置包括硬盘各个分区及软驱。这样做出来的系统维护U盘应该可以克服这一问题。
这一镜像使用时,如果不能启动,在出现MBR提示符时,3秒内按住Ctrl或Shift键,MBR会提示从何处启动,即1234AF,输入F或1尝试启动即可。
一点遗憾:这一MBR代码不像grub或syslinux那样,在BIOS不支持LBA模式时仅使用分区表中的扇区数结合BIOS提供的驱动器的CHS值来计算出引导扇区所在的CHS,而是直接使用分区表中记录的CHS信息来读取引导扇区,这一点不适合像U盘这种在各机器上识别到的CHS值不同的启动介质。当然,鉴于现在大部分BIOS对USB-HDD均支持LBA模式,所以在绝大多数机器上这种方法还是可用的,但毕竟是美中不足。
[ 本帖最后由 wangjg 于 2008-1-16 12:04 AM 编辑 ] |
|