特定のファイルにアクセスし、読み取り専用モードで再インストール中にパーティションエラーが発生しました。

特定のファイルにアクセスし、読み取り専用モードで再インストール中にパーティションエラーが発生しました。

私は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)

だから何が起こっているのか理解しています。一部の不良ブロックがエラーを引き起こし、さらなる損傷を防ぐために、読み取り専用モードでドライブを再マウントしています。エラーを元に戻すことができるので、これが特定のファイルであることがわかります。

  1. rootとしてログイン
  2. 走るsync
  3. 停止lightdm(およびすべての子プロセス)
  4. /home開いている残りのファイルをすべて見つけて停止します。lsof | grep /home
  5. 削除/home
  6. 実行fsck /home(エラーの修正)
  7. 再インストール/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が使用されていることを確認し、誤ったdmesginodeでエラーを確認しました。

おすすめ記事