私はUbuntu16.04、1 HDDを実行し、いくつかのパーティションを実行しているかなり基本的なシステムを持っています:
sda1-EXT4-100G-/ sda2-EXT4-723.5G-/home sda3-NTFS-100Gwindows) sda5-SWAP-8G
/home
パーティションの特定のディレクトリにある3〜4個のファイルの1つにアクセスしようとすると(問題の原因となる特定のフォルダは/home/path/to/broken/folder
です)、/home
パーティションでエラーが発生して再マウントされます。読み取り専用。 dmesg
は、次のエラーを示しています。
EXT4-fsエラー(デバイスsda2):ext4_ext_check_inode:497:iノード #1415:comm rm:pblk 0不正なヘッダー/エクステント:無効なマジック-マジック0、エントリ0、最大0(0)、深さ0(0) デバイスsda2-8でジャーナルを中止しています。 EXT4 -fs(sda2):ファイルシステムの読み取り専用の再マウント EXT4-fsエラー(デバイスsda2):ext4_ext_check_inode:497:inode #1417:comm rm:pblk 0不正なヘッダー/エクステント:無効なマジック-マジック0、エントリ0、最大0(0)、深さ0(0) EXT4-fsエラー(デバイスsda2):ext4_ext_check_inode:497:iノード #1416:comm rm:pblk 0不正なヘッダー/範囲:無効なマジック-マジック0、エントリ0、最大0(0)、深さ0(0)
だから私は何が起こっているのか理解しています...いくつかの悪いブロックがエラーを引き起こしていて、さらなる破損を防ぐために読み取り専用でドライブを再マウントしています。エラーを元に戻すことができるので、これらの特定のファイルであることがわかります。
sync
lightdm
(およびすべてのサブプロセス)を停止しています/home
でそれらを見つけることにより、lsof | grep /home
に残っているすべての開いているファイルを停止します/home
fsck /home
の実行(エラーの修正)/home
すべてが再び正常になり、読み取りと書き込み、同じファイルに再度アクセスしようとするまで、このプロセス全体が繰り返されて、再度修正されます。
私がファイルにアクセスしようとした方法は、ls /home/path/to/broken/folder
とrm -r /home/path/to/broken/folder
を実行することです。そのため、ドライブのその部分でのあらゆる種類のHDD操作でエラーが発生し、再び読み取り専用になります。
私は正直にファイルを気にしません、私はそれらをなくしたいだけです。 /home/path/to/broken/folder
フォルダー全体を削除してもかまいませんが、これを試みるたびに失敗し、読み取り専用になります。
/home
ドライブ全体を再フォーマットせずにこれを修正するにはどうすればよいですか?
---(編集1:
ハードドライブでbadblocks -v /dev/sda2
を実行しましたが、不良ブロックはなく、きれいに出力されました。どんな助けでも大歓迎です。
編集2:
まだこれに対する解決策を探しています。以下に役立つ可能性のあるいくつかの情報:
$ debugfs -R'stat&lt1415> '/dev/sda2 debugfs 1.42.13(17-May-2015) iノード:1415タイプ:通常モード:0644フラグ: 0x80000 生成:0バージョン:0x00000000 ユーザー:0グループ:0サイズ:0 ファイルACL:0ディレクトリACL:0 リンク:1ブロック数:0 フラグメント:アドレス:0番号:0サイズ:0 ctime:0x5639ad86- 2015年11月4日水曜日01:02:30 atime:0x5639ad86- 11月4日水曜日01: 02:30 2015 mtime:0x5639ad86-Wed Nov 4 01:02:30 2015 追加のiノードフィールドのサイズ:0 EXTENTS:
今、私はこれを自分で見て、破損していないiノードであると思われるものと比較しました。
$ debugfs -R'stat&lt1410> '/dev/sda2 debugfs 1.42.13(17-May-2015) iノード:1410タイプ:通常モード:0644フラグ: 0x80000 世代:0バージョン:0x00000000 ユーザー:0グループ:0サイズ: 996 ファイルACL:0ディレクトリACL:0 リンク:1ブロック数:0 フラグメント:アドレス:0番号:0サイズ:0 ctime:0x5639ad31- 2015年11月4日水曜日01:01:05 atime:0x5639ad31- 2015年11月4日水曜日01:01:05 mtime:0x5639ad31- 2015年11月4日水曜日01:01:05 追加のiノードフィールドのサイズ:0 EXTENTS: (0):46679378
ここでの主な違いは、私が信じていることを太字で示しています。他の破損していないiノードを調べたところ、サイズと範囲がゼロ以外の1410
に似たものが表示されています。
悪いヘッダー/エクステントはここでは意味があります...エクステントはありません....これを修正するにはどうすればよいですか?
銀の大皿で私より賢い人にこの質問を渡したような気がします。食事(答え)が何であるかわかりません!
最後に、別のサイトで他の誰かからの回答を見つけ、iノードをゼロにしてシステムを再チェックしました。それだけでした。
debugfs -w/dev/sda2 :clri&lt1415> :clri&lt1416> :clri&lt1417> :q fsck -y /dev/sda2
この問題を抱えている他の人には、不良マウントでfind
を使用して不良inodeを見つけ、dmesg
で不良inodeのエラーをチェックしました。