inode番号や他のメタデータを表示しない2つの不思議なエントリがあるディレクトリがあります。ls -li
コマンドラインに入力すると、次の結果が表示されます。
$ ls -li
ls: no s’ha pogut accedir a 'clementine.db-journal': El fitxer o directori no existeix
ls: no s’ha pogut accedir a 'clementine.db-journal': El fitxer o directori no existeix
total 1356072
# Some normal files
? -????????? ? ? ? ? ? clementine.db-journal
? -????????? ? ? ? ? ? clementine.db-journal
# more normal files
最初の?
ものはinodeで、以下のグループは権限、私が知らないグループ、ユーザーとグループ、ファイルサイズと日付、最後にファイル名です。
rm -f clementine.db-journal
役に立たないようです。
lsより低いレベルのディレクトリ分析ツールはありますか?ディレクトリが破損していますか?修正できますか?ディレクトリ全体を置き換える必要がありますか? (そしてmkdir, cp, rm, rmdir
)
状況別情報:
私はClementineを使って音楽を聴きます。 Clementineはsqliteデータベースを使用して情報を保存します。 Clementineデータベースはにあります~/.config/Clementine/clementine.db
。このエントリは停電後に起動すると表示されます(UPSが必要であることがわかります)。それが常駐するファイルシステムはですbtrfs
。
編集する:
@DopeGhotiが述べたように、ファイルシステムチェック(btrfsと同じ)を実行しました。出力は次のとおりです。
$ sudo btrfs check /dev/sda6
Checking filesystem on /dev/sda6
UUID: 5ea692ab-c7b1-4618-be39-d82eaf5c6b34
checking extents
checking free space cache
checking fs roots
root 5 inode 2119729 errors 200, dir isize wrong
root 5 inode 2178458 errors 1, no inode item
unresolved ref dir 2119729 index 541 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5 inode 2219774 errors 1, no inode item
unresolved ref dir 2119729 index 1822 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5591 inode 1491275 errors 200, dir isize wrong
root 5591 inode 2076115 errors 1, no inode item
unresolved ref dir 1491275 index 984 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
root 5591 inode 2119729 errors 200, dir isize wrong
root 5591 inode 2178458 errors 1, no inode item
unresolved ref dir 2119729 index 541 namelen 21 name clementine.db-journal filetype 1 errors 5, no dir item, no inode ref
ERROR: errors found in fs roots
found 810099113984 bytes used, error(s) found
total csum bytes: 789379208
total tree bytes: 1426243584
total fs tree bytes: 368427008
total extent tree bytes: 84656128
btree space waste bytes: 283686669
file data blocks allocated: 1116310724608
referenced 821686456320
これらの項目がいくつかの問題を引き起こすことは明らかですが、まだ存在しています。
答え1
btrfs check
質問のみが表示されます。あなたはbtrfs check --repair
(試行)を使用する必要があります固定する見つけた問題です。 しかし、、ほとんどのドキュメントではお勧めします反対する使用--repair
。ただし、btrfsck
破損したファイルのinodeは実際に公開されるため、次の方法を使用して削除find / -inum XXXX -delete
(XXXX
実際の破損したinodeに置き換え)できます。
実際にファイルを回復しようとしている場合は、これはbtrfsを使用する私の給与評価よりわずかに高いですが、作成者はこの回答正しい方向を教えることもできます。
答え2
別のファイル(.mozillaのprefs.js)を使用して同じ問題が発生しました。
これはFedora 28、btrfs-progs 4.15.1です。
最後に、ワークステーションをシングルユーザーとして使用して、ファイルシステムがアンマウントされ、ファイルシステムbtrfs check --repair
で実行されていることを確認しました。幸いなことに、これは仮想マシンなので、ファイルシステムのスナップショットを最初に撮ることができました。
修正は期待どおりに機能し、最終的に同じファイルエントリに誤って追加された何百万ものinodeを削除しました。この問題の原因は何であるかはわかりませんが、修正プロセスはこの特定のエラーに対して機能します。