Computer >> 컴퓨터 >  >> 프로그램 작성 >> BASH 프로그래밍

Linux 파일 시스템 오류를 복구하는 fsck [4가지 일반적인 예]

최신 컴퓨터는 믿을 수 없을 정도로 안정적이지만 여전히 문제가 발생할 수 있습니다. 그리고 일반적으로 잘못될 수 있는 최악의 상황은 중요한 작업이든 소중한 사진이든 데이터 손실입니다.

강력한 백업 시스템과 함께 fsck (파일 시스템 검사)는 아마도 데이터 손실을 방지하기 위해 손에 넣을 수 있는 가장 중요한 도구일 것입니다. 이 튜토리얼은 fsck를 사용하여 Linux에서 파일 시스템 오류를 복구하는 방법을 설명하고 네 가지 일반적인 예를 보여줍니다.

fsck Linux 파일 시스템의 무결성을 확인하고 오류를 수정합니다.

구문

fsck Linux에서 사용하는 파일 시스템에 사용할 수 있는 여러 파일 시스템 검사기의 인터페이스이며 다음 구문을 사용합니다.

fsck [OPTIONS]... [FILESYSTEMS]...

참고:

  • [OPTIONS]… 아래 표의 옵션 목록입니다.
  • [FILESYSTEMS]는 검사/복구할 파일 시스템 목록입니다.
  • 아닌 옵션 fsck에 의해 이해됨 검사 중인 특정 파일 시스템에 사용되는 특정 파일 시스템 검사기로 전달됩니다.
  • 파일 시스템을 지정하지 않으면 fsck 기본적으로 /etc/fstab의 모든 파일 시스템을 검사합니다(즉, 기본적으로 -A 옵션)

옵션

fsck 몇 가지 옵션이 있습니다. 다음을 실행하여 전체 목록을 볼 수 있습니다.

man fsck

... 터미널에서. 다음은 가장 많이 사용해야 할 옵션에 대한 요약입니다.

다음은 fsck를 사용할 때 일반적으로 사용되는 옵션입니다. , 매뉴얼에서 바로 가져옴(단, 간결함을 위해 일부 수정함 - 더 자세한 사용법은 매뉴얼을 확인하십시오):

<일>
-t fslist 검사할 파일 시스템의 유형을 지정합니다. fslist 매개변수는 쉼표로 구분된 파일 시스템 및 옵션 지정자 목록입니다. 일반적으로 파일 시스템 유형은 /etc/fstab 파일에서 filesys를 검색하고 해당 항목을 사용하여 추론됩니다.
-A /etc/fstab 파일을 살펴보고 모든 파일 시스템을 한 번에 확인하십시오. 이 옵션은 일반적으로 단일 파일 시스템을 검사하기 위한 여러 명령 대신 /etc/rc 시스템 초기화 파일에서 사용됩니다.
-M 마운트된 파일 시스템을 확인하지 않고 마운트된 파일 시스템에 대해 종료 코드 0을 반환합니다.
-N 실행하지 말고 수행할 작업을 보여주십시오.
-R -A 플래그로 모든 파일 시스템을 검사할 때 루트 파일 시스템을 건너뜁니다(이미 읽기-쓰기로 마운트된 경우).
-V 실행되는 모든 파일 시스템별 명령을 포함하여 자세한 출력을 생성합니다.

다른 파일 시스템별 fsck에 대한 옵션은 표준화되어 있지 않습니다. 확실하지 않은 경우 파일 시스템별 검사기의 매뉴얼 페이지를 참조하십시오. 보장되지는 않지만 대부분의 파일 시스템 검사기는 다음 옵션을 지원합니다.

<일>
-a 질문 없이 파일 시스템을 자동으로 복구합니다(이 옵션은 주의해서 사용).
-n 일부 파일 시스템 특정 검사기의 경우 -n 옵션을 사용하면 fs 특정 fsck가 문제 복구를 시도하지 않고 이러한 문제를 보고하기만 하면 됩니다.
-r 파일 시스템을 대화식으로 복구합니다(확인 요청).
-y 일부 파일 시스템 특정 검사기의 경우 -y 옵션을 사용하면 fs 특정 fsck가 항상 감지된 파일 시스템 손상을 자동으로 수정하려고 시도합니다.

특정 파일 시스템의 특정 검사기에 사용할 수 있는 옵션을 보려면 다음을 실행하십시오.

man fsck.ext4

종료 코드

<일>
fsck에서 반환된 종료 코드는 다음 조건의 합계입니다.
0 오류 없음
1 파일 시스템 오류 수정
2 시스템을 재부팅해야 합니다.
4 수정되지 않은 파일 시스템 오류
8 작동 오류
16 사용 또는 구문 오류
32 사용자 요청으로 Fsck가 취소됨
128 공유 라이브러리 오류
여러 파일 시스템이 검사될 때 반환되는 종료 코드는 검사되는 각 파일 시스템에 대한 종료 코드의 비트별 OR입니다.

예시

다음은 fsck의 일반적인 사용 예입니다. – 루트 파일 시스템을 포함한 로컬 디스크 확인.

마운트 해제

사용 중인 파일 시스템을 확인할 수 없습니다. 파일 시스템이 손상되어 데이터가 손실될 수 있기 때문입니다. 파일 시스템을 마운트 해제하여 사용 중이 아니고 확인할 수 있도록 하려면 다음을 실행하십시오.

sudo umount /dev/filesystem

... 여기서 파일 시스템 마운트 해제할 파일 시스템의 이름입니다.

파일 시스템의 이름을 모르는 경우 다음을 실행하십시오.

df -h

... 파일 시스템 및 마운트 지점 목록을 가져옵니다.

재장착

확인 및 복구가 끝나면 다음을 사용하여 파일 시스템을 다시 마운트할 수 있습니다.

sudo mount /dev/filesystem

손상된 파일 시스템 검사 및 복구

sudo fsck -p /dev/filesystem

참고:

  • 파일 시스템 검사 중인 파일 시스템의 이름이며 "sda1" 또는 "sdc1"과 유사합니다.
  • -p 옵션은 fsck에 알려줍니다. 사용자 상호 작용이 자동으로 필요하지 않은 문제를 해결하기 위해

부팅 확인 / 루트 파일 시스템 확인

사용 중인 파일 시스템을 확인할 수 없으므로 Linux에서 시스템이 완전히 부팅되어 사용 중인 동안에는 루트 파일 시스템을 확인할 수 없습니다.

원격으로 시스템에 로그인한 경우에도 작동하므로 부팅 시 확인을 실행하는 것이 가장 좋은 방법입니다.

대부분의 Linux 배포는 기본적으로 fsck를 실행하도록 구성됩니다. 파일 시스템이 "dirty"(확인 필요)로 표시되거나 고정된 부팅 간격 후에 자동으로 표시됩니다.

각 시스템 부팅(루트 파일 시스템 포함)에서 특정 항목을 강제로 확인하려면 tune2fs를 사용하세요. 파일 시스템 매개변수를 조정하려면:

tune2fs -c 1 /dev/filesystem

파일 시스템 위치 검사할 파일 시스템의 이름입니다. 1 fsck의 부팅 수입니다. 다음에 실행됩니다. 기본값은 30입니다. Ubuntu 배포판에서 정상으로 되돌리려면 다음을 실행할 수 있습니다.

tune2fs -c 30 /dev/filesystem

이것이 작동하지 않으면 이전 배포판은 부팅 시 fsck를 실행합니다. /forcefsck 파일이 있습니다:

sudo touch /forcefsck

fsck 한 번 부팅 시 수행된 결과는 다음 위치에 기록됩니다.

/var/log/fsck

... 확인할 준비가 되었습니다.

시스템이 전혀 부팅되지 않을 정도로 손상된 경우 복구 디스크나 USB 스틱에서 부팅한 다음 fsck를 실행할 수 있습니다. 거기에서 확인하려는 루트 파일 시스템이 마운트되지 않습니다.

결론

자세한 내용은 fsck를 참조하세요. 실행하여 수동:

man fsck

터미널에서.

일반적인 Linux 셸 도구에 대한 다른 설명을 확인하세요.