web-dev-qa-db-ja.com

Ubuntuマシンの不良セクタについてブート/システムドライブをスキャンする方法は?

私のワークステーションであるUbuntuv14.04(Trusty)マシンには、2つのシステムブートオプションがあります。 Windows(protoolsと音楽録音用)を実行できますが、ソフトウェア開発作業のためにUbuntuを起動することがよくあります。

古いバージョンのUbuntuを18.04LTSにアップグレードする必要があります。これを行う前に、システムドライブの状態が心配です。 OSのアップグレードの問題に取り組む前に、このパーティションをスキャンして不良セクタやその他の問題がないか調べたいと思います。ドライブの状態が悪い場合は、代わりに新しいドライブを購入して、アップグレードしたOSをそこにインストールすることを選択する場合があります。

fsckを実行することを検討しましたが、 この警告 :を見ました。

FSCKを実行する前に注意すべきことが1つあります。 「umount」コマンドを使用してファイルシステムをアンマウントする必要があります。マウントされたファイルシステムをFSCKで修正すると、元の問題よりも多くの損傷が発生する可能性があります。

システムドライブをアンマウントできませんか?それは私のシステムを不安定にする良い方法のように聞こえます。

また、現在実行中のUbuntu OSをインストールしたディスクパーティションは、2TBの回転ディスク上の1つのext4パーティションにすぎないことも指摘しておきます。その上の他のパーティションは、個別のWindows7ブートを実行するためのNTFSです。

1
S. Imp

SMART vs. fsck

xenoidは正しいSMART統計はドライブの状態のより信頼できる指標です。ただし、古いドライブは統計をキャプチャしない場合があります。USBドライブでLinuxを起動している可能性がある他のリーダーの場合はUSBインターフェースを介してSMART統計にアクセスできます。

fsckは現在の問題を見つけて修正できます。過去の問題や、ドライブがライフサイクルのどこにあるかを明らかにする統計については何も教えてくれません。 SMART統計を取得できない場合でも、fsckは何もないよりはましです。少なくとも、ドライブが停止中であるかどうかを示す方法があります。急ぎ。

また、それは「どちらか一方」の状況ではないことに注意してください。 SMARTはドライブの状態を示しますが、現在の問題を実際に修正することはできません。したがって、SMARTを使用する場合でも、fsckを実行することをお勧めします。

fsckを使用してドライブの状態を示す

Fsckを実行すると、現在の破損が修正され、不良セクタが処理されます。不良セクタがランダムなイベント、または製造されたが最初に発見されなかった限界スポットであった場合、それらは捕捉されて修正されます。そのため、メーカーはドライブにいくつかのスペアセクターを残しています。それらを発見することはまれですが、予期しないイベントではありません。

ただし、プラッタの劣化によりドライブが停止し始めると、新しい不良セクタが定期的に発見されます。 fsckスキャンを数日ごとに数週間または1か月繰り返し、その間に新しい不良セクタが表示された場合、少なくともドライブがすでにサポート終了になっていることがわかります。できるだけ早くそれを使用するのをやめ、あなたがまだできる間にあなたのファイルを何か他のものに移すために残っている人生を使ってください。

fsckの実行

これはあなたの最初の質問に私たちをもたらします。 fsckはchkdskと機能が似ており、同じ理由で、マウントされているドライブをスキャンできません。解決策はほとんど同じです。ドライブを使用する前にスキャンを実行するか、スキャンしたドライブをアンマウントできるように別のドライブからスキャンを実行します。

起動したドライブからchkdskを実行すると、次回の起動時にスキャンがスケジュールされるというメッセージが表示されます。同様に、起動時にGRUBで[詳細オプション]を選択してfsckを実行できます。これにより、カーネルを選択し、通常またはリカバリモードで起動できます。最新のカーネルのリカバリモードを選択します。それはいくつかのチェックとクリーンアップを実行し、次に何をすべきかについてのオプションのメニューにあなたを置きます。それらのオプションの1つはfsckを実行することです。このオプションは、ドライブをアンマウントしてfsckを実行します。

このプロセスの詳細については、こちらをご覧ください: https://www.tecmint.com/fsck-repair-file-system-errors-in-linux/

もう1つの方法は、ライブLinuxセッションを起動し、そこからfsckを実行することです。上記のリンクに気付いた場合は、パラメータとして追加することで、スキャンするドライブ/パーティションを指定できます。ライブセッションでドライブが識別されることを確認します(コンピューターのメインドライブの場合、おそらくsdaというラベルが付けられますが、別のデバイスから起動しても、デバイスに同じラベルが付けられない場合があります)。

fsckと不良ブロック

アクションは、fsckを実行するよりも少し複雑です。 fsckはファイルシステムの問題を扱います。それらは破損または不良セクタから発生する可能性があり、fsckは破損したファイルの回復を試みます。ただし、fsck自体は、不良ブロックが検出およびマークされるという根本的な問題を処理しないため、再利用されません。その部分は、ドライブが寿命に達しているかどうかを知るための中心的な役割を果たします。ただし、ドライブコントローラは、fsckのアクティビティを通じて問題を検出した場合にそれを行う可能性がありますが、ドライブEOLのインジケータである不良ブロックに気付くことはありません。

不良ブロックを明示的に処理するために、badblocksと呼ばれる別のユーティリティが使用されます。ここで物事は少し複雑になります。ここで説明するようなプロセスを使用して、そのユーティリティを手動で実行できます。 https://mintguide.org/system/283-how-to-check-and-fix-the-disk-for-errors-and-bad -sectors-in-linux-mint.html 。ただし、それほど複雑ではない方法があります。

Fsckを実行すると、特定のファイルシステムで動作するように設計された別のユーティリティが呼び出される場合があります。 extファイルシステム(Ubuntuで使用されたものである可能性が高い)の場合、e2fsckを呼び出します。 fsckの代わりにe2fsckを直接実行する場合、コマンドに小文字のcパラメーターを追加すると、badblocksユーティリティ自体を実行できます( https://linux.die.net/man/を参照) 8/e2fsck )。この記事では、e2fsckを使用してこれを行う方法について説明します: https://www.techwalla.com/articles/how-to-fix-bad-sectors-in-linux

fsckには小文字のcパラメーターはありませんが、まったく異なることを行う大文字のCパラメーターがあります(完了バーを表示します。 https:// linuxを参照)。 die.net/man/8/fsck )。

Linuxコマンドでは大文字と小文字が区別され、 https://mintguide.org/system/283-how-to-check-and-fix-the-disk-for-errors-and-)などの記事を見てきました。 bad-sectors-in-linux-mint.html 、fsckで小文字のcパラメーターを使用していることを示しています。記事が間違っているのか、fsckがパラメーターをe2fsckに渡すのに十分賢いのかはわかりません。私はそれが最初にそれをテストせずに仕事をすることを信頼しません、そしてそれからあなたのタイピングに細心の注意を払います。

1
fixer1234

ファイルシステムをスキャンしても、ハードウェアの状態についてはあまりわかりません。

これを行う通常の方法は、ディスクの SMART data を調べることです。 Linuxでは、これはsmartctlパッケージのsmartmontoolsコマンドを使用して実行されます。

注:一部のフィールドの内容はあまり明確に定義されていません。巨大な数値は、複数のバイト/ショート値がlong intでエンコードされていることを示しており、これらをデコードする必要があります(これはメーカー/ドライブに依存する可能性があります)

以下は私のメモファイルの1つからコピーしたもので、完全に自分のものではないかもしれません。

SMARTデータ

https://help.ubuntu.com/community/Smartmontoolshttps://www.isalo.org/wiki.debian-fr/Smartmontools を参照してください。

セットアップ

Synaptic Package Manager(SynapticHowtoを参照)から、またはターミナルに次のように入力して、smartmontoolsパッケージをインストールできます。

Sudo apt-get install smartmontools 

ドライブがSMARTをサポートしていることを確認するには、次のように入力します。

Sudo smartctl -i /dev/sda 

ここで、/ dev/sdaはハードドライブです。これにより、ドライブに関する簡単な情報が得られます。最後の2行は次のようになります。

SMART support is: Available - device has SMART capability.
SMART support is: Enabled 

ドライブでSMARTが有効になっていない場合は、次のように入力して有効にできます。

Sudo smartctl -s on /dev/sda 

ドライブがマウントされている間は、パフォーマンスが多少低下する可能性がありますが、任意のタイプのテストを実行できます。ドライブで実行できるテストには、次の3つのタイプがあります。

Short
Extended (Long)
Conveyance 

各テストの実施にかかる時間の見積もりを見つけるには、次のように入力します。

Sudo smartctl -c /dev/sda 

最も有用なテストは拡張テスト(長い)です。次のように入力して、テストを開始できます。

Sudo smartctl -t long /dev/sda 

次のように入力すると、ドライブのテスト統計を表示できます。

Sudo smartctl -l selftest /dev/sda 

SMART IDEドライブの詳細情報を表示するには、次のように入力します。

Sudo smartctl -a /dev/sda 

SATAドライブの詳細なSMART情報を表示するには、次のように入力します。

Sudo smartctl -a -d ata /dev/sda

結果を理解する:

https://Lime-technology.com/wiki/Understanding_SMART_Reports

注:これは、SCSIスタックを介して実行され、/ dev/sdXとして表示される新しいカーネルのIDEドライブでも機能します。

1
xenoid