私は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
これを許可していませんが、あなたのバージョンでは許可されているようです。