Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

Linux 上の不良ディスク ブロックの修復:実証済みの技術

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

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

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

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

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

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

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

SMART データではすべてが正常に表示されているにもかかわらず、特定のディスク ユーティリティから「Bad Superblock」エラーが発生する場合があります。 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 /r c:を実行します。c:を問題の NTFS ボリュームのドライブ文字に置き換えます。表面スキャンを完了するには、Windows を再起動する必要がある可能性が高くなります。これには時間がかかる場合があるため、オペレーティング システムが応答していないように見える場合は、単に時間がかかっているだけです。適切な権限がないというエラーが表示された場合は、続行する前に、[スタート] メニューのコマンド プロンプトを右クリックし、[管理者として実行] を選択します。

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

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

方法 4:badblocks Linux ユーティリティを使用する

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

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

著者について

Linux 上の不良ディスク ブロックの修復:実証済みの技術

ケビン・アロウズ

Kevin Arrows は、10 年以上の業界経験を持つ、経験と知識が豊富なテクノロジー スペシャリストです。彼は Microsoft Certified Technology Specialist (MCTS) 認定を取得しており、最新の技術開発について常に最新の情報を入手することに深い情熱を持っています。 Kevin は、ソフトウェア開発、サイバーセキュリティ、クラウド コンピューティングなどの分野での専門知識と専門知識を示し、テクノロジー関連の幅広いトピックについて幅広く執筆しています。テクノロジー分野への彼の貢献は同僚から広く認められ、尊敬されており、複雑な技術概念を明確かつ簡潔に説明する能力が高く評価されています。


  1. dd を使用して VHD ファイルを物理ハード ドライブに効率的に転送する – 実践ガイド

    仮想ハード ディスク (VHD) ファイルは、VirtualBox およびその他の仮想 x86/x86_64 エミュレーターでの物理メディアの使用をエミュレートする巨大なファイルです。これにより、Windows、OS X、MS-DOS、FreeBSD、OpenBSD、OS/2、さらには Linux ディストリビューション内で他のバージョンの Linux を実行できるようになります。これらのファイルでは、ISO で同じことを行うことができる dd コマンドを使用して、その内容を物理ディスクに直接書き込むことはできませんが、それを行う方法はあります。一部のガイドでは VHD ファイルを ISO に

  2. Ubuntu で「バイナリ ファイルを実行できません:実行形式エラー」を解決するためのクイック ガイド

    公式の apt-get リポジトリを使用している場合にはこのようなことは起こらないはずですが、インターネットからソフトウェアをダウンロードして実行すると、 恐ろしいbash:./nameOfProgram:バイナリ ファイルを実行できません:Exec フォーマット エラーが表示される可能性があります。 。このエラーは、通常、bash:./nameOfProgram.sh:許可が拒否されましたというエラーが続きます。 またはそれに類するものは、ダウンロードしたバイナリと Ubuntu が正しく接続できなかったことを示します。これは、一見有効な Linux バイナリですが、カーネルが現在サポートし