마운트 된 파티션을 fsck 할 수없는 이유는 무엇입니까?


43

마운트 된 파티션을 절대로 fsck해서는 안된다는 것은 잘 알려져 있습니다. 파일 시스템이 fsck 의해 기록 된 경우 (예 : -a 옵션이 사용되는 경우) 이것이 어떻게 쉽게 손상 될 수 있지만 마운트 된 디스크에서 읽기 전용 검사를 실행할 수 없는지 이해할 수 있습니다.

답변:


28

에서:

http://linux.die.net/man/8/fsck.ext3

"일반적으로이 실행하기에 안전하지 않다는 주 e2fsck마운트 된 파일 시스템에. 경우 유일한 예외는 -n옵션을 지정하고 -c, -l또는 -L옵션의 지정이되지 않습니다.하지만, 그렇게하는 것이 안전 경우에도 인쇄 결과가 e2fsck있습니다 파일 시스템이 마운트 된 경우에는 유효하지 않습니다. 마운트 된 e2fsck파일 시스템을 검사해야하는지 여부를 묻는 경우 정답은``아니오 ''입니다. 방법. "


3
한 가지 예외 : 파일 시스템이 읽기 전용으로 마운트되고 fsck도 읽기 전용 모드 인 경우 문제가 없습니다.
Demi

31

기본적인 문제는 파일 시스템 검사기가 (일반적으로) 파일 시스템의 일부가 아니라는 것입니다. 대신 커널의 파일 시스템 코드와 동일한 디스크를 읽고 쓰는 별도의 프로그램입니다. 결과적으로, 활성 파일 시스템에서 fsck를 실행하면 동일한 데이터 (디스크)를 읽고 수정하는 두 개의 다른 엔티티가 있지만 어떤 방식 으로든 서로 조정되지 않습니다. 다른 사람들이 지적했듯이 그 결과 대부분의 체커는 아무도 파일 시스템 메타 데이터가 실행되는 동안 아무도 변경하지 않을 것으로 기대합니다. 커널 파일 시스템이 체커가 예상하지 못한 것을 변경하면 혼란 스럽거나 가짜 오류를보고합니다.

"온라인"으로 (즉, 파일 시스템이 활성화되어있는 동안) 실행되도록 명시 적으로 설계된 체커가있는 파일 시스템이 몇 가지 있습니다. 최신 버전의 FFS / UFS는 파일 시스템의 최근 스냅 샷 (읽기 전용, 특정 시점, COW (Copy-On-Write) 복제본)에 대해 fsck를 실행하여이를 수행합니다. 할당 비트 맵의 ​​불일치와 같은 문제가 발견되면 원시 디스크에 쓰지 않고 시스템 호출을 통해 문제를 해결합니다. 이를 통해 활성 파일 시스템과 조정할 수 있습니다.

NetApp의 WAFL에는 온라인 검사 도구도 있습니다. 아마도 다른 사람들이있을 것입니다.


11

읽기 전용 모드에서 fsck를 사용하더라도 파티션 탑재 읽기 / 쓰기에서 fsck를 실행하는 것은 어리석은 일입니다. 파일 시스템은 fsck에서 변경되며 파일 시스템에서 fsck가 캐시하는 메모리 내 데이터는 유효하지 않게되므로 fsck는 불일치를 보게됩니다. 읽기 전용 마운트 파일 시스템에서 fsck를 읽기 전용 모드로 실행하면 유효한 결과를 얻을 수 있습니다. 읽기 전용 마운트 파일 시스템에서 fsck를 읽기 / 쓰기 모드로 실행하면 fsck가 실행 중에 파일 시스템을 변경하면 커널이 파일 시스템 구조가 예기치 않게 변경되는 것을 보게됩니다. 그것은 또한 나쁠 것입니다.


"읽기 전용 마운트 된 filsystem에서 fsck를 읽기 / 쓰기 모드로 실행하면 커널이 그 아래에서 파일 시스템 구조가 예기치 않게 변경되는 것을 보게됩니다"라고 썼습니다. 파일 시스템 구조가 읽기 전용 마운트 파일 시스템에서 변경된 이유는 무엇입니까?
guettli

이 답변에 따르면, 와드 후에 재부팅하면 읽기 전용 파티션의 fsck는
정상입니다

@guettli-당신이 연결 한 대답은 나와 같은 말을합니다. (철자 오류, BTW를 수정했습니다. 감사합니다!) 커널에 파일 시스템에 읽기 전용 캐시 된 데이터가 마운트되어있는 동안 fsck가 변경하는 경우 fsck의 변경 사항에 비추어 커널 내부에 캐시 된 데이터가 유효하지 않을 수 있습니다. 물론 나중에 재부팅 할 수 있습니다. 또한 재부트하기 전에 흥미로운 커널 버그를 발견하고 커널을 패닉시킬 수도 있습니다.
Evan Anderson

9

파일 처리량이 fsck'd 인 동안 파일 시스템을 수정하는 경우 I / O 처리량을 죽일 수 있다는 사실 외에도 fsck가 변경 사항을 추적하고 불일치를보고 할 방법이 없습니다.

XFS와 같은 일부 파일 시스템을 사용하면 파일 시스템이 읽기 / 쓰기로 마운트되는 동안 일관성 검사를 수행 할 수 있으며 가짜 오류가보고 될 수 있다는 경고가 있습니다. xfs_check검사를 수행하기 전에 파일 시스템을 마운트 해제하거나 읽기 전용으로 마운트하는 것이 좋습니다.


6

fsck의 요점은 파일 시스템 불일치, 즉 불변을 위반하는 것을보고하는 것입니다.

그러나 이러한 검사 중 다수에는 하나 이상의 FS 구조가 포함됩니다. 누군가 FS를 수정 (데이터 쓰기)하는 경우 이러한 구조가 일시적으로 동기화되지 않을 수 있습니다. fsck는 이것이 실제로 문제가되지는 않지만 이것을 불일치로 간주합니다. fsck는 불일치가 일시적인지 또는 수정이 필요한 영구적 인 문제인지 알 수있는 방법이 없습니다. FS가 온라인 검사를 허용하도록 특별히 설계된 경우가 아니면 ext3은 그렇지 않습니다.


3

당신은 할 수 있습니다. fsck -n / dev / sda1은 적어도 ext3에서 정확히 그렇게합니다. 방금 테스트했습니다 :)


-4

움직이는 블렌더에 손을 대고 부상을 입지 않을 수있는 것처럼 또는 아래 보도에 배치 한 작은 쿠션 더미를 목표로 고층 건물에서 뛰어 내릴 수있는 것처럼 가능합니다.

그러나 왜 자신의 사망률을 시험하는 것 이외의 다른 이유는 무엇입니까? 당신의 상사가 메일 서버가 루트 드라이브를 인식하지 못하는 이유를 알아 냈을 때 확실히 그것을 다시 테스트 할 것이기 때문입니다.


실제로, 나는 더 나은 비유가 움직이는 믹서기를 보거나 고층 건물의 가장자리를 한눈에 보는 것이라고 생각합니다. 읽기 전용
mike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.