|
|
本帖最后由 freshwind 于 2025-12-25 19:48 编辑
GRUB4DOS/GRUB2修改版是否支持HTTP方式加载VHD文件?
备注:1. UEFI MODE环境, 后续这已经是主流
2. VHD文件中是安装了SVBUS 驱动的windows. 最终是想从网络方式加载SVBUS驱动的RAMOS
刚开始看G4E 的源码,代码中读取VHD文件后,重新Install blockio Protocol并且针对SVBUS生成了一些数据结构,
未修改的IPXE, 最接近的启动方式是sanboot, sanboot借助的是iscsi的协议intall 的block ioprotocol 试验也是FAIL
ipxe无论哪个命令都是无法启动的
20251225 更新,G4E/GRUB应是有命令,还没搞定,花了点时间找到一个折衷办法
借助于iPXE的ISCSI网络协议栈和NTFS Uefi Driver加载启动SVBUS RAMOS过程
注意:
以下全程为UEFI Mode,借助于IPXE的ISCSI协议栈模拟出来的HD,千兆网络25G大小VHD文件加载大概6分钟
BIOS自带的网络协议栈性能太差,所以借IPXE协议栈,否则加载10-20G大小的VHD文件,耗时太长
我的机器内存128G,如果内存太小没法玩这个
1. 启动到iPXE的Shell
2. dhcp net0 获取IP, show net0/ip 查看是否已获取成功
3. 启动iSCSI Server, 挂载vhd文件,vhd文件中 划分为 2个分区
a) 分区0:FAT32格式,放置 shell.efi 到指定目录比如根目录
b) 分区1:NTFS格式,放置包含WINDOWS+SVBUS的VHD 文件
i. FAT32格式分区中文件大小最大只能支持4G,所以选择NTFS格式
ii. 注意该VHD上安装的Windows中VBOX的驱动要卸载掉,否则实际启动时可能BSOD,报VBOX驱动的ERROR
4. iPXE Shell下执行:sanboot --filename \shell.efi iscsi:192.168.10.9::::iqn.1991-05.com.microsoft:target1
5. 如果一切正常,可启动到Uefi shell下, 切换到放置 ntfs_x64.efi 文件的分区
6. load ntfs_x64.efi, map –r –b 刷新查看新分区
7. 切换到 grub4dos uefi文件 所在目录,通过grub4dos uefi 启动RAMOS (详细设置自行搜索)
|
|