Failed to mount /sysroot
— 이강우 2023/05/28 13:23
간혹 어떠한 오류로 인해서 VM 부팅시에 아래와 같은 화면이 나오면서 VM이 부팅되지 않는 경우가 있다.
Entering emergency mode. Exit the shell to continue. Type "journalctl" to view system logs. You might wat to save "/run/initramfs/rdsosreport.txt" to a USB stick or /boot after mounting them and attach it to a bug report.
안내하는 대로 journalctl
을 입력해서 로그 내용을 쭉 확인해보면 맨 마지막부분에 아래와 같은 내용이 나온다.
mount: wrong fs type, bad option, bad superblock on /dev/mapper/centos-root missing codepage or helper program, or other error In some cases useful info is found in syslog - trye dmesg | tail or so XFS (dm-0): Corruption warning: Metadata has LSN (5:3383) ahead of current LSN XFS (dm-0): log mount/recovery failed: error -22 XFS (dm-0): log mount failed sysroot.mount mount process exited, code=exited status=32 Failed to mount /sysroot. Dependency failed for Initrd Root File System. Dependency failed for Reload Configuration from the Real Root. Job initrd-parse-etc.service/start failed with result 'dependency'. Triggering OnFailure= dependencies of initrd-parse-etc.service. Job initrd-root-fs.target/start failed with result 'dependency'. Triggering OnFailure= dependencies of initrd-root-fs.target. Unit sysroot.mount entered failed state.
XFS (dm-0): log mount/recovery failed: error -22
XFS (dm-0): log mount failed
로그 내용은 위의 부분에서 확인 할수 있듯이 파일 시스템을 마운트 하려고 했는데 XFS파일시스템의 메타데이터가 손상되어 로그 마운트 할수 없다는 내용이다.
dm-0
장치에서 해당 오류가 발생했으므로 자동으로 복구를 시도했으나 실패했다는 로그도 함께 출력이 된다.
수동으로 복구 하기 위해 먼저 아래 명령어를 입력한다.
xfs_repair -v /dev/dm-0
하지만 보통 아래처럼 복구가 제대로 되지 않는다.
:/# xfs_repair -v /dev/dm-0 Phase 1 - find and verify superblock... - block cache size set to 82024 entries Phase 2 - using internal log - zero log... zero_log: head block 3269 tail block 3252 ERROR: The filesystem has valuable metadata changes in a log which needs to be replayed. Mount the filesystem to replay the log, and unmount it before re-running xfs_repair. If you are unable to mount the filesystem, then use the -L option to destroy the log and attempt a repair. Note that destroying the log may cause corruption -- please attempt a mount of the filesystem before doing this. :/#
결론은 파일시스템의 로그가 손상되어서 복구가 안된다는건데 일단 마운트를 해서 복구를 시도하라는 얘기이다. 즉 다른 시스템에 해당 디스크를 붙여서 복구를 시도해보라는 얘기이다.
그러나 마운트조차도 안된다면 -L
옵션을 주어서 로그를 초기화 할 수 있다는 얘기인데 문제는 로그를 초기화 할 시에는 데이터손상이 발생할수도 있다
는 경고를 보여준다.
OS영역(dm-0디스크 장치
)은 그렇게 중요한데이터가 없고 부팅만 되면 상관 없는 경우는 바로 아래처럼 -L
옵션을 줘서 복구를 시도하면 되고 해당 디스크에 아주 중요한 데이터가 있는경우에는 다른 머신에 디스크를 붙여서 마운트를 시도하여 복구를 하면 된다.
xfs_repair -v -L /dev/dm-0
복구가 완료되었다.
exit
를 입력하여 emergency mode
를 종료하면 정상 부팅되는것을 확인할 수 있다.
참조링크
- failed_to_mount_sysroot.txt
- 마지막으로 수정됨: 2023/05/28 04:23
- 저자 koov