Ventoy 运行时参数如何传递给操作系统

  • Legacy BIOS 模式

在Legacy BIOS模式下,Ventoy把参数保存在最开始的1M物理内存内,具体物理地址范围是 0x80000~0xA0000

对于 Linux 系统, 我们可以利用 /dev/mem, dump出范围内的内存数据,然后以GUID去搜索从而找到参数的位置
对于 Windows 系统,我们可以利用 GetSystemFirmwareTable 接口获取数据然后再搜索具体位置。

  • UEFI 模式

在UEFI模式下, Ventoy把参数保存在一个EFI Variable中,其名称和GUID如下:
VentoyOsParam     { 0x77772020, 0x2e77, 0x6576, { 0x6e, 0x74, 0x6f, 0x79, 0x2e, 0x6e, 0x65, 0x74 }}

对于 Linux 系统, 我们可以从 /sys/firmware/efi/vars 或者 /sys/firmware/efi/efivars 中获取数据
对于 Windows 系统,我们可以使用 GetFirmwareEnvironmentVariable 接口。