Virtual machine 从shell将VM(在vbox上运行)重新引导到特定(已编译)内核中

Virtual machine 从shell将VM(在vbox上运行)重新引导到特定(已编译)内核中,virtual-machine,virtualbox,ubuntu-14.04,grub,Virtual Machine,Virtualbox,Ubuntu 14.04,Grub,我正在用vbox运行ubuntu 14.04。在这台机器上,我编译并运行内核3.14,当ubuntu加载到vbox上时,我从grub菜单中选择它。 主机也在ubuntu 14.04上运行 我想问-有没有一种方法可以通过shell上的命令将来宾ubuntu加载到特定的内核中 我可以使用以下命令在vbox命令行上开始运行vm: VBoxManage startvm ubuservloc --type headless 但这并不完全是我所需要的。我不知道从主人到客人的食物之间有什么直接沟通的方式,但

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

我想问-有没有一种方法可以通过shell上的命令将来宾ubuntu加载到特定的内核中

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

VBoxManage startvm ubuservloc --type headless

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

我不知道从主人到客人的食物之间有什么直接沟通的方式,但有几种间接的方式可以做到:

  • 从主机挂载
    /boot
    文件系统,并将来宾的
    grub.cfg
    读取的文件放到那里
  • vboxmanagecontrolvm键盘putscancode
    键入分配给GRUB中正确内核的热键(启动VM后不久)
  • 将GRUB配置为侦听(虚拟)串行端口,并通过写入该文件来选择内核
  • 如果可以接受第二次重新引导(首先引导到默认内核,然后重新引导到所需内核),还有几种方法(您可以使用guest的
    grub set default
    命令选择所需内核并发出重新引导)。我在这里可以想到一些:

  • VBoxManage guestcontrol运行
    从来宾中的主机调用shell脚本(在加载来宾添加内容后)
  • VBoxManage guestproperty
    从主机设置属性,并
    VBoxControl guestproperty
    从初始化脚本读取属性并从中决定
  • 只需SSH到guest并从那里重新启动:D

  • 显然,如果您总是想启动该内核,为什么不将其设为默认值?如果您总是希望交替启动两个不同的内核,您还可以将下一次启动的默认值设置为grub.cfg中的另一个direclty。

    您指的是来自主机的命令,还是来自来宾的命令?