Linuxで不良ブロックを修復する方法



問題を排除するために楽器を試してください

Linuxの一部のディストリビューションをMicrosoftWindowsのバージョンとデュアルブートするユーザーは、特定のパーティションを縮小または拡大して、1つのオペレーティングシステムまたは他のオペレーティングシステム用のスペースを残そうとする場合があります。最終的に、LinuxのGPartedまたはWindowsのchkdskから、不良セクタがあったという警告が表示される場合があります。 Linuxの個々のユーザーが同じになる場合があります。それにもかかわらず、ユーザーは実際には、同じように見せかけた2つの異なるタイプの不良セクタに関する通知を受け取る可能性があります。 1つは、ディスクプラッタまたはNANDメモリセルの物理的形状に問題があることを示す不良セクタの従来の通知です。これは、不良セクタと不良ブロックの間にマイナーではあるが非常に技術的な違いがありますが、ほとんどの人が不良ブロックについて不平を言うときの意味です。ただし、マシンが誤ってセクターに不良のフラグを立てることはめったにありません。



これらはソフト不良セクタまたはソフトウェア不良ブロックと呼ばれ、単純なファイルシステム操作で修正できます。ただし、不良ブロックへの書き込みの危険性を考慮すると、固定ボリュームを扱う場合は、SMARTデータ検査から調査を開始することをお勧めします。これは非破壊的であり、先に進む前にジオメトリの問題を取り除くことができます。固定ボリュームで作業していない場合は、次の方法で調査を開始することをお勧めします。



方法1:SMARTデータを確認する

これらの不良セクタは単なるソフトウェアエラーであると簡単に信じられますが、そうであるかどうかを確認する方法があります。 SMARTデータを使用すると、ディスク自体のファームウェアを簡単に検査して確実に知ることができます。 UnityのDash、Xfce4のWhiskerメニュー、LXDEのAccessoriesメニュー、またはKDEのGNOMEApplicationsメニューからGNOMEDisksUtilityを開きます。ターミナルでgnome-disksと入力し、Enterキーを押して開始することもできます。左側の列のポインタでハードディスクを強調表示した後、右側のウィンドウコントロールの横にあるメニューをクリックします。ほとんどのGNU / Linuxインストールでは、ディスクユーティリティはデフォルトでプライマリハードディスクになります。



メニューから[SMARTData&Self-Tests]を選択します。 Ctrlキーを押しながらSキーを押して、このウィンドウを開くこともできます。これにより、ドライブの現在の状態が表示されます。値が空白の場合は、[セルフテストの開始]ボタンをクリックして、ディスクにセルフチェックを強制的に実行させます。上部の総合評価行には、GNOME DisksUtilityがドライブについてどのように考えているかが示されます。

全画面表示でも、SMART属性をスクロールする必要がある場合があります。再割り当てカウントと呼ばれるオプションに特に注意してください。これは、すでに再割り当てされているセクターの数を示しています。不良セクタが多数ある場合は、ドライブが完全に故障する前にドライブを交換することをお勧めします。



方法2:正しいスーパーブロックを確認する

SMARTデータにすべてが順番に表示されていることに気付く場合もありますが、特定のディスクユーティリティから「BadSuperblock」エラーが発生している可能性があります。 SDカード、USBメモリスティック、またはその他のそのようなメモリを使用している場合、SMARTデータを読み取ることはできませんが、それでもエラーが発生する可能性があります。これはソフトウェアの問題である可能性があります。次のようなコマンドの実行の問題を検討してください。

fsck.ext4 / dev / sda

これはおそらく、ファイルシステムのマスターブロックを参照するスーパーブロックが不良であることを示しています。これはCLIエラーの結果であり、真の不良ブロックではありません。 / dev / sdbはパーティションではなくドライブを参照しているため、fsckコマンドはスーパーブロックがないスーパーブロックを探し、何かが間違っていると誤って判断します。幸い、これは破壊的なコマンドではありませんでした。実行:

sudo fsck.ext4 / dev / sda1

ファイルシステムがクリーンであることがわかります。 extの後に続く番号が、ボリュームのextバージョンと一致していることを確認してください。

FAT12 / 16/32、NTFS、またはHFS / HFS +ボリュームでext2 / 3/4 fsckを実行しようとした場合にも、このエラーが発生する可能性があります。整合性チェッカーは混乱し、何かがおかしいと思いますが、実際にはファイル構造のタイプが期待どおりではありません。使用しているビットバージョンに関係なく、FATボリュームでfsck.vfatまたはdosfsckを実行します。 dosfsckまたはfsck.vfat(Linuxの一部のバージョンではfsck.msdos)の後に-tスイッチを使用して、読み取り不可能なクラスターを不良ブロックとしてマークすることができます。

方法3:NTFSボリュームの不良ブロックをチェックする

Microsoft WindowsとLinuxをデュアルブートしていて、NTFSボリュームでスーパーブロックまたはその他の不良セクタエラーがあると仮定して、Windowsを再起動し、コマンドラインからchkdsk / rc:を実行し、c:をのドライブ文字に置き換えます。問題のNTFSボリューム。表面スキャンを完了するには、Windowsを再起動する必要があります。これには時間がかかる場合があるため、オペレーティングシステムが応答していないように見える場合は、問題の時間の長さが原因です。適切な権限がないというエラーを受け取った場合は、[スタート]メニューのコマンドプロンプトを右クリックし、[管理者として実行]を選択してから続行してください。

LinuxでのみNTFSボリュームを使用している場合は、それほど頼りになることはありませんが、不良ブロックエラーが単にタイプの不一致によるものである場合は、それを修正する方法があります。 sudo ntfsfix / dev / sdb1を実行し、/ dev / sdの後の文字と数字を正しいデバイスとパーティション識別子に置き換えます。 sudo fdisk-lがインストールされている場合は、いつでもsudo fdisk-lを実行するか、GNOME DisksUtilityに戻ってシステムに接続されているすべてのボリュームの名前を確認できます。ダーティビットをクリアしたい場合は、sudo ntfsfix -d / dev / sdb1として実行できます。

不良セクタのある古いディスクを新しいボリュームに複製した場合など、物理ハードウェアジオメトリが原因ではないソフト不良ブロックがNTFSボリュームにあることが確実な場合は、sudo ntfsfix -bd / dev / sdb1を実行します。あなたが望むボリューム。これにより、不良ブロックマーカーリストがリセットされます。

方法4:badblocksLinuxユーティリティの使用

ライブISOLinuxバージョンを起動した後、またはext2、ext3、またはext4ファイルシステムをアンマウントする他の方法を見つけたら、実際にsudo fsck.ext4 -c / dev / sda1を実行して、不良ブロックの読み取り専用スキャンを実行できます。当然、正しく実行するには、/ dev / sdの後に正しいボリューム識別子を使用し、fsck.extの後に正しいextバージョン番号を使用する必要があります。代わりに-ccを指定すると、プログラムはさらに広範な非破壊読み取り/書き込みテストを使用します。

これはbadblocksユーティリティを使用する通常の方法ですが、技術的には寂しいので使用することもできます。デバイス名に対してsudobadblocks -nを実行して、デバイス名を単独で実行し、ターミナルでbadblocksを報告します。 -wオプションを使用して書き込みモードテストを使用できますが、-nオプションと-wオプションは相互に排他的であるため、一緒に使用しないでください。データのあるボリュームで-wオプションを使用すると、すべてが完全に消去されるため、いかなる状況でも使用しないでください。この場合、データが保持されるため、遅い-nオプションを使用してください。 -wオプションは、消去してもかまわないボリュームには適しています。 -vオプションはどちらかと組み合わせることができ、データの破損を検査するのに役立つ詳細な出力を端末に提供します。後で見ることができるように、いつでもテキストファイルの名前で-oオプションを使用して情報を書き出すことができます。スナップショットを取得するには、sudo badblocks -nv -o badblocks.log / dev / sdb1として実行することをお勧めします。これは、本物の不良ブロックがある場合に多くの情報が表示されるためです。

読んだ5分