Linux 파일 시스템 오류를 수리하기 위해 ‘fsck’를 사용하는 방법

리눅스 파일 시스템은 데이터가 저장되고 검색되는 방식을 조직화하는 데 책임이 있습니다. 어떤 식으로든, 시간이 지나면 파일 시스템이 손상되어 일부 부분에 액세스할 수 없게 될 수 있습니다. 파일 시스템이 이러한 불일치를 개발하면 그 정합성을 확인하는 것이 좋습니다.

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

본문에서는 fsck 명령 및 해당 사용법을 검토하여 리눅스 디스크 오류를 복구하는 데 도움을 드리겠습니다.

Linux에서 fsck 명령어를 사용하는 시점

다음은 fsck를 실행해야 할 다양한 시나리오가 있습니다.

  • 시스템 부팅에 실패한 경우
  • 시스템의 파일이 손상된 경우(입출력 오류가 발생할 수 있음)
  • 연결된 드라이브(플래시 드라이브/SD 카드 포함)가 예상대로 작동하지 않는 경우

fsck 명령어 옵션

fsck 명령어는 최상위 사용자 권한 또는 루트로 실행되어야 합니다. 다양한 인수와 함께 사용할 수 있습니다. 사용 방법은 특정 사례에 따라 다릅니다. 아래에는 중요한 옵션 중 일부가 나와 있습니다:

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

Linux 파일 시스템 오류를 수리하려면 fsck 명령을 실행합니다.

fsck를 실행하려면 확인하려는 파티션이 마운트되지 않았는지 확인해야 합니다. 이 문서에서는 두 번째 드라이브인 /dev/sdb/mnt에 마운트되어 있는 것으로 가정합니다.

파티션이 마운트된 상태에서 fsck를 실행하면 다음과 같은 결과가 발생합니다.

# fsck /dev/sdb
Run fsck on Mounted Partition

이를 피하기 위해 파티션을 언마운트하십시오.

# umount /dev/sdb

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

# fsck /dev/sdb
Run fsck on Linux Partition

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 -y /dev/sdb

자동으로 오류 수정에 대한 fsck의 모든 프롬프트에 “예”로 응답하는 -y 플래그.

마찬가지로, 모든 파일 시스템에 대해 동일한 작업을 실행할 수 있습니다(루트 없이):

$ fsck -AR -y 

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

경우에 따라 시스템의 루트 파티션에서 fsck를 실행해야 할 수 있습니다. 파티션이 마운트된 상태에서는 fsck를 실행할 수 없으므로 다음 중 하나를 시도할 수 있습니다:

  • 시스템 부팅 시 fsck 강제로 실행
  • 레스큐 모드에서 fsck 실행

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

시스템 부팅 시 fsck 강제로 실행

이 작업은 상대적으로 쉽게 완료됩니다. 시스템의 루트 파티션에 forcefsck라는 파일을 만들어야 합니다. 다음 명령을 사용하십시오:

# touch /forcefsck

그런 다음 시스템을 강제로 재부팅하거나 예약할 수 있습니다. 다음 부팅 중에 fsck가 수행됩니다. 다운 타임이 중요한 경우에는 사용된 i-node가 많은 경우가 있으므로 이를 주의 깊게 계획하는 것이 좋습니다.

시스템이 부팅된 후에 파일이 여전히 있는지 확인하십시오:

# ls /forcefsck

있는 경우, 시스템 부팅마다 fsck를 피하기 위해 제거할 수 있습니다.

구조 모드에서 fsck 실행

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

# reboot

부팅 중에 grub 메뉴가 표시되도록 shift 키를 누르십시오. “고급 옵션”을 선택하십시오.

Grub Advanced Options

그런 다음 “복구 모드”를 선택하십시오.

Select Linux Recovery Mode

다음 메뉴에서 “fsck”를 선택하십시오.

Select fsck Utility

/ 파일 시스템을 다시 마운트할지 묻습니다. "예"를 선택하십시오.

Confirm Root Filesystem

다음과 유사한 내용이 표시됩니다.

Running fsck Filesystem Check

당신은 “재개”를 선택하여 정상 부팅을 계속할 수 있습니다.

Select Normal Boot
결론

이 튜토리얼에서는 fsck를 사용하여 다른 리눅스 파일 시스템에서 일관성을 확인하는 방법을 배웠습니다. fsck에 관한 질문이 있으시면 아래의 댓글 섹션에 남겨 주시기 바랍니다.

Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/