저는 CentOS6.7을 vagrant 및 virtual box가 있는 게스트 OS로 사용하고 있습니다.
문제의 배경
vagrant ssh
오늘 CentOS에 로그인한 후 터미널 에뮬레이터가 자주 중단되었습니다. 나는 전에 이런 일을 겪은 적이 없습니다.
몇번의 조사 끝에 두 가지 사실을 발견했습니다.
- 게스트 OS 부팅 시간이 어제보다 훨씬 길어졌습니다.
- 루트 파일 시스템에 문제가 있는 것 같습니다.
fsck를 실행하여 다음을 확인합니다.
$ fsck -n
/dev/mapper/VolGroup-lv_root contains a file system with errors, check forced.
...
...
Free blocks count wrong (845378, counted=845408)
Free inodes count wrong (309812, counted=309769)
이것은 /etc/fstab입니다:
$ cat /etc/fstab
/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1
UUID=d197cae3-0dd5-4555-9b2f-f9f21c1d9679 /boot ext4 defaults 1 2
/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
그래서 게스트 OS를 종료하고 단일 사용자 모드로 다시 시작했습니다. 그 이후에는 소리 지르는 걸 좋아했어요.
# umount /
# fsck /dev/mapper/VolGroup-vl_root
그런데 결과는 이렇습니다.
/dev/mapper/VolGroup-lv_root clean ...
파일 시스템을 확인하기 위해 fsck 및 기타 옵션을 사용해 보았습니다.
# fsck -fv -t ext4 /dev/mapper/VolGroup-lv_root
fsck from util-linux-ng 2.17.2
pass 1: checking ...
...
...
pass 5: group summary information
130829 inodes used
...
...
913928 blocks used
0 bad blocks
1 large file
...
...
질문
fsck가 다중 사용자 모드와 단일 사용자 모드 간에 다른 결과를 제공할 수 있습니까?
내 생각에는 fsck가 처음에 몇 가지 문제가 있음을 루트 파일 시스템에 분명히 말한 것 같습니다. 하지만 두 번째, 세 번째는 별 문제가 없는 것 같았다.
그러한 문제를 해결하기 위한 몇 가지 일반적인 방법이나 관행이 있습니까?
답변1
마운트된 파일 시스템을 fsck하지 마십시오. 첫째, 항상 더티로 표시됩니다. 설치 프로세스 자체에서 "파일 시스템 더티" 플래그를 설정하고 해당 플래그는 일반적으로 제거 시 설정 해제됩니다. 둘째, fsck가 마운트된 파일 시스템을 변경하기 시작하면, 특히 /
상황이 매우 지저분해지면 실행 중인 프로그램에서 비트를 훔치는 것이 있기 때문에 더 심각한 문제에 직면할 수 있습니다.
따라서 귀하의 질문에 대답하자면, 그렇습니다. fsck
마운트된 파일 시스템과 마운트 해제된 파일 시스템에 대해 항상 다른 결과가 나타납니다. 주로 마운트된 파일 시스템에 대해 실행하면 안 되기 때문입니다.
(참고: 이것은 실제로 ext2/3/4 파일 시스템에서만 작동합니다. 예를 들어 XFS와 ReiserFS는 완전히 다른 짐승입니다.)