원문은 이글루스. 여기엔 더 간략하게만 정리했다.
조금 전, 갑자기 파일 서버가 오작동을 일으켰다. 파일시스템이 리드온리로 바뀌고, 재부팅을 해도 그 디스크를 마운트 하지 못하는 현상이 나타났다.
하여, 디스크를 떼어내서 다른 시스템에 연결한 후, btrfs check 를 시행했다.
근데? 오류도 나오질 않는데? 왜 그랬던 걸까?
검사가 끝난 뒤 다시 연결하니, 언제 그랬냐는 듯 또 잘 된다.
거 참.
아무튼, 그때 사용한 명령어는 다음과 같다.
btrfs check <디스크 파티션 위치: ex. /dev/sdX1>
디스크 위치는 /dev/sde1
처럼 정확한 파티션을 넣어줘야 한다. /dev/sde 등으로 ‘드라이브’를 지정하면 안된다.
자세한 사용법은 man btrfs check
으로 알아볼 수 있다.
설명서에는, 일단 확인(check)만을 하라고 돼 있다. 그리고 강력한 ‘경고’도 같이 써 있다.
Warning
Do not use –repair unless you are advised to do so by a developer or an experienced user, and then only after having accepted that no fsck successfully repair all types of filesystem corruption. Eg. some other software or hardware bugs can fatally damage a volume.
그렇지만, –repair 외엔, 달리 btrfs 파일 시스템을 처리할 방법이 없다.
repair 를 하기 전에 몇가지를 먼저 해보라고 Btrfs Wiki 에 나와는 있으나… 결국 –repair 가 마지막이자 유일한 수리 방법으로 보인다.
하여.. 그 금단(?)의 문은 이렇게 열 수 있다.
btrfs check --repair <디스크 파티션 위치: ex. /dev/sdX1>
자주 쓸 일은 없어도, 그래도 모르면 안되는(짜증나는) 명령.