从VM重启VM(在vbox上运行)到特定(已编译)的内核

时间:2016-01-10 22:33:49

标签: virtual-machine virtualbox ubuntu-14.04 grub

我正在使用vbox运行 ubuntu 14.04 。在这台机器上,我编译并运行了内核3.14,当我在vbox上加载ubuntu时,我从grub菜单中选择了内核。 主机也在ubuntu 14.04上运行。

我想问一下 - 有没有办法用shell上的命令将guest ubuntu加载到特定的内核中?

我可以使用以下命令开始在vbox trough命令行上运行vm:

VBoxManage startvm ubuservloc --type headless

但它并不完全是我所需要的。

1 个答案:

答案 0 :(得分:0)

我不知道有什么方法可以直接从主机到客户的GRUB进行通信,但是有几种间接方式可以去:

  1. 从主机安装/boot文件系统并将文件放在客户的grub.cfg读取的文件中。
  2. VBoxManage controlvm keyboardputscancode键入一个热键,该热键分配给GRUB中的正确内核(启动VM后不久)
  3. 配置GRUB以侦听(虚拟)串行端口并通过写入该文件选择内核
  4. 如果第二次重新启动是可接受的(首先启动到默认内核然后重新启动到所需的内核),还有几种方法(您可以使用来自guest虚拟机的grub-set-default命令来选择所需的内核并重新启动)。我可以在这里想到一些:

    1. VBoxManage guestcontrol run从guest虚拟机中的主机调用shell脚本(加载guest虚拟机添加后)
    2. VBoxManage guestproperty从主机设置属性,VBoxControl guestproperty从init脚本中读取它并从那里决定
    3. 只需SSH进入访客并从那里重新启动:D
    4. 显然,如果你总是想要启动那个内核,为什么不把它作为默认值呢?如果您想要交替启动两个不同的内核,您还可以将下次启动的默认值设置为grub.cfg中的另一个direclty。