출처 : http://blog.blueweb.co.kr/archive/200903
4. 파일 시스템 오류검사 및 복구 요령
파일 시스템이 손상되었을 때 부팅중 문제가 발생 할 수 있다. 파일 시스템이 손상 되었을때의 대표적인 증상은 아래와 같다.
1) 파티션이 Read Only로 마운트 되면서 파일이 생성되지 않는다.
2) 부팅 과정 중 Ctrl+D 입력을 요구 하면서 더 이상 진행이 되지 않는다.
3) 파일시스템이 손상되었을 경우 dmesg명령어나 /var/log/messages에 에러가 남는다.
이러한 상황이 발생 했을 때 fsck명령으로 쉽게 복구 할 수 있다. 다만 파일시스템을 복구할 때 몇 가지 주의 사항이 있는데 이를 지키지 않을 시 데이터를 날려버릴 위험이 있으므로 반드시 다음 주의 사항을 지키면서 복구를 해야 한다.
먼저 파일 시스템을 마운트 시킨 상태에서 복구를 해서는 안된다.
df –h
cat /proc/mounts
명령으로 손상된 파티션이 마운트 되어 있는지 확인한다.
마운트 되어 있으면 umount 시킨 상태에서 복구 명령을 실행 시켜야 한다.
그러면 / 파티션 같은 경우에는 어떻게 복구해야 할까? / 파티션을 umount 시킨다면 복구명령을 실행 할 수 없으니 이런 의문이 당연히 떠 오를 것이다. 이럴때는 다음과 같이 / 파티션을 Read Only로 remount 시킨다음 체크를 실행한다.
#cat /proc/mounts
/dev/root / ext3 rw,data=ordered 0 0
와 같은 줄이 보인다. 다음 명령으로 / 파티션을 Read Only로 마운트 시킬 수 있다.
#mount -o remount,ro /
/dev/root / ext3 ro,data=ordered 0 0
/var /usr 파티션 같은 경우 다음과 같은 에러를 내면서 umount가 되지 않을 수도 있다. /usr 파티션이 사용되고 있기 때문이다.
umount /usr
umount: /usr: device is busy
umount: /usr: device is busy
그러므로 가장 확실한 방법은 잠시 서비스를 내리고 다음과 같이 1번 시디를 이용해서 rescue모드로 부팅을 해서 복구하는 방법이다.
#linux rescue nomount
/dev/sda1 파티션이 ext3 파일 시스템을 사용 하고 있을 때 다음과 같은 명령어로 복구 시킬 수 있다.
#e2fsck –j ext3 –vy /dev/sda1
badblock이 생겼을 때는 -c옵션을 주면 badblock을 체크한다. 그러나 가능하면 badblock이 생겼을 경우 빠른 시간내에 하드를 교체하는 것이 최선이다.
또한 손상 정도가 심한 경우는 파일시스템을 복구해도 차후 같은 증상을 가져 올 수 있기 때문에 서비스를 올린다음 해당 디스크를 교체하는 것이 좋다.
superblock이 손상되었을 경우 다음과 같은 명령어로 복구 시킬 수 있다.
#dumpe2fs /dev/hda1
명령어로 해당 파티션이 정보를 본다. 슈퍼블럭을 확인하고 다음과 같이 복구한다.
#fsck -b 8193 /dev/hda1
슈퍼블럭은 여러 백업본이 있기 때문에 하나가 안되면 다음과 같이 다음 슈퍼블럭을 선택해서 복구하면 된다.
#fsck -b 32768 /dev/hda2
날짜: 2009-07-14 08:25:06,
조회수: 4485 |