実験的なファイルシステムを使用していますbtrfs
。
私のディレクトリは次のとおりです。
ls -la empytfolder
total 4
drwxr-xr-x 1 root root 0 19. Mär 14:00 .
drwxr-xr-x 1 root root 298 19. Mär 13:59 ..
空のフォルダを削除/削除する方法を使用して削除しようとしましたが、rm -rf emptyfolder
エラーが発生しました。rm: cannot remove directory: directory not empty?
なぜこのフォルダに4つのファイルがあるのですか?ルートとして削除しようとしています。私のファイルシステムはbtrfsです。
stat emptyfolder
私にしてください:
Datei: „emptyfolder“
Größe: 0 Blöcke: 0 EA Block: 4096 Verzeichnis
Gerät: 21h/33d Inode: 256 Verknüpfungen: 1
Zugriff: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Zugriff : 2012-03-19 14:00:28.205205566 +0100
Modifiziert: 2012-03-19 14:00:23.925025572 +0100
Geändert : 2012-03-19 14:00:23.925025572 +0100
Geburt : -
システムクロックにはいくつかの問題があります。時々間違った時間が表示されることがあります。
$ lsof +D emptyfolder
lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/user
/.gvfs Output information may be incomplete.
gvfs-fuse-daemonとは何ですか?どうすれば削除できますか?
私はfusions -uv /dev/diskを試しましたが、何の役にも立ちませんでした。どのプロセスもフォルダにアクセスしません。フォルダをtmpに移動しました。
答え1
最初のケース、次のような場合:
rmdir: failed to remove ‘emptydir’: Operation not permitted
「emptydir」が実際にサブボリュームであるためです。
次のようにして、これらのケースであることを確認できます。
btrfs subvolume list -a /mountpoint
サブボリュームを削除するには、以下を実行する必要があります。
btrfs subvolume delete emptydir
2番目のケース、次のような場合:
rmdir: failed to remove ‘emptydir’: Directory not empty
これにより、i_sizeがゼロ以外の空のディレクトリがある可能性があります。
次のようにして、これらのケースであることを確認できます。
stat -c %s emptydir 3196 <-- unexpected non-zero size
適切な(アンマウントされた)ファイルシステムで実行すると、
btrfs check
問題が特定され、問題がある他のディレクトリ(存在する場合)が一覧表示されます。次の出力が表示されます(抜粋)。
checking fs roots root 5 inode 557772 errors 200, dir isize wrong root 266 inode 24021 errors 200, dir isize wrong ...
btrfs check --repair
btrfs-progsの新しいバージョンを実行している場合は、このようなエラーを修正できます。
btrfs check --repair
場合によっては、問題を解決する場合は、むしろ問題を悪化させる可能性があるため、軽く使用してはいけないことに注意してください。
答え2
btrfsパーティションを使用しても同様の症状が発生しました。
btrfs check --repair /dev/sdXY
私のために問題を解決しました。見つかったエラーの形式は次のとおりです。
root X inode Y errors 200, dir isize wrong
そして
root X inode Y errors 80, file extent overlap
修正後も2番目のエラーが発生し続けて心配になりました。
答え3
この問題は、ReadyNASシステムの別々のディレクトリに発生します。共有はもはやGUIに表示されなくなりますが、/ dataの下のディレクトリはこれまで存在し続けます。だからこのフォルダを削除したいのですが、rmdirは機能しません。
スナップショットを1つずつ削除しました。
cd /data
btrfs subvolume delete ./VirtualBox1/.snapshots/309/snapshot
...
btrfs subvolume delete ./VirtualBox1/.snapshots/2/snapshot
btrfs subvolume delete ./VirtualBox1/.snapshots/1/snapshot
btrfs subvolume delete ./VirtualBox1/.snapshots
すべてのスナップショットを削除した後、「フォルダ」自体を削除できました。
btrfs subvolume delete ./VirtualBox1
答え4
cd
空のディレクトリで実行して、lsof +D /path/to/emptydir
何が開いているかを確認してください。ディレクトリの内容や使用方法に応じて、何かがディレクトリを非常にすばやく開いて閉じることができます。lsを実行するとディレクトリに何もありませんが、実行時に何かがある場合はそれをキャプチャできますrm -fr emptydir
。この場合は違いはありませんが、実行してみてくださいrmdir emptydir
。
出力の上の合計ls
(insgesamtは合計を意味するようですが?)は空のディレクトリを表します。
ファイルシステムの種類も知っておくと便利です。また、これを実行して役に立つかどうかをfsck
確認することもできます。