无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 773|回复: 27
打印 上一主题 下一主题

[原创] VHD不同用法,Legacy BIOS + memdisk + 微型VHD引导跳板(三引导器集成版)

[复制链接]
跳转到指定楼层
1#
发表于 昨天 14:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 seekyou2008 于 2025-8-27 15:30 编辑

Legacy BIOS + memdisk + 微型VHD引导跳板(三引导器集成版)

方案目标
  • Legacy BIOS 下,通过外层引导器加载一个微型 VHD
  • VHD 内集成 GRUB2(i386‑pc)rEFInd(BIOS 模式)Clover(BIOS 版)
  • 内层菜单中一次性列出三引导器和直链目标系统的入口,实现最大兼容和集中管理

一、准备工作
  • 一台可运行 Linux 或 Windows 的环境(制作镜像)
  • memdisk 程序(来自 syslinux 包)
  • GRUB2、rEFInd、Clover 最新版本
  • 目标系统的 EFI 文件(用于测试)
  • 至少 128 MB 可用存储空间(VHD 固定大小)

二、创建微型 VHD Windows 下
diskpart
create vdisk file=D:\uniboot.vhd maximum=128 type=fixed
select vdisk file=D:\uniboot.vhd
attach vdisk
create partition primary
format fs=fat32 quick label=UNIBOOT
assign letter=B
exit



三、安装 GRUB2 (i386-pc) 到 VHD
Windows下:
grub-install.exe --target=i386-pc \\.\PHYSICALDRIVE1 --boot-directory=B:
PHYSICALDRIVE1 改成目标磁盘编号(用 wmic diskdrive list brief 查看)。
这会在该盘的 MBR 写入 GRUB2 stage1,并在 /boot/grub 放置核心文件。


四、加入 rEFInd 和 Clover
  • 将 rEFInd 的 refind 目录复制到 B:\EFI\BOOT\,并配置 refind.conf
  • 将 Clover BIOS 版的 CLOVER 目录复制到 B:\EFI\CLOVER\
  • 确保:\EFI\BOOT\BOOTX64.EFI → rEFInd   \EFI\CLOVER\CLOVERX64.efi → Clover

五、编辑 GRUB2 菜单 (VHD 内)
编辑 /boot/grub/grub.cfg:
set timeout=5

menuentry "Boot rEFInd" {
    search --file --set=root /EFI/BOOT/BOOTX64.EFI
    chainloader /EFI/BOOT/BOOTX64.EFI
}

menuentry "Boot Clover" {
    search --file --set=root /EFI/CLOVER/CLOVERX64.efi
    chainloader /EFI/CLOVER/CLOVERX64.efi
}

menuentry "Boot Windows EFI" {
    search --file --set=root /EFI/Microsoft/Boot/bootmgfw.efi
    chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}


六、外层 GRUB2 调用 memdisk + VHD
在外层 GRUB2(例如 U 盘)的 grub.cfg 中:
menuentry "Universal BIOS→UEFI Boot" {
    linux16 /boot/memdisk raw
    initrd16 /boot/uniboot.vhd
}


七、启动流程
BIOS
→ 外层 GRUB2
   → memdisk (raw)
     → VHD (内层 GRUB2)
       → rEFInd / Clover / 直接EFI
         → GPT/UEFI 系统


八、维护与扩展
  • 要更新引导器 → 挂载 VHD,替换 /boot/grub、/EFI/BOOT、/EFI/CLOVER
  • 要增加系统入口 → 编辑 VHD 内 grub.cfg 或 rEFInd/Clover 配置
  • 可制作多个不同配置的 VHD 文件,通过外层菜单切换

这样做的好处
  • 彻底避免多盘多 ESP 冲突
  • 外层稳定,内层灵活可替换
  • 同一菜单中三引导器共存,遇到硬件或系统挑剔随时切换

方案的最大长处
  • 双层链路:外层极简、稳定,内层灵活、可全替换
  • 完全集中化:所有引导逻辑都在 VHD 内,物理盘上可以完全无 EFI 分区,消除了多ESP互抢问题
  • 三合一引导器共存:GRUB2 / rEFInd / Clover
  • 通吃 BIOS + UEFI:不管机器是老 BIOS 还是新 UEFI,一套 VHD 都能进




另外,我们还可以基于上面的思路扩展延伸其它玩法1:
Legacy BIOS + memdisk + 微型VHD引导跳板 来制作一个几十 MB 的 VHD “万能 BIOS 启动入口”,不仅加载速度快,还能链到任意 Windows 系统。

制作步骤1. 准备小 VHD
diskpart
create vdisk file=D:\bootjump.vhd maximum=64 type=fixed
select vdisk file=D:\bootjump.vhd
attach vdisk
create partition primary
format fs=ntfs quick label=BOOTJUMP
assign letter=B
exit
这里最大 64 MB,类型 fixed(固定大小)。FAT32 也可以,NTFS 在 Bootmgr 下通用性好。

2. 写入引导代码

bootsect /nt60 B: /mbr

  • /nt60:写入 Bootmgr/Windows 6.x 引导代码
  • /mbr:同步写入 MBR(便于 memdisk raw 模式识别)

3. 生成 Bootmgr 和 BCD假设你的真实 Windows 系统在 C:,运行:

bcdboot C:\Windows /s B: /f BIOS

  • /f BIOS 强制生成 Legacy 引导结构
  • 会在 B: 上写入 \bootmgr 和 \Boot\BCD
  • 此时 BCD 会有一个指向 C: 系统的启动项

4. 检查/修改 BCD(可选)如果要链到其他盘/分区,可用:

bcdedit /store B:\Boot\BCD /set {default} device partition=C:
bcdedit /store B:\Boot\BCD /set {default} osdevice partition=C:


5. GRUB2 菜单配置(Legacy BIOS)在 Linux 的 /boot/grub/grub.cfg 添加:

menuentry "Windows via VHD (memdisk)" {
    linux16 /memdisk raw
    initrd16 /boot/bootjump.vhd
}

  • /memdisk 和 VHD 文件路径要按你的实际存放位置调整
  • raw 模式表示不解析分区表,直接交给 VHD 内 MBR

启动流程
  • BIOS 启动 GRUB2
  • GRUB2 → memdisk → 将 VHD 整个读入内存并映射成一块假硬盘
  • BIOS INT 13h 服务进入 VHD MBR
  • MBR → PBR → Bootmgr
  • Bootmgr 读取 VHD 内的 BCD,按配置链到真实系统
  • 真实系统正常启动

优势
  • 体积小,几十 MB,加载快
  • 内存占用低,适合老机器
  • BCD 可随时改,指向不同目标系统
  • 不需修改真实系统的引导扇区







思路扩展玩法2:PXE+iPXE 脚本+memdisk+微型 VHD 

QEMU 直接测试命令(内置 TFTP 模式)
假设你在 D:\PXE-TFTP 放了:
boot.ipxe      # iPXE 脚本
memdisk        # syslinux 的 memdisk 程序
uniboot.vhd    # 你的微型 VHD 跳板

boot.ipxe 内容示例(HTTP 改成 TFTP 可避免防火墙干扰):
#!ipxe
kernel tftp:\/\/10.0.2.2\/memdisk raw
initrd tftp:\/\/10.0.2.2\/uniboot.vhd
boot

10.0.2.2 是 QEMU NAT 网络下宿主机的固定地址

QEMU 启动命令(调试模式):

cd "D:\Program Files\qemu"
qemu-system-x86_64.exe ^
  -m 1024 ^
  -net nic,model=e1000 ^
  -net user,tftp="D:\PXE-TFTP",bootfile=boot.ipxe ^
  -boot n


QEMU 启动命令(无控制台窗口):

cd "D:\Program Files\qemu"
qemu-system-x86_64w.exe ^
  -m 1024 ^
  -net nic,model=e1000 ^
  -net user,tftp="D:\PXE-TFTP",bootfile=boot.ipxe ^
  -boot n


运行后链路
  • QEMU PXE ROM → DHCP(内置 NAT 提供)
  • 下载 boot.ipxe
  • 脚本执行:下载 memdisk + uniboot.vhd
  • memdisk 映射 VHD → 内层 GRUB2/rEFInd/Clover 菜单
  • 选择目标系统启动




评分

参与人数 1无忧币 +5 收起 理由
whyme22 + 5

查看全部评分

2#
发表于 昨天 15:06 | 只看该作者
成品呢

点评

按上面操作下来就是成品,成品挂不上来。  详情 回复 发表于 昨天 15:16
回复

使用道具 举报

3#
发表于 昨天 15:13 | 只看该作者
本帖最后由 gtzyxfx 于 2025-8-26 15:16 编辑

没有Linux ,期待楼主成品,谢啦!

点评

改成WINDOWS下操作了。  详情 回复 发表于 昨天 17:29
回复

使用道具 举报

4#
 楼主| 发表于 昨天 15:16 | 只看该作者

按上面操作下来就是成品,成品挂不上来。
回复

使用道具 举报

5#
发表于 昨天 15:37 | 只看该作者
谢谢分享
回复

使用道具 举报

6#
发表于 昨天 15:39 | 只看该作者
谢谢分享!
回复

使用道具 举报

7#
发表于 昨天 15:42 | 只看该作者
多谢分享!!!
回复

使用道具 举报

8#
发表于 昨天 15:52 | 只看该作者

多谢分享!!!
回复

使用道具 举报

9#
发表于 昨天 16:19 | 只看该作者
什么,先引导VHD,再引导其他?这本身就够麻烦了
回复

使用道具 举报

10#
发表于 昨天 16:24 | 只看该作者
感谢分享好东东
回复

使用道具 举报

11#
发表于 昨天 16:27 | 只看该作者
支持原创
回复

使用道具 举报

12#
发表于 昨天 16:33 | 只看该作者
感谢分享,楼主辛苦了!
回复

使用道具 举报

13#
发表于 昨天 16:54 | 只看该作者
感谢分享!
回复

使用道具 举报

14#
发表于 昨天 17:25 | 只看该作者
好办法。。。
回复

使用道具 举报

15#
 楼主| 发表于 昨天 17:29 | 只看该作者
gtzyxfx 发表于 2025-8-26 15:13
没有Linux ,期待楼主成品,谢啦!

改成WINDOWS下操作了。
回复

使用道具 举报

16#
发表于 昨天 17:35 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

17#
发表于 昨天 21:39 | 只看该作者
我现在就是这样做的,而且,传统BIOS系统也可以启动UEFI分区硬盘。

点评

是的,还可以安装黑苹果。  详情 回复 发表于 昨天 22:43
回复

使用道具 举报

18#
发表于 昨天 21:50 | 只看该作者
感谢分享
回复

使用道具 举报

19#
发表于 昨天 22:12 | 只看该作者
谢谢大佬的分享
回复

使用道具 举报

20#
发表于 昨天 22:16 | 只看该作者
感谢楼主分享,辛苦了
回复

使用道具 举报

21#
 楼主| 发表于 昨天 22:43 | 只看该作者
1801403 发表于 2025-8-26 21:39
我现在就是这样做的,而且,传统BIOS系统也可以启动UEFI分区硬盘。

是的,还可以安装黑苹果。
回复

使用道具 举报

22#
发表于 10 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

23#
发表于 8 小时前 | 只看该作者
谢谢分享
回复

使用道具 举报

24#
发表于 6 小时前 | 只看该作者
厉害!
回复

使用道具 举报

25#
发表于 6 小时前 | 只看该作者
下来看看
回复

使用道具 举报

26#
发表于 6 小时前 | 只看该作者
牛逼软件
回复

使用道具 举报

27#
发表于 2 小时前 | 只看该作者
感觉好曲折。。。
回复

使用道具 举报

28#
发表于 半小时前 | 只看该作者
思路别致,谢谢哦,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-27 20:18

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表