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~,第二台也算是勉強修複了~