Ubuntu 22.04 内核报错 VFS: Cannot open root device "mapper/ubuntu--ug-ubuntu--lu" or unknown-block(0,0): error -6
升级内核后重启报错
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 分区。
使用 lvdisplay
或 lsblk
确认 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 生效了,成功解决了该问题。参考 这里
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 天澄拾光!
评论
ArtalkGitalk