Linux系統啟動時,報錯無法掛載根分區
更新時間 2024-11-14 11:42:19
最近更新時間: 2024-11-14 11:42:19
分享文章
現象
linux系統啟動時,報錯無法掛載根分區(Failed to mount /sysroot),如下圖:

原因
上圖中的日志中有XFS (sda2): Metadata corruption detected at xfs_agf_read_verify+...的字樣,可以看到是xfs文件系統損壞導致無法掛載根分區,導致出錯。
解決方法
按日志中的提示,卸載文件系統并執行xfs_repair即可。
由于根分區無法掛載,無法找到sulogin進入緊急模式的shell。添加內核參數rd.break(指示dracut中斷進入shell)進入shell,操作見下面:
進入grub啟動菜單,按“e”,編輯菜單。
找到linux16 /vmlinuz...一行,后面加內核參數rd.break。
按Ctrl鍵+x,開始啟動。進入shell后,執行下面命令。
# 使用xfs_repair修復xfs文件系統。對于其他文件系統,可以執行fsck.xxx命令,比如對于ext4文件系統可以使用fsck.ext4
xfs_repair /dev/sda2 # 由上面的報錯日志可知文件系統損壞的分區是sda2
# 嘗試手動掛載/dev/sda2,沒問題后重啟系統即可
mkdir -p /mnt && mount /dev/sda2
reboot