- 인쇄
- PDF
파일시스템 오류 복구 가이드
- 인쇄
- PDF
Linux 서버 파일 시스템 오류 복구 방법
Linux 서버의 파일시스템 오류가 의심되면, 서버 접속 콘솔을 통해 파일시스템 복구를 진행해 주십시오.
I/O 에러 발생 여부는 직접 서버에 접근하여 확인하거나, 접속이 되지 않는 경우에는 서버 콘솔 screenshot 메뉴를 통해 확인이 가능합니다.
VM에 파일 시스템 오류가 발생한 경우, 아래와 같은 증상들이 발생합니다.
Case 1) I/O 에러가 발생합니다.
Case 2) initramfs 프롬프트 복구 모드에 빠져있습니다.
Linux 파일시스템 복구 명령어
Linux 파일시스템의 복구를 위해서는 fsck
혹은 xfs_repair
명령어를 사용합니다.
- fsck는 ext4 파일시스템 검사 및 복구 도구입니다.
- xfs_repair는 XFS 파일시스템 검사 및 복구 도구입니다.
fsck
명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.
옵션 | 설명 |
---|---|
-y | 모든 질문에 대한 응답을 yes로 취급하여 파일시스템 복구를 자동으로 실행합니다. |
-n | 모든 질문에 대한 응답을 no로 취급하여 파일시스템에 대한 체크만 진행합니다. |
-a | 명령 수행에 대한 확인 질문을 하지 않고 자동으로 복구를 실행합니다. ※ 해당 옵션 수행을 권장하지 않습니다. |
-f | 파일 시스템의 이상 유무에 상관 없이 강제로 파일 시스템을 체크합니다. |
xfs_repair
명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.
옵션 | 설명 |
---|---|
-n | 실제 복구 작업을 수행하지 않고 파일시스템에 대한 체크만 진행합니다. |
-f | 마운트 되어있지 않은 파일시스템이나 파일에 대해 강제로 체크합니다. |
-L | f 옵션보다 강력한 옵션으로, 강제로 로그를 비우며 파일 시스템 복구를 수행합니다. ※ 데이터 손실이 발생할 수 있습니다. |
1) 파일시스템 오류 복구 준비
1-1) 파티션명과 파일시스템 타입 확인
부팅에 실패한다면 기본 스토리지의 파일시스템 오류를 의심해 볼 수 있습니다.
서버가 부팅은 되었으나 파일시스템 관련 오류가 발생하였다면 추가 스토리지의 파일시스템 오류를 의심해 볼 수 있습니다.
파일시스템 관련 오류는 /var/log/messages에 남게 되며, 콘솔의 I/O 에러 내용에서도 문제가 발생한 디스크를 확인할 수 있습니다.
- 파티션 확인 :
cat /proc/partitions
[root@servera ~]# cat /proc/partitions
major minor #blocks name
202 0 52428800 xvda
202 1 1024 xvda1
202 2 52425728 xvda2
- 파일시스템 타입 확인 :
blkid
[root@servera ~]# blkid
/dev/xvda1: UUID="f95bed0a-11af-4b2c-bfcc-4afb91a68fc1" TYPE="xfs"
/dev/xvda2: UUID="0692fdb8-bb3c-4094-83f0-fe95a339b8c1" TYPE="xfs"
1-2) 스냅샷 생성
복구 작업 전 Snapshot 생성가이드를 참고하여 스냅샷을 생성해 주십시오.
잘못된 복구 시도로 인해 서버가 망가질 경우를 대비하여 스냅샷을 생성한 후 복구를 진행하는 것을 권고드립니다.
2) 기본 스토리지에 파일시스템 오류가 발생한 경우
기본 스토리지에 오류가 발생하면 root file system check와 mount에 실패하며 initramfs로 빠지게 됩니다.
initramfs 쉘에서 기본 스토리지에 대해 파일 시스템 체크를 수행해 주십시오.
아래는 문제가 발생한 디바이스가 /dev/xvda1인 경우에 대한 예시입니다.
파일시스템 | 명령어 |
---|---|
ext4 | fsck.ext4 /dev/xvda1 |
xfs | xfs_repair /dev/xvda1 ⚠️ 옵션 미사용으로 복구 불가시에는 -L 옵션을 추가하여 수행해주세요. -L 옵션 사용시 데이터 손실이 있을 수 있습니다. xfs_repair -L /dev/xvda1 |
- 파일시스템 체크를 한 번 더 진행한 후 clean이 출력되면 서버를 리부팅 하십시오.
3) 추가 스토리지에 파일시스템 오류가 발생한 경우
- 추가스토리지에 파일 시스템 오류가 발생한 경우, 오류가 발생한 디바이스의 마운트를 해제해 주십시오.
umount /dir (/dir : 추가스토리지 영역 마운트 디렉토리)
언마운트가 정상적으로 진행되지 않는 경우 언마운트 강제 명령어 또는 fuser 명령어를 통해서 특정 파일이나 파일 시스템, 포트 등에서 사용 중인 프로세스를 확인 및 종료해야 합니다.
- 언마운트 강제 명령어
umount -l /mnt/a
umount -f /mnt/a
- fuser 명령어 사용 순서
fuser -cu /mnt/a
로 디렉터리를 사용하는 사용자 또는 프로세스 확인fuser -ck /mnt/a
로 프로세스 강제 종료umount /mnt/a
로 언마운트 수행
- 오류가 발생한 디바이스에 파일시스템 체크를 수행해 주십시오.
아래는 문제가 발생한 디바이스가 /dev/xvdb1인 경우에 대한 예시입니다.
파일시스템 | 명령어 |
---|---|
ext4 | fsck.ext4 /dev/xvdb1 |
xfs | xfs_repair /dev/xvdb1 ⚠️ 옵션 미사용으로 복구 불가시에는 -L 옵션을 추가하여 수행해주세요. -L 옵션 사용시 데이터 손실이 있을 수 있습니다. xfs_repair -L /dev/xvdb1 |
- 추가스토리지에 대해 파일시스템 체크를 진행한 경우, 추가스토리지를 다시 마운트해 주십시오.
- /etc/fstab 에 추가스토리지 영역에 대한 마운트 설정이 되어있는 경우
mount -a
- 직접 mount 수행
mount /dir (/dir : 추가스토리지 영역 마운트 디렉토리)
- 파일시스템 체크를 한 번 더 진행한 후 clean이 출력되면 서버를 리부팅해 주십시오.
4) 서버 재시작
fsck
또는 xfs_repair
를 시도한 이후에도 파일 시스템이 복구되지 않았다면 OS 강제 리부팅이 필요합니다.
- 사용자 콘솔에서 리부팅을 진행해 주십시오.
재시작 → 재시작실패 → 강제정지 → 시작
위 절차들을 수행한 이후에도 서버 정상화가 되지 않는 경우에는 스냅샷을 통한 데이터 복구가 필요합니다.
Snapshot 을 이용한 Block storage 생성을 참고해 주십시오.
Windows 서버 파일 시스템 오류 복구 방법
Windows 파일시스템 복구 명령어
Windows 파일시스템의 복구를 위해서는 chkdsk
명령어를 사용합니다.
chkdsk 는 파일 시스템 점검 및 복구를 지원하는 Windows Tool입니다.
옵션 없이 실행할 경우, 기본 스토리지를 점검만 수행합니다.
chkdsk 수행 중에 중간에 취소하거나 중단할 경우, 그 전 상태보다 더 손상되지는 않지만 권장하지 않습니다.
chkdsk가 완전히 실행 완료될 때까지 기다리는 것이 안전합니다.
chkdsk
명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.
옵션 | 설명 |
---|---|
/f | 발견한 에러들을 복구합니다. 해당 옵션을 적용할 경우, 드라이브는 lock 상태여야 합니다. lock 상태가 아닐 경우, 다음 리부팅 시 드라이브 체크 예약 여부에 대한 메세지가 나타납니다. |
/r | bad sector 들을 찾아 읽을 수 있는 정보를 복구합니다. 해당 옵션을 적용할 경우, 드라이브는 lock 상태여야 합니다. |
/x | 필요한 경우 드라이브를 강제로 dismount 합니다. 또한, 드라이브에 열려있는 모든 핸들을 무효화 합니다. |
자세한 내용은 Microsoft 아티클을 참고해 주십시오.
1) OS hang 이 발생한 경우
- 사용자 콘솔에서 리부팅을 진행해 주십시오.
재시작 → 재시작실패 → 강제정지 → 시작
리부팅 후에도 서버 정상화가 되지 않는 경우에는 스냅샷을 통한 데이터 복구가 필요합니다.
Snapshot 을 이용한 Block storage 생성을 참고해 주십시오.
2) 기본 스토리지에 파일시스템 오류가 발생한 경우
- 다음 명령어를 입력해 chkdsk 를 실행해 주십시오.
chkdsk C: /f /r /x
- 기본 스토리지의 경우, 현재 사용 중으로 다음 리부팅 시 드라이브 체크 예약 여부에 대한 메세지가 나타납니다. Y 를 입력해 주십시오.
- 리부팅을 진행해 주십시오.
3) 추가 스토리지에 파일시스템 오류가 발생한 경우
run - diskmgmt.msc
명령어를 입력해 복구하고자 하는 추가 스토리지의 드라이브명을 확인해 주십시오.- 다음 명령어를 입력해 chkdsk 를 실행해 주십시오.
chkdsk <드라이브명> /f /r /x