리눅스 파일 시스템은 데이터가 저장되고 검색되는 방식을 조직화하는 데 책임이 있습니다. 어떤 식으로든, 시간이 지나면 파일 시스템이 손상되어 일부 부분에 액세스할 수 없게 될 수 있습니다. 파일 시스템이 이러한 불일치를 개발하면 그 정합성을 확인하는 것이 좋습니다.
이 작업은 부팅 시 자동으로 루트 파일 시스템을 확인하거나 수동으로 실행할 수 있는 시스템 유틸리티인 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

이를 피하기 위해 파티션을 언마운트하십시오.
# 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 -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
키를 누르십시오. “고급 옵션”을 선택하십시오.

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

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

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

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

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

결론
이 튜토리얼에서는 fsck를 사용하여 다른 리눅스 파일 시스템에서 일관성을 확인하는 방법을 배웠습니다. fsck에 관한 질문이 있으시면 아래의 댓글 섹션에 남겨 주시기 바랍니다.
Source:
https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/