使用C语言更改GRUB的变量

我想知道我是否有办法编写一个C程序来改变GRUB变量的值。

我需要编写一个可以在另一个操作系统上重启计算机的程序,例如:

  • 我在Suse disk1上

程序更改GRUB的变量并自动重启。

  • 我在Suse disk2上

我想访问变量,如:title,root,kernel,initrd。 但是没有编辑/boot/grub/menu.lst或grub.conf文件。

是否有GRUB的API?

为什么重新发明轮子? 看看grub-set-default 。 这个小工具在命令行的grub.cfg中设置了默认条目。 这只是一个小脚本,但它应该足以满足您的需求。