Windows操作EFI环境变量的方法为GetFirmwareEnvironmentVariable,SetFirmwareEnvironmentVariable
详见http://blog.youkuaiyun.com/youyudexiaowangzi/article/details/48245309
但是EFI的LInux系统怎么在Linux层操作EFI的环境变量呢,终于找到接口了,linux系统如果是efi版本会有efibootmgr命令,
至于具体实现可以参照efibootmgr的源码efibootmgr源码
添加启动项
#efibootmgr -c -w -L "BootOptionName" -d /dev/sda -p 1 -l
\\EFI\\TestOSS.efi
其中-d 参数后面是系统所在的硬盘设备名称,例如/dev/hda、/dev/hdb
-p 参数是vfat 分区的分区编号/dev/hda1 用-p 1
/dev/sda2 用-p 2
-l 参数后面是该引导项指向的efi 启动文件在该分区上的位置。请注意使用“\\”来表示目录的分级。
例如:/EFI/TestOSS.efi
应写成:\\EFI\\TestOSS.efi
删除启动项
#efibootmgr -b 0001 -B