/dev/sdc에서 fsck -f를 실행하려고 했지만 성공하지 못했습니다.
umount -l /var/hadoop/zookeper
lsof /var/hadoop/zookeeper/
fsck -f /dev/sdc
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
/dev/sdc is in use.
e2fsck: Cannot continue, aborting.
어떻게 그럴 수 있니?
디스크가 마운트되지 않았으며 lsof에서 아무것도 얻지 못합니다.
그렇다면 왜 /dev/sdc를 사용하게 됩니까? ??
fsck -nf /dev/sdc
fsck from util-linux 2.23.2
e2fsck 1.42.9 (28-Dec-2013)
Warning! /dev/sdc is in use.
Warning: skipping journal recovery because doing a read-only filesystem check.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (4206042, counted=4212201).
Fix? no
Free inodes count wrong (1310644, counted=1310641).
Fix? no
/dev/sdc: 76/1310720 files (55.3% non-contiguous), 1036838/5242880 blocks
.
fsck -pvcf /dev/sdc
fsck from util-linux 2.23.2
/dev/sdc is in use.
e2fsck: Cannot continue, aborting
답변1
문제는 jbd2 커널 스레드입니다. 예를 들어:
# lsof | grep sdc
jbd2/sdc- 261 root cwd DIR 8,0 4096 2 /
jbd2/sdc- 261 root rtd DIR 8,0 4096 2 /
jbd2/sdc- 261 root txt unknown /proc/261/exe
당신이 할 수 있는 일은 디스크가 마운트되지 않도록 fstab에서 디스크를 제거하는 것입니다. 재시작. 그러면 이러한 커널 스레드는 절대 시작되지 않습니다.