インストール前にディスクを積極的にfsck


12

古いプロセッサでソフトウェアをテストするために使用している古いHP Athlonマシンがあります。頻繁にブラウンアウトが発生しますが、最後のディスクの後にディスクが混乱しました。とても悪いのでfsck、すべての問題を実行してディスパッチできませんでした。OSの新規インストールを実行しましたが、まだfsck苦情があります。

ハードドライブまたはマシンを非難する前に、Linuxをリロードする最後の試みをしたいと思います。ファイルシステムが作成された後、インストールが行われる前に、fsck疑わしいブロックを不良としてマークするために積極的に実行したいと思います。

ディスクは大きく(約500 GB)、Debian 8ディストリビューションは比較的小さい(通常8〜12 GBで十分です)ので、良いブロックが悪いとマークされるかどうかは気にしません。GUIインストールも好きですが、私はそれと結婚していません。

2つの質問があります。

  1. Debian 8はfsck、ベースシステムをインストールする前に実行する選択肢を提供しますか?もしそうなら、どこにありますか?そうでない場合、プロセスは何ですか?

  2. fsckブロックがどれほど積極的に不良とマークされるかを制御する設定はありますか?もしそうなら、それは何ですか?そうでない場合、何を使用できますか?


編集:マシンはHP5850です。BIOSを起動し、ストレージに移動してからドライブ保護システム(DPS)のセルフテストを行った結果、DPSはドライブの交換を推奨しました。DPSは統計情報を提供していなかったため、被害の程度はわかりません。

[古い]新しいSATA IIドライブを12米ドルで購入できることを考慮して、交換するつもりです。時間やエネルギーを無駄にする意味はありません。


関連する参照は次のとおりです。どちらの質問も対処されていないようです。



不良ブロックがまったくある場合、ドライブ全体が物理的に故障しているため、使用しないでください。
クリリス

2
...汚れたように見える「積極的にディスクをfsckが」
A.ミラボー

回答:


19
  1. 「Debian 8は、ベースシステムをインストールする前にfsckを実行する選択肢を提供しますか?

    別の方法として、まずGPartEd CDをダウンロードして書き込みます(またはサムドライブに書き込みます)。インストーラを実行する前に、ブートやお好みに合わせて実行にディスクをパーティションに分割またはちょうど実行の長さで。GPartEdfsckbadblocks

    Debianインストーラーを実行するときは、そこにあるパーティションの使用方法を教えてください。インストーラーは、独自のパーティションを作成する必要はありません。既存のパーティションを使用して完全に満足しています。

  2. 「fsckには、ブロックがどれほど積極的に不良とマークされるかを制御する設定がありますか?そうであれば、それは何ですか?そうでない場合は、何を使用できますか?」

    -cオプションe2fsckの原因は、それが実行するbadblocks不良ブロックをスキャンするプログラムを。badblocksを直接実行することもできます。デフォルトでbadblocksは、読み取り専用テストを実行します。より積極的にする-nために、非破壊的な読み取り/書き込みテストを指定できます。-pオプションを設定して、パスの数を増やすこともできます。

    badblocksパーティションを作成する前に実行することもできます。そうすれば、より高速な-w書き込み専用テストを指定できます。


1
ジョン、+ 1、badblocksハードウェアレベル、またはFSレベルだけでマークする方法はありますか?
heemayl 16

3
@heemayl私の理解では、最新のハードディスクでは、ハードディスクのファームウェアが独自の不良ブロック管理をすべて実行しようとしています。実行の目的はbadblocks、ハードディスクにすべてのセクターを強制的に読み書きさせることです。ハードディスクは、不良セクタの検出と再マッピングを独自に行い、すべてが正常に機能する場合、badblocksハードディスクがこれを行っていることをプログラムに通知しません。
John1024

わかりました。本質的に、fsckはFS上のブロックにマークを付けることができますが、badblocksはディスクファームウェアがマーキングを行うのを助けるだけで、独自のことは何もしませんか?
heemayl

3
@heemayl昔badblocksは、不良セクタのリストを吐き出し、ファイルシステムはそれらを記録していました。現代badblocks では、FSはそれを実行しようとしますが、現代のHDでは、リストは通常​​空です。
John1024 16

1
@heemayl、およびリスト空でない場合、ディスクは通常ひどく壊れているため、交換するのが最善の方法です。
マーク

7

頻繁にfsckエラーが発生する場合は、ドライブが血を吐いている可能性もあります。すべての不良ブロックを不良としてマークしても、さらに多くのブロックが不良になるのはそう長くはかからないでしょう。本当に必要な場合は別のttyに変更してfsckを実行できると思います(Ctrl + alt + F2でtty2に切り替える)が、あなたが言っているのであれば新しいハードドライブがどれだけ必要かを十分に強調することはできません正確です。


「頻繁にfsckエラーが発生する場合...」 -私が確信していないのは、fsck問題の範囲を再インストールした後の一握りの問題なのか、それとも氷山の一角なのか。システムが起動し、いくつかのファイルシステムエラー(4または6)が発生し、読み取り専用として再マウントして回復し、起動します。

@jww上記のファイルシステムエラーの正確な例を投稿してください。
ジョンロイエンハーゲン16

なぜ別のttyに切り替えるのですか?これによりどのような利点が得られますか?
fpmurphy 16

@ fpmurphy1ターミナルウィンドウを開けなかったように聞こえたので、別のttyに切り替えることがシェルに入るための次善の方法です。
ジョンロイエンハーゲン16

@jww:毎回同じブロックが報告されますか、それともブートごとに新しいセットが報告されますか?
TMN

5
  1. いいえ、それだけの価値はないと思います。Fsck(ほとんどのファイルシステムで実装されている)は、ドライブをチェックしません。ファイルシステムのメタデータを検証し、それらをマウントするときにビューが一貫していることを確認します。定義により、空のスペースしか持たないため、インストールの前に行うことはあまり意味がありません。

  2. 代わりにbadblocksを使用してください。データが腐らないようにしたい場合は、スクラブをサポートするファイルシステムを使用してください。Lvm自体それを行うことができます。


3

最新のディスクの信頼性を確認するには、組み込みテストの使用を検討してください。smartctlユーティリティを使用してトリガーできます。例:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

すべてが最近書き込まれたことを事前に確認したい場合は、正しく書き込まれないセクターを発見するために、/ dev / urandomのddのようなものでメディア全体を上書きするか、ランダム化のいずれかでシュレッドすることができますオプション。


3
ddfrom /dev/randomは500GBのドライブで完了するまでに数日かかることに注意してください。
ドミトリーグリゴリエフ

1
typo、thxを修正しました:)誤ってシェルに貼り付けられた場合、真に回復不可能なデータ損失を引き起こすコマンドラインを避けたいため、正確なdd構文を詳しく説明したくありませんでした。
rackandboneman 16

残念ながら、Debianは以下を提供していないようsmartctlですE: Unable to locate package smartctl。Red Hat / Fedoraユーティリティですか?

debian / ubuntuパッケージはsmartmontoolsです。ところで、apt-cache検索を使用して、どのパッケージに何かがあるかを検索してください。
rackandboneman

2

Windowsでのみ実行可能なメーカーの低レベルフォーマットソフトウェア(存在する場合)を入手することをお勧めします(または運が良ければ、Webサイトから画像をダウンロードするブート可能なCD / DVD / USBから) 。報告されているドライブの容量を大幅に削減するために操作を十分に制御できる場合は、@ rackandbonemanが示唆するようにドライブをテストするときにそれらのスペアの多くが置き換えられることを見越して、そうする必要があります。スペアプールを使い果たし、透過的に再マップできない将来の不良セクタを確保するよりも、すべての不良セクタをスペアに交換し、将来の欠陥のために残しておく400 GBまたは450 GBのドライブを用意する方がはるかに優れています。


DOS用SeaToolsを実行できました。SeaToolsは、SMART トリガーしなかったと報告しましたが、これは異常に思われました。長いテスト短いテストがすぐに失敗しました。ディスクのサイズを32 GBに変更しました。その後、長いテストを再度実行しました。SeaToolsは、1190000マークの周りに4つの不良LBAを検出し、それらを修復しました。OSの新規インストールは完璧に完了しました。その後の再起動には問題はありませんでした。交換用のSATA IIドライブを購入したので、既存のドライブが正常に動作しない場合は、ホットスペアとして保管します。

@jww残念ですが、あなたはすでに別の答えを受け入れています。
モンティハーダー

ええ、Q&Aトラップ...正確な答えを得るには、特定の質問をする必要があります。「故障したハードドライブにLinuxをどのようにインストールすればよいか」と尋ねた場合、質問はおそらく閉じられていただろう。

0

より洗練されたツールを使用できない場合の基本的な事項(USBディスクでSMARTが機能しないなど):

dd if=/dev/sdX of=/dev/null bs=1M

すべてのディスクを読み取ります。dmesg読み取ることができなかったセクターがある場合、ログに表示されます。再試行後にそれらを読むことができたかどうかはわかりませんが。それほど良くはありませんbadblocksが、私はその遍在性について言及します。

不良セクタがあり、ディスクに何もしたくない場合:

dd if=/dev/zero of=/dev/sdX bs=1M

すべてのブロックが書き換えられます。読み取り不能なセクターがある場合、再割り当てされたプール内のセクターとスワップされ、再び使用可能になります。

再割り当てが行われているディスクをお持ちの場合、そのディスクはもうすぐ出ます。重要なことには使用しませんが、あまり気にしないデータがあり、それで問題ない場合があります。

SSDの場合、状況は異なり、これらは適用されません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.