|
本帖最后由 dido0379 于 2019-9-12 12:55 编辑
要求镜像必须支持UEFI启动
用到的文件在附件中
因为我的工作经常要启动各种pe,在uefi下本地或者ipxe远程启动PE的iso镜像文件不怎么方便,每次都要解压出来用wimboot来启动,所以一直想找一个工具能在UEFI本地或者ipxe远程直接启动iso镜像文件(本地启动iso镜像文件只找到XORBOOT可以用),后来看了这个教程http://www.lab-z.com/stu132rd/于是有了上面那个东西。
再经过一段时间的修改,总算可以不用ramdiskdxe了,因为ramdiskdxe.efi在较新的已经包含了此驱动的UEFI BIOS上面无法工作。并且先要载入内存需要占用更多的内存和时间。
现在也可以用efishell载入或者grub2来载入isoboot,并且加入了一个简单的配置文件,可以在配置文件第一行里面写上iso文件的路径。
配置文件只支持一行,指出iso文件的路径,可以是相对路径如"..\123\test.iso"或者"567.iso",也可以是绝对路径如"\abc\zxc\test2.iso"。
如果没有配置文件,那么isoboot会在自己所在目录查找iso文件,用找到的第一个iso文件来启动。
所以ipxe的菜单可以写成两行
initrd ${xieyi}://${next-server}/test.iso
chain ${xieyi}://${next-server}/isoboot.efi
用grub2的话类似这样"chainloader /123/isoboot.efi"就可以了。
另外我没有在真实机器上面测试,只在Q启动测试器和VMWARE里面测试过。有条件的朋友可以把测试结果反馈到这里。但是我可能不会有进一步的需求来修改了,所以把源代码也放在这里。有需要的可以自己修改。
6月29日 重做驱动部分,已兼容铭瑄B150,华硕B250,华硕B450,附件已更新
7月6日 添加命令行参数支持,这样就可以用同一个isoboot.efi文件启动不同文件夹或者相同文件夹下的不同的iso文件,grub2菜单可以写成
chainloader /zxc/isoboot.efi 123/test.iso(相对路径)或者
chainloader /zxc/isoboot.efi /abc/test.iso(绝对路径),附件已更新。
7月7日 在使用中发现有的iso镜像把内置2.8M大小的bootimage的扇区数设置成了1个扇区(800字节)导致不能启动。改为读取内置bootimage引导区的扇区数。并且限定为最小2.8M(0x1680个扇区)。
7月9日 调整了驱动安装顺序和策略,命令行增加了-mem,-wait n,可以按键取消倒计时,通过了少量的测试,附件已更新。
9月12日 ,imgboot发布,包含isoboot的所有功能,增加32位版本,兼容UEFI2.0固件,增加对硬盘分区的识别,允许镜像不在imgboot所在分区。用法见压缩包中的配置文件。
|
评分
-
查看全部评分
|