私はUbuntu 16.04を実行する非常に基本的なシステム(この質問はUbuntuに限定されず、ext4
パーティションによって異なります)、1つのHDD、およびいくつかのパーティションを実行しています。
sda1-EXT4-100G-/ sda2-EXT4-723.5G-/ホーム sda3-NTFS-100G-(ウィンドウズ) sda5-スイッチ-8G
/home
パーティションの特定のディレクトリ(問題を引き起こす特定のフォルダは/home/path/to/broken/folder
)の3〜4つのファイルのいずれかにアクセスしようとすると、パーティションに/home
エラーが発生し、読み取り専用として再マウントされます。dmesg
次のエラーが表示されます。
EXT4-fs エラー (デバイス sda2): ext4_ext_check_inode:497:inode1415:comm rm:pblk 0エラーヘッダ/範囲:無効なマジック - マジック0、エントリ0、最大0(0)、深さ0(0) デバイス sda2-8 のロギングを中止します。 EXT4-fs(sda2): ファイルシステムを読み取り専用で再マウントします。 EXT4-fs エラー (デバイス sda2): ext4_ext_check_inode:497: inode1417:comm rm:pblk 0エラーヘッダ/範囲:無効なマジック - マジック0、エントリ0、最大0(0)、深さ0(0) EXT4-fs エラー (デバイス sda2): ext4_ext_check_inode:497: inode1416:comm rm:pblk 0エラーヘッダ/範囲:無効なマジック - マジック0、エントリ0、最大0(0)、深さ0(0)
だから何が起こっているのか理解しています。一部の不良ブロックがエラーを引き起こし、さらなる損傷を防ぐために、読み取り専用モードでドライブを再マウントしています。エラーを元に戻すことができるので、これが特定のファイルであることがわかります。
- rootとしてログイン
- 走る
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
これを試みるたびに失敗し、読み取り専用状態で停止します。
ハードドライブで実行しましたが、badblocks -v /dev/sda2
結果は不良ブロックなしでクリーンでした。どんな助けでもまだ大いに感謝します。
それでも解決策を探しています。これが役に立つかもしれないいくつかの情報です。
$debugfs -R 'stat <1415>' /dev/sda2 debugfs 1.42.13(2015年5月17日) Inode: 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 - 2015年11月4日水曜日01:02:30 時間:0x5639ad86 - 2015年11月4日水曜日01:02:30 追加のinodeフィールドサイズ:0 範囲:
今、私はこれを直接見て、無傷のinodeと思われるものと比較しました。
$debugfs -R 'stat <1410>' /dev/sda2 debugfs 1.42.13(2015年5月17日) Inode: 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 時間:0x5639ad31 - 2015年11月4日水曜日01:01:05 追加のinodeフィールドサイズ:0 範囲: (0):46679378
主な違いと思われる部分を太字にしました。他の破損していない inode を調べたところ、ゼロ以外の1410
サイズと範囲に似た内容が表示されました。
ここでは無効なヘッダー/範囲が意味があります。範囲はありません。/home
パーティション全体を再フォーマットせずにこの問題を解決するにはどうすればよいですか?
本当に私よりもスマートな人にこんな質問を渡したような感じがします。食事(答え)が何であるかわからない!
答え1
ついに他のサイトで他人の回答を見つけました。 inodeを0に設定してシステムを再確認してください。それがすべてです!
debugfs -w /dev/sda2 :clri<1415> :clri<1416> :clri<1417> :キュー fsck -y /dev/sda2
この問題が発生している他の人のために、誤ったfind
インストールで無効なinodeが使用されていることを確認し、誤ったdmesg
inodeでエラーを確認しました。