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 刪除文件,我該如何刪除這個文件?
這裡有什麼問題?
最簡單的清理方法是檢查文件系統:
e2fsck -f /dev/vda1
問題是您最終得到了一個包含正斜杠的目錄條目,這是不應該發生的。目前版本
debugfs
不允許這樣做,看來您的版本允許。