sizhou 发表于 2020-3-31 14:08:58

U盘成功启动的制作

本帖最后由 sizhou 于 2020-3-31 14:20 编辑

这标题可能不是取的很好,U盘的启动对应错综复杂的BIOS很难做到通吃,这里主要是针对Microsoft的系统dos 开始,到xp 2k3 ....win10 PE。
USB协议是1996年定的,U盘的启动应该晚些年出现。
win98启动盘的3个基本文件比较特殊,可以适应硬盘和软盘都启动。
9几年时候的IDE硬盘开始,就没有真实的CHS值,提供虚假的chs 与BIOS通信,BIOS与系统、软件会伪造不同CHS通信(不是X盘固件提供的chs值)。U盘本质是LBA设备,系统划归SCSI设备。
98年后的BIOS大多数都支持扩展int 13 访问,U盘启动bootloader文件需要支持扩展int 13 函数启动基本都能成功。
win98系统是支持fat32格式的LBA访问。DOS的启动有个特殊地方,启动开始地址0C1H1S的DBR,一般S是63。
DOS启动能成功,相信后面的xp 2k3 .... win10pe启动更没问题

下面的方法算是提高成功率吧,
以下操作会破坏U盘数据,请备份好数据。U盘是单分驱,没有量产过的盘,
虚拟机安装Ubuntu,
插入您的USB闪存盘
打开终端窗口,然后输入sudo su ,需要root口令
键入apt-get install syslinux(如果您没有安装syslinux)
键入apt-get install mtools(如果尚未安装mtools)
键入fdisk -l列出可用磁盘(从列表中记下您的U盘是dev/sdx)

键入mkdiskimage -F / dev / sdx 0 Y 63(用实际的闪存驱动器号替换x) 请结合上面显示的盘 确定U盘是sda /sdb/ sdc???
Y是数字,512M-1G的盘32,1-2G盘是64,2-4g的盘是128,4G以上的盘是255
该过程完成(U盘越大,时间越长)后,安全移除U盘

关闭虚拟机,换到window系统,请一定不要格式化U盘,Windows提示U盘错误,需要重复上面操作,不用分区U盘,这盘是63扇区开始没有对齐。
下面用bootice设置主引导记录WINDOWS6.xmbr, 分区引导记录 设置ms-dos,分区管理里激活、 修改分区ID,8G以上的盘设置为0C,别的不管。

点 扇区编辑   选择 MBR 位置是0.可以查看801   1   0开始,后面数字和图不同。

选择fat32, 位置是63扇区, 可以查看

请把位置0015 改为F8, 0040改为80.fat32 后面都有备份,位置0032是6表明63+6到69扇区位置请修改前面的2个数字F8 80。需要修复文件系统错误

把win98启动盘3个文件直接放U盘根位置。用Qemu启动测试器 对U盘可以测试启动,

如果成功说明这U盘固件对启动支持还不错,想换别人的pe, 可以解压别人的ISO文件放到U盘,修改下 分区引导记录为 bootmgrgrub4dossyslinux等。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=418753&extra=前面我发的帖子,最后几个英文网站提供了分析,可能不算什么理论上的。


zyh2133 发表于 2020-3-31 15:32:45

谢谢分享{:1_183:}

2010sya 发表于 2020-3-31 15:58:09

不错,谢谢

新空气 发表于 2020-3-31 16:49:40

学习学习

Michael2008 发表于 2020-8-12 14:52:06

不错,支持

9527sss 发表于 2022-7-23 13:56:09

谢谢分享

2010minyang 发表于 2022-7-24 09:39:47

受教了……

roboy007 发表于 2024-1-24 22:38:46

领教了

megatron 发表于 2024-2-3 07:20:51

高深,感谢大佬分享经验

zhcn 发表于 2024-2-5 11:10:45

受教了

guong 发表于 2024-2-5 11:39:16

学习了 感谢分享经验
页: [1]
查看完整版本: U盘成功启动的制作