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
接口。