파일시스템 오류 복구 가이드
    • PDF

    파일시스템 오류 복구 가이드

    • PDF

    기사 요약

    Linux 서버 파일 시스템 오류 복구 방법

    Linux 서버의 파일시스템 오류가 의심되면, 서버 접속 콘솔을 통해 파일시스템 복구를 진행해 주십시오.

    I/O 에러 발생 여부는 직접 서버에 접근하여 확인하거나, 접속이 되지 않는 경우에는 서버 콘솔 screenshot 메뉴를 통해 확인이 가능합니다.
    server-ts-repair-filesystem-01

    VM에 파일 시스템 오류가 발생한 경우, 아래와 같은 증상들이 발생합니다.

    • Case 1) I/O 에러가 발생합니다.
      server-ts-repair-filesystem-02

    • Case 2) initramfs 프롬프트 복구 모드에 빠져있습니다.
      server-ts-repair-filesystem-03

    Linux 파일시스템 복구 명령어

    Linux 파일시스템의 복구를 위해서는 fsck 혹은 xfs_repair 명령어를 사용합니다.

    • fsck는 ext4 파일시스템 검사 및 복구 도구입니다.
    • xfs_repair는 XFS 파일시스템 검사 및 복구 도구입니다.
    참고

    fsck 명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.

    옵션설명
    -y모든 질문에 대한 응답을 yes로 취급하여 파일시스템 복구를 자동으로 실행합니다.
    -n모든 질문에 대한 응답을 no로 취급하여 파일시스템에 대한 체크만 진행합니다.
    -a명령 수행에 대한 확인 질문을 하지 않고 자동으로 복구를 실행합니다.
    ※ 해당 옵션 수행을 권장하지 않습니다.
    -f파일 시스템의 이상 유무에 상관 없이 강제로 파일 시스템을 체크합니다.

    xfs_repair 명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.

    옵션설명
    -n실제 복구 작업을 수행하지 않고 파일시스템에 대한 체크만 진행합니다.
    -f마운트 되어있지 않은 파일시스템이나 파일에 대해 강제로 체크합니다.
    -Lf 옵션보다 강력한 옵션으로, 강제로 로그를 비우며 파일 시스템 복구를 수행합니다.
    ※ 데이터 손실이 발생할 수 있습니다.

    1) 파일시스템 오류 복구 준비

    1-1) 파티션명과 파일시스템 타입 확인

    1. 부팅에 실패한다면 기본 스토리지의 파일시스템 오류를 의심해 볼 수 있습니다.

    2. 서버가 부팅은 되었으나 파일시스템 관련 오류가 발생하였다면 추가 스토리지의 파일시스템 오류를 의심해 볼 수 있습니다.
      파일시스템 관련 오류는 /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) 기본 스토리지에 파일시스템 오류가 발생한 경우

    1. 기본 스토리지에 오류가 발생하면 root file system check와 mount에 실패하며 initramfs로 빠지게 됩니다.

    2. initramfs 쉘에서 기본 스토리지에 대해 파일 시스템 체크를 수행해 주십시오.
      아래는 문제가 발생한 디바이스가 /dev/xvda1인 경우에 대한 예시입니다.

    파일시스템명령어
    ext4fsck.ext4 /dev/xvda1
    xfsxfs_repair /dev/xvda1

    ⚠️ 옵션 미사용으로 복구 불가시에는 -L 옵션을 추가하여 수행해주세요. -L 옵션 사용시 데이터 손실이 있을 수 있습니다.
    xfs_repair -L /dev/xvda1
    1. 파일시스템 체크를 한 번 더 진행한 후 clean이 출력되면 서버를 리부팅 하십시오.

    3) 추가 스토리지에 파일시스템 오류가 발생한 경우

    1. 추가스토리지에 파일 시스템 오류가 발생한 경우, 오류가 발생한 디바이스의 마운트를 해제해 주십시오.
    umount /dir (/dir : 추가스토리지 영역 마운트 디렉토리)
    
    참고

    언마운트가 정상적으로 진행되지 않는 경우 언마운트 강제 명령어 또는 fuser 명령어를 통해서 특정 파일이나 파일 시스템, 포트 등에서 사용 중인 프로세스를 확인 및 종료해야 합니다.

    • 언마운트 강제 명령어
      • umount -l /mnt/a
      • umount -f /mnt/a
    • fuser 명령어 사용 순서
      1. fuser -cu /mnt/a로 디렉터리를 사용하는 사용자 또는 프로세스 확인
      2. fuser -ck /mnt/a로 프로세스 강제 종료
      3. umount /mnt/a로 언마운트 수행
    1. 오류가 발생한 디바이스에 파일시스템 체크를 수행해 주십시오.
      아래는 문제가 발생한 디바이스가 /dev/xvdb1인 경우에 대한 예시입니다.
    파일시스템명령어
    ext4fsck.ext4 /dev/xvdb1
    xfsxfs_repair /dev/xvdb1

    ⚠️ 옵션 미사용으로 복구 불가시에는 -L 옵션을 추가하여 수행해주세요. -L 옵션 사용시 데이터 손실이 있을 수 있습니다.
    xfs_repair -L /dev/xvdb1
    1. 추가스토리지에 대해 파일시스템 체크를 진행한 경우, 추가스토리지를 다시 마운트해 주십시오.
    • /etc/fstab 에 추가스토리지 영역에 대한 마운트 설정이 되어있는 경우
    mount -a
    
    • 직접 mount 수행
    mount /dir (/dir : 추가스토리지 영역 마운트 디렉토리)
    
    1. 파일시스템 체크를 한 번 더 진행한 후 clean이 출력되면 서버를 리부팅해 주십시오.

    4) 서버 재시작

    fsck 또는 xfs_repair를 시도한 이후에도 파일 시스템이 복구되지 않았다면 OS 강제 리부팅이 필요합니다.

    • 사용자 콘솔에서 리부팅을 진행해 주십시오.
      재시작 → 재시작실패 → 강제정지 → 시작
    주의

    위 절차들을 수행한 이후에도 서버 정상화가 되지 않는 경우에는 스냅샷을 통한 데이터 복구가 필요합니다.
    Snapshot 을 이용한 Block storage 생성을 참고해 주십시오.

    Windows 서버 파일 시스템 오류 복구 방법

    Windows 파일시스템 복구 명령어

    Windows 파일시스템의 복구를 위해서는 chkdsk 명령어를 사용합니다.
    chkdsk 는 파일 시스템 점검 및 복구를 지원하는 Windows Tool입니다.
    옵션 없이 실행할 경우, 기본 스토리지를 점검만 수행합니다.

    주의

    chkdsk 수행 중에 중간에 취소하거나 중단할 경우, 그 전 상태보다 더 손상되지는 않지만 권장하지 않습니다.
    chkdsk가 완전히 실행 완료될 때까지 기다리는 것이 안전합니다.

    참고

    chkdsk 명령어 실행 시 지원하는 옵션 정보들은 다음과 같습니다.

    옵션설명
    /f발견한 에러들을 복구합니다. 해당 옵션을 적용할 경우, 드라이브는 lock 상태여야 합니다. lock 상태가 아닐 경우, 다음 리부팅 시 드라이브 체크 예약 여부에 대한 메세지가 나타납니다.
    /rbad sector 들을 찾아 읽을 수 있는 정보를 복구합니다. 해당 옵션을 적용할 경우, 드라이브는 lock 상태여야 합니다.
    /x필요한 경우 드라이브를 강제로 dismount 합니다. 또한, 드라이브에 열려있는 모든 핸들을 무효화 합니다.

    자세한 내용은 Microsoft 아티클을 참고해 주십시오.

    1) OS hang 이 발생한 경우

    • 사용자 콘솔에서 리부팅을 진행해 주십시오.
      재시작 → 재시작실패 → 강제정지 → 시작
    주의

    리부팅 후에도 서버 정상화가 되지 않는 경우에는 스냅샷을 통한 데이터 복구가 필요합니다.
    Snapshot 을 이용한 Block storage 생성을 참고해 주십시오.

    2) 기본 스토리지에 파일시스템 오류가 발생한 경우

    1. 다음 명령어를 입력해 chkdsk 를 실행해 주십시오.
      chkdsk C: /f /r /x
      
    2. 기본 스토리지의 경우, 현재 사용 중으로 다음 리부팅 시 드라이브 체크 예약 여부에 대한 메세지가 나타납니다. Y 를 입력해 주십시오.
    3. 리부팅을 진행해 주십시오.

    3) 추가 스토리지에 파일시스템 오류가 발생한 경우

    1. run - diskmgmt.msc 명령어를 입력해 복구하고자 하는 추가 스토리지의 드라이브명을 확인해 주십시오.
    2. 다음 명령어를 입력해 chkdsk 를 실행해 주십시오.
      chkdsk <드라이브명> /f /r /x
      

    이 문서가 도움이 되었습니까?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.