无法让 grub 在虚拟机中加载正确的映像

无法让 grub 在虚拟机中加载正确的映像

我有一个使用以下内容创建的 Ubuntu 映像:

qemu-img create -f qcow2 -b focal-server-cloudimg-amd64-disk-kvm.img test.qcow2 20G

它启动了,cloud-init 也正常工作了。我现在安装了一个新内核

apt install linux-generic

这似乎引入了我想要使用的 initrd 和内核:

$ ls /boot
System.map-5.4.0-1062-kvm     grub                          vmlinuz
System.map-5.4.0-109-generic  initrd.img                    vmlinuz-5.4.0-1062-kvm
config-5.4.0-1062-kvm         initrd.img-5.4.0-1062-kvm     vmlinuz-5.4.0-109-generic
config-5.4.0-109-generic      initrd.img-5.4.0-109-generic  vmlinuz.old
efi                           initrd.img.o

问题是我无法让 grub 加载通用内核。根据文档,我只需编辑 /etc/default/grub:

GRUB_DEFAULT=3
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

然后执行update-grub并重新启动。我尝试了 GRUB_DEFAULT 的所有可能值,但总是被忽略。原始 KVM 内核始终启动。似乎某个地方的某个参数存在冲突。我做对了吗?还是错过了一步?

更新:我仍然想解决这个问题,但我发现有一个使用 cloud-init 和通用内核的 Ubuntu 版本。所以我现在正在使用它。因此,如果您需要这个,请使用:

focal-server-cloudimg-amd64.img 

代替

focal-server-cloudimg-amd64-kvm.img  

相关内容