Who:Ssir
What:UTM2台虚拟机启动失败,无法挂载ext4根文件系统
When:恰了酒的某晚
Where:MacOS12.2.1 M1架构
Why:原因不详
How:如下
第1台状况
卡在EXT4-fs (vda2): mounted filesystem with ordered data mode。
[ 3.648278] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[ 3.677691] EXT4-fs (vda2): mounted filesystem with ordered data mode. Opts: (null)
第1台解决办法
参考链接:https://blog.csdn.net/TSZ0000/article/details/84664563
1 增加grub2参数"break",Ctrl+x,进入initramfs shell,如下图
2 执行如下命令,然后一直会车,修复磁盘,如下图
(initramfs) fsck.ext4 /dev/mapper/ubuntu--vg-ubuntu--lv
第2台状况
循环执行/init: line 805: /lib/udev/cdrom_id: not found。
[ 3.648278] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null)
[ 3.677691] EXT4-fs (vda2): mounted filesystem with ordered data mode. Opts: (null)
Begin: Running /scripts/casper-premount ... done.
/scripts/casper-premount/20iso_scan: .: line 19: can't open '/scripts/lupin-helpers': No such file or directory
/scripts/casper-premount/30custom_installation: .: line 20: can't open '/scripts/lupin-helpers': No such file or directory
done.
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
/init: line 805: /lib/udev/cdrom_id: not found
第2台解决办法
参考链接:http://www.idccoupon.com/10871.html
1 无法直接进入rescue.target救援模式和emergency.target紧急模式。和用启动U盘救援类似,将iso文件挂载到UTM虚拟机并设置为第一启动项。如下图
2 接着编辑"Install Ubuntu Server"选项,增加参数"systemd.unit=rescue.target",进入救援模式。如下图
3 执行如下命令,挂载被救援系统的/boot分区、/boot/efi分区、/分区,如下图
mkdir vda3 vda2 vda1
mount /dev/vda2 vda2
mount /dev/vda1 vda1
4 根据报错可以看出似乎是initrd文件的出了问题,解开initrd.img-5.4.0-135-generic查看一下子,如下图
# file initrd.img-5.4.0-135-generic
# lz4cat initrd.img-5.4.0-135-generic|cpio -ivd -D tmp
//查看发现像是安装时用的initrd,删掉casper相关目录并注释掉init脚本中的/scripts/lupin-helpers,执行如下命令然后重新制作
# find tmp/.|cpio -c -o > initrd
# lz4 --best initrd initrd.img-5.4.0-135-generic
//重新启动系统出现内核恐慌,这样行不通
5 没办法的办法:进入iso的救援模式,设置ip(iso的救援模式也可以设置ip,我试了下,惊了),从第一台修好的机器复制initrd.img-5.4.0-135-generic通过网络传过来(庆幸第一台修好了~),如下图
重启成功进入系统!hahaha~,第二台也算是勉强修复了~