이상한 디버깅 동작

이상한 디버깅 동작

나는 debugfs를 가지고 놀고 있습니다. 먼저 파일을 만들었습니다.

debugfs -w /dev/vda1
> write /etc/hosts /a/b/c/d

파일 시스템이 손상되었습니다.

[root@linux2 /]# ls -l
ls: cannot access /a/b/c/d: No such file or directory
total 8388724
-??????????   ? ?        ?             ?            ? /a/b/c/d

내 생각엔 이 시스템도 망가진 것 같아.

[978471.090291] EXT4-fs error (device vda1): __ext4_new_inode:989: comm SystemLogFlush: failed to insert inode 9190949: doubly allocated?
[978475.765474] EXT4-fs (vda1): pa ffff93f4732c4000: logic 2133, phys. 15753237, len 1963
[978475.767163] EXT4-fs error (device vda1): ext4_mb_release_inode_pa:3803: group 480, free 1962, pa_free 1960
[978475.814801] JBD2: Spotted dirty metadata buffer (dev = vda1, blocknr = 0). There's a risk of filesystem corruption in case of system crash.

debugfs는 inode를 통한 파일 삭제를 지원하지 않으므로 이 파일을 어떻게 삭제합니까?

어떻게 되어가나요?

답변1

문제를 정리하는 가장 쉬운 방법은 파일 시스템을 확인하는 것입니다.

e2fsck -f /dev/vda1

문제는 슬래시가 포함된 디렉토리 항목이 생성된다는 점입니다. 이런 일이 발생하면 안 됩니다. 현재 버전에서는 debugfs이를 허용하지 않지만 귀하의 버전에서는 허용되는 것 같습니다.

관련 정보