웹사이트 검색

Linux에서 'fsck'를 사용하여 파일 시스템 오류를 복구하는 방법


Linux 파일 시스템은 데이터 저장 및 복구 방법을 구성하는 역할을 담당합니다. 어떤 식으로든 시간이 지나면 파일 시스템이 손상되어 특정 부분에 액세스할 수 없게 될 수 있습니다. 파일 시스템에서 이러한 불일치가 발생하는 경우 무결성을 확인하는 것이 좋습니다.

이는 부팅 시 루트 파일 시스템을 자동으로 확인하거나 수동으로 실행하는 fsck(파일 시스템 일관성 검사)라는 시스템 유틸리티를 통해 완료할 수 있습니다.

이 문서에서는 Linux 디스크 오류를 복구하는 데 도움이 되는 fsck 명령과 사용법을 검토하겠습니다.

Linux에서 fsck 명령을 사용하는 경우

fsck를 실행하려는 경우에는 다양한 시나리오가 있습니다. 다음은 몇 가지 예입니다.

  • 시스템이 부팅되지 않습니다.
  • 시스템의 파일이 손상되었습니다(종종 입력/출력 오류가 나타날 수 있음).
  • 연결된 드라이브(플래시 드라이브/SD 카드 포함)가 예상대로 작동하지 않습니다.

fsck 명령 옵션

fsck 명령은 슈퍼유저 권한 또는 루트로 실행해야 합니다. 다른 인수와 함께 사용할 수 있습니다. 사용법은 특정 사례에 따라 다릅니다. 아래에서 더 중요한 옵션 중 일부를 볼 수 있습니다.

  • -A – 모든 파일 시스템을 확인하는 데 사용됩니다. 목록은 /etc/fstab에서 가져옵니다.
  • -C – 진행률 표시줄을 표시합니다.
  • -l – 확인 중에 다른 프로그램이 파티션을 사용하지 못하도록 장치를 잠급니다.
  • -M – 마운트된 파일 시스템을 확인하지 않습니다.
  • -N – 수행할 작업만 표시하며 실제 변경은 이루어지지 않습니다.
  • -P – 루트를 포함하여 파일 시스템을 병렬로 검사하려는 경우.
  • -R – 루트 파일 시스템을 확인하지 않습니다. 이는 '-A'에만 유용합니다.
  • -r – 확인 중인 각 장치에 대한 통계를 제공합니다.
  • -T – 제목을 표시하지 않습니다.
  • -t – 확인할 Linux 파일 시스템 유형만 지정합니다. 유형은 쉼표로 구분된 목록일 수 있습니다.
  • -V – 수행 중인 작업에 대한 설명을 제공합니다.

fsck 명령을 실행하여 Linux 파일 시스템 오류 복구

fsck를 실행하려면 확인하려는 파티션이 마운트되지 않았는지 확인해야 합니다. 이 기사에서는 /mnt에 마운트된 두 번째 드라이브 /dev/sdb를 사용하겠습니다.

파티션이 마운트되었을 때 fsck를 실행하려고 하면 어떤 일이 발생합니까?

fsck /dev/sdb

이를 방지하려면 다음을 사용하여 파티션을 마운트 해제하세요.

umount /dev/sdb

그러면 fsck를 안전하게 실행할 수 있습니다.

fsck /dev/sdb

fsck 종료 코드 이해

fsck를 실행하면 종료 코드가 반환됩니다. 이 코드는 다음을 실행하여 fsck 매뉴얼에서 볼 수 있습니다.

man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Fsck 복구 Linux 파일 시스템

때로는 파일 시스템에서 둘 이상의 오류가 발견될 수 있습니다. 이러한 경우 fsck가 자동으로 오류 수정을 시도하도록 할 수 있습니다. 이 작업은 다음을 통해 수행할 수 있습니다.

fsck -y /dev/sdb

-y 플래그는 오류를 수정하기 위해 fsck의 모든 프롬프트에 대해 자동으로 “yes”입니다.

마찬가지로 모든 파일 시스템에서 동일한 작업을 실행할 수 있습니다(루트 제외).

fsck -AR -y 

Linux 루트 파티션에서 fsck를 실행하는 방법

어떤 경우에는 시스템의 루트 파티션에서 fsck를 실행해야 할 수도 있습니다. 파티션이 마운트되어 있는 동안에는 fsck를 실행할 수 없으므로 다음 옵션 중 하나를 시도해 볼 수 있습니다.

  • 시스템 부팅 시 fsck 강제 실행
  • 복구 모드에서 fsck 실행

우리는 두 가지 상황을 모두 검토할 것입니다.

시스템 부팅 시 강제 fsck

이 작업은 상대적으로 완료하기 쉽습니다. 해야 할 일은 시스템의 루트 파티션에 forcefsck라는 파일을 만드는 것뿐입니다. 다음 명령을 사용하십시오.

touch /forcefsck

그런 다음 간단히 시스템 재부팅을 강제하거나 예약할 수 있습니다. 다음 부팅 시 fsck가 수행됩니다. 다운타임이 중요한 경우 시스템에 사용된 inode가 많으면 fsck에 추가 시간이 걸릴 수 있으므로 신중하게 계획하는 것이 좋습니다.

시스템이 부팅된 후 파일이 여전히 존재하는지 확인하십시오.

ls /forcefsck

그렇다면 시스템을 부팅할 때마다 fsck가 발생하지 않도록 제거하는 것이 좋습니다.

복구 모드에서 fsck 실행

복구 모드에서 fsck를 실행하려면 몇 가지 단계가 더 필요합니다. 먼저 시스템을 재부팅할 준비를 하세요. MySQL/MariaDB 등과 같은 중요한 서비스를 중지한 다음 입력하세요.

reboot

부팅하는 동안 shift 키를 누르고 있으면 grub 메뉴가 표시됩니다. '고급 옵션'을 선택합니다.

그런 다음 '복구 모드'를 선택합니다.

다음 메뉴에서 "fsck "를 선택합니다.

/ 파일 시스템을 다시 마운트할지 묻는 메시지가 표시됩니다. “예”를 선택하세요.

이와 비슷한 내용이 표시되어야 합니다.

그런 다음 '재개'를 선택하여 일반 부팅을 재개할 수 있습니다.

결론

이 튜토리얼에서는 fsck를 사용하고 다양한 Linux 파일 시스템에서 일관성 검사를 실행하는 방법을 배웠습니다. fsck에 대해 질문이 있는 경우 주저하지 말고 아래 댓글 섹션에 제출해 주세요.