Emergency Mode 를 사용하여 /etc/fstab 오류 복구
이 단계에서는 /etc/fstab 파일의 오류를 진단하고 복구하는 방법을 배우게 됩니다. 이 파일은 시스템에 어떤 파일 시스템을 어디에 마운트할지 알려주므로 부팅 프로세스에 매우 중요합니다. /etc/fstab에 잘못된 항목이 있으면 시스템이 부팅되지 않아 응급 모드로 강제 진입될 수 있습니다.
응급 모드는 시스템 복구를 위해 가능한 가장 최소한의 환경을 제공합니다. rescue 모드와 달리 대부분의 파일 시스템을 마운트하거나 많은 서비스를 시작하려고 시도하지 않습니다. 특히, 루트 파일 시스템 (/) 은 추가 손상을 방지하기 위해 읽기 전용 (ro) 모드로 마운트됩니다.
이 랩에서는 실제 부팅 실패를 트리거할 수 없지만, /etc/fstab 오류를 찾아 수정하는 프로세스를 시뮬레이션할 수 있습니다.
먼저, 의도적으로 /etc/fstab에 결함이 있는 항목을 추가해 보겠습니다. sudo와 함께 echo 명령을 사용하여 존재하지 않는 장치를 참조하는 줄을 추가합니다.
echo '/dev/nonexistent /data xfs defaults 0 0' | sudo tee -a /etc/fstab
이제 /etc/fstab의 내용을 보고 잘못된 줄이 추가되었는지 확인해 보겠습니다.
cat /etc/fstab
파일 끝에 잘못된 줄이 표시되어야 합니다.
#
## /etc/fstab
## Created by anaconda on <date>
#
## Accessible filesystems, by reference, are maintained under '/dev/disk/'.
## See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
## After editing this file, run 'systemctl daemon-reload' to update systemd
## units generated from this file.
#
/dev/vda4 / xfs defaults 0 0
/dev/vda2 /boot xfs defaults 0 0
/dev/vda1 /boot/efi vfat umask=0077,shortname=winnt 0 0
/dev/vda3 swap swap defaults 0 0
/dev/nonexistent /data xfs defaults 0 0
다음으로, 진단 단계를 시뮬레이션합니다. mount -a 명령은 이미 마운트되지 않은 /etc/fstab에 나열된 모든 파일 시스템을 마운트하려고 시도합니다. 항목이 유효하지 않으므로 이 명령은 실패합니다.
sudo mount -a
이 명령은 오류를 생성하여 마운트 지점 /data가 존재하지 않음을 명확하게 나타냅니다. 이는 부팅 실패 시 표시되는 오류와 유사합니다.
mount: /data: mount point does not exist.
이제 복구 프로세스를 시뮬레이션해 보겠습니다. 실제 응급 셸에서 첫 번째 단계는 변경을 허용하기 위해 루트 파일 시스템을 읽기 - 쓰기 모드로 다시 마운트하는 것입니다.
sudo mount -o remount,rw /
이제 파일 시스템을 쓸 수 있으므로 /etc/fstab을 편집하여 오류를 수정할 수 있습니다. nano 편집기를 사용하여 파일을 엽니다.
sudo nano /etc/fstab
nano 편집기 내에서 화살표 키를 사용하여 잘못된 줄 (/dev/nonexistent /data xfs defaults 0 0) 로 이동하여 삭제합니다. Ctrl+k를 눌러 전체 줄을 삭제할 수 있습니다. 줄을 제거한 후 Ctrl+x, y, 마지막으로 Enter를 눌러 파일을 저장합니다.
수정을 확인하려면 sudo mount -a를 다시 실행합니다.
sudo mount -a
이번에는 명령이 출력이 없이 조용히 실행되어야 합니다. 이는 /etc/fstab의 모든 유효한 항목이 올바르게 마운트되었음을 나타냅니다. 파일을 성공적으로 복구했습니다.