ºÎÆÃÁß ÆÄÀϽýºÅÛüũ´Ü°è¿¡¼ ¸ØÃç¹ö·ÈÀ» ¶§
http://ehostidc.co.kr/center/EH050402.php?no=2586&choose=title&keywor¡¦ (330)http://ehostidc.co.kr/cld/EH020201.php?ke=0 (318)
1. 증상발견
시스템을 재부팅하는 순간 /usr파일시스템체크하는 단계에서 멈추어 버렸습니다.
2. 문제분석
이 서버의 파티션은 /usr, /var, /home, /로 나뉘어 있었습니다. 파일시스템체크단계에서 부팅이 되지않았으므로 필자는 당연히 파일시스템에 이상이 있을 것이라고 판단한 후에 싱글모드로 부팅을 다시하였습니다. 그런 다음 파일시스템을 디바이스이름으로 다음과 같이 하나씩 체크해 보았습니다.fsck –t ext2 /dev/sda1
fsck –t ext2 /dev/sda5
fsck –t ext2 /dev/sda6
fsck –t ext2 /dev/sda8그러나 별다른 증상은 발견할 수 없었습니다.파일시스템에 별다른 이상없이 깨끗하므로 이제는 부팅이 되겠지하고 3레벨로 재부팅을 하였습니다. 하지만 여전히 파일시스템체크하는 단계에서 시스템이 부팅이 되지않는 것이였습니다.단순한 문제가 아니라는 생각이 들어서 시스템을 싱글모드로 재부팅한 후에 하나씩 자세 살펴보았으나 별다른 이상은 발견할 수 없었습니다.
3. 문제해결한동안 생각을 정리한 후에 필자는 해결방법을 골똘히 생각해 보았습니다. 부팅프로세스의 전단계를 하나씩 하나씩 모두 체크해 보는 수 밖에 별다른 방법이 없었습니다.부팅단계 중 파일시스템을 체크하는 단계는 /etc/rc.sysinit의 실행과정에 있는 /etc/fstab파일을 참조하여 필요한 파일시스템체크와 마운트를 시킨다는 것은 이미 여러분들도 잘 아실 것입니다.따라서 파일시스템 체크나 파일시스템 마운트 단계에서 이상이 발생하여 부팅이 안된다면 분명 /etc/fstab의 정보가 잘못되었거나 파일시스템이 이상한 것 둘중에 하나가 원인일 것입니다.따라서 필자는 다시 싱글모드로 시스템을 부팅시켜서 /etc/fstab파일을 자세히 살펴보았습니다.확인한 결과 /home파일시스템의 마운트 디바이스가 /dev/sdb5로 되어 있다는 것을 확인하였습니다. 이 서버에는 하드디스크가 하나밖에 없었습니다.따라서 /dev/sdb5라는 것은 존재할 수 없었습니다. 모든 파일시스템은 /dev/sda로 되어 있어야했습니다. 그래서 /dev/sdb5를 원상태로 수정한 후에 정상적인 3레벨로 부팅이 되었습니다.누군가 거짓 실수나 고의 또는 애를 먹이기 위하여 /etc/fstab파일을 수정하여 그릇된 마운트정보를 가지게 하였던 것입니다.
4. 사후조치필자는 서버를 설치한 후에는 반드시 부팅관련 파일들과 중요한 관리자명령어들은 반드시 특정 디렉토리에 동일한 복사본을 보관하여 두고 있습니다. 시스템에 이상이 생겼을 경우에는 이미 시스템에 존재하는 명령어들은 100%신뢰할 수 없기 때문에 원본을 복사해둔 명령어들을 사용하여 시스템을 점검하곤 합니다. 이번 또한 해킹에 의한 것으로 확신되었습니다. 시스템 점검결과 악의적인 해킹은 아니었지만 누군가 고의적으로 장난삼아서 /etc/fstab의 마운트 정보를 수정해 둔 것 같았습니다. 그리고 가능하다면 /etc/fstab파일의 속성에 i옵션을 넣어 두고서 수정이 되지않도록 하는 것이 좋을 것입니다. 하드디스크 증설등의 작업이 있다면 마운트정보를 수정해야하므로 /etc/fstab파일의 i속성을 제거한 후에 /etc/fstab에서 마운트 정보를 수정하고 다시 i속성을 부여해 주는 것이 좋을 것 같습니다.
작성자 : ㈜수퍼유저코리아 박성수 (papa골뱅superuser.co.kr)
출처 : 슈퍼유저코리아