在 Dom0 中使用 pvgrub 时在 Xen DomU 中启动旧内核

在 Dom0 中使用 pvgrub 时在 Xen DomU 中启动旧内核

我在 Debian Jessie DomU 中遇到最新内核更新问题,并且想使用以前的内核启动它。

Dom0 也运行 Debian Jessie,并通过 PvGrub 启动 DomU。我使用的是PvGrub 的 Debian wiki,其中 DomU 的 grub.cfg 是在 Dom0 的骨架目录中生成的。

此设置可以完美地使用 DomU 上最新安装的内核进行启动,但似乎没有提供选择较旧安装的内核进行启动的方法,而且我还没有找到有关此主题的任何文档。

那么,在这种设置下,使用 DomU 上较旧安装的内核进行启动的推荐方法是什么?

Dom0 上的 DomU 内核配置:

kernel          = '/usr/lib/grub-xen/grub-x86_64-xen.bin'
extra           = '(hd1)/boot/grub/grub.cfg'
root            = ''

DomU 上的 grub.cfg:

root='(xen/xvda2)'
insmod xzio
insmod gzio
insmod btrfs
insmod ext4
linux /vmlinuz root=/dev/xvda2 ro
initrd /initrd.img
boot

答案1

通常 grub.cfg 是在系统安装期间生成的,不需要手动创建。至少在我的 debian buster VM 上,它开箱即用。

Grub 使用一种称为 menuentry 的结构将条目分组到多个启动配置中。通过这种方式,您可以拥有具有不同内核的多个条目。例如,我的 debian buster vm 使用以下内核配置:

linux /boot/vmlinuz-4.19.0-6-amd64
initrd /boot/initrd.img-4.19.0-6-amd64

版本号必须与您安装的内核匹配。如果您已卸载以前的内核,请尝试使用包管理器安装它。

答案2

不确定是否有较新的版本,但从xen-create-imageDebian Jessie Dom0 运行不会在 DomU 上安装常见的 grub 包,而且据我所知,/boot/grub/grub.cfg问题中列出的框架不提供在启动时选择不同内核的任何能力。

我最终通过在 DomU 上执行以下操作解决了这个问题:

  1. mv /boot/grub /boot/grub.orig
  2. apt-get install grub-pc
  3. 将 grub-install 设置为在启动驱动器上自动运行

然后我关闭了 DomU,用连接的控制台从 Dom0 启动它,并选择了我想要的内核。

相关内容