(새 문서: 분류: 파일 시스템 분류: 유닉스 == 개요 == 시스템 유틸리티 fsck(file system consistency check의 준말)는 유닉스, 유닉스 계열 운영 체제(예: 리눅스, macOS, FreeBSD)의 파일 시스템의 무결성을 검사하기 위한 도구이다. fsck를 파일 시스템의 무결성을 보장하기 위해서 많은 연산을 수행하기 때문에 매우 느리다. 디스크 볼륨의 크기가 커질수록 이러한 체킹은 수분에서 수...)
 
편집 요약 없음
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[분류: 유닉스 명령어]]
[[분류: 파일 시스템]]
[[분류: 파일 시스템]]
[[분류: 유닉스]]


== 개요 ==
== 개요 ==

2023년 2월 11일 (토) 02:34 기준 최신판


개요

시스템 유틸리티 fsck(file system consistency check의 준말)는 유닉스, 유닉스 계열 운영 체제(예: 리눅스, macOS, FreeBSD)의 파일 시스템의 무결성을 검사하기 위한 도구이다. fsck를 파일 시스템의 무결성을 보장하기 위해서 많은 연산을 수행하기 때문에 매우 느리다. 디스크 볼륨의 크기가 커질수록 이러한 체킹은 수분에서 수시간까지도 늘어날 수 있다. 특히 RAID와 같은 경우에는 시스템 부팅만을 위해서 몇시간이 소요될 수도 있다. 따라서 이러한 한계를 극복하기 위해서 최신의 운영체제는 저널링을 이용하여 파일 시스템을 복구한다.

작동 방식

  1. super block: Fsck는 우선 superblock을 검사하여, superblock이 오염되지 않았음을 확인하게 된다. 만약 문제가 발생한다면 superblock의 백업 카피본을 이용하여 복구를 시도하거나, 무결성 검사를 진행하여 복구할 수 있는 경우 superblock을 복구하게 된다.
  2. free blocks: 이후 inode, indirect / single / double / triple blocks를 순환하며, 데이터시스템에 잘못 할당된 블럭이 있는지를 파악한다. 이러한 방식으로 block bitmap과 free blocks간의 inconsistency를 극복한다.
  3. inode state: inode의 각각의 field들이 제대로 할당 되어 있는지 확인 한다.
  4. inode link: inode의 link_count가 적절하게 되어 있는지 확인한다. 이는 fsck가 모든 파일 시스템을 iterate하면서 각각의 파일이 어떻게 참고 되고 있는지를 모두 확인한후 link_count와 비교함으로써 무결성을 검사한다. 만약 이 과정중에, link_count가 0이지만 (이 아이노드를 가르키는 곳이 없는 아이노드) 존재하는 아이노드가 발견되면 lost+found 디렉토리가 이 아이노드를 가르키게 한다.
  5. Duplicates: fsck는 중복 포인터를 검사한다. 즉 하나의 블럭에 대한 중복된 inode를 검사한다.
  6. Bad blocks: 할당할 수 있는 범위를 벗어난 블럭이 있는지, 아니면 할당 되지 않은 블럭이 bitmap에 마킹되어 있는지 와 같은 것들을 검사하여 고치게 된다.
  7. Directory checks: 디렉터리에 ., .. 기 포함되어 있는지, 아니면 각각의 디렉토리의 field가 적절하게 되어 있는지와 같은 것들을 검사하여 dentry의 무결성을 보장한다.

사용법

fsck [-lsAVRTMNP] [-r [fd]] [-C [fd]] [-t fstype] [filesystem...] [--] [fs-specific-options]