升级内核后重启报错

VFS: Cannot open root device “mapper/ubuntu–ug-ubuntu–lu” or unknown-block(0,0): error -6
Please append a correct “root=” boot option; here are the available partitions:
Kernel panic - not syncing: UFS: Unable to mount root fs on unknown-block(0,0)

解决步骤

首先启动另一个 ubuntu2204lts 系统,相当于使用 LiveCD 启动,先挂载 ubuntus 的盘备份实验记录。

Step 1: 确认 LVM 分区。

使用 lvdisplaylsblk 确认 LVM 逻辑卷的位置和名称。

1
sudo lvdisplay

找到类似 /dev/<volume_group>/<logical_volume> 的逻辑卷路径。例如:/dev/ubuntu-vg/ubuntu-lv

Step 2: 挂载 LVM 分区。

1
2
3
4
5
6
7
8
sudo mount /dev/ubuntu-vg/ubuntu-lv /mnt
# 挂载boot分区
sudo mount /dev/nvme0n1p2 /mnt/boot
# 挂载其他分区
sudo mount --bind /dev /mnt/dev
sudo mount --bind /dev/pts /mnt/dev/pts
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys

Step 3: 进入 chroot 环境。

1
sudo chroot /mnt

Step 4: 使用压缩编译内核。

编辑 /etc/initramfs-tools/initramfs.conf

1
2
MODULES=dep
COMPRESS=xz

Step 5: 调整 grub 启动时分配更大的内存。

编辑 /etc/default/grub ,添加 vmalloc 参数

1
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash vmalloc=1024M"

Step 6: 更新 update-initramfs

1
2
3
4
5
6
7
# 指定内核编译
update-initramfs -u -k 5.15.0-112-generic 
# 或者编译全部
update-initramfs -u -k all

# 更新grub
update-grub

总结

上述步骤中,主要 4 和 5 生效了,成功解决了该问题。参考 这里