チェックディスクを実行する方法は?


84

ディスクに不良セクタが存在する可能性があります。ext3ファイルシステムを使用しました。

Windowsのエラーチェックツールに最適なツールはどれですか?


@PabloBianchi:その質問のスコープはまったく同じです。それらをマージするためにmodにフラグを立てています。
デビッドフォースター

回答:


101

ディスク

不良セクタをチェックするには、SMARTデータをチェックします。おそらく、ディスクユーティリティ(Palimpsest)を起動することにより、最もアクセスしやすいデータです。不良ブロックが表示されない場合でも、確実にセルフテストを開始してください。

プログラムはgnome-disk-utilityパッケージにバンドルされています。走るgksudo gnome-disks

パリンプセストのスマート

または、Ubuntu 16.04バージョン(3.18):

ディスクからのSMART

不良ブロック

使用することもできます badblocks

sudo badblocks -sv /dev/sda

単にチェックするか、最初に結果を一時ファイルに書き込んでチェックして修正するには:

sudo badblocks -sv /dev/sda  > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1

ディスク全体をチェックし、/ dev / sdaで検出されたすべての不良ブロックを出力します。

badblocksマニュアルから:

重要な注意: badblocksの出力をe2fsckまたはmke2fsプログラムに供給する場合、生成されるブロック番号はファイルシステムで使用されているブロックサイズに大きく依存するため、ブロックサイズを適切に指定することが重要です。 。このため、ユーザーはbadblocksを直接実行せず、e2fsckおよびmke2fsプログラムの-cオプションを使用することを強くお勧めします。

fsck

fsck不良セクタを見つけるのに役立ちませんが、さらに悪いことに、多くの不良セクタがある場合、データをさらに損傷する可能性があります。ディスクが正常な場合にのみ使用してください。


1
実際、badblocksのマニュアルは直接使用することを推奨せず、「-c」(読み取り専用チェック用)または「-cc」(読み取り/書き込みチェック用)オプションを使用してユーザーをe2fsckに誘導します。
mrówa

2
注として、13.04では、ubuntuメニューから「ディスク」を実行するだけでpalimpsestを実行しますが、セルフテストを起動するオプションが表示されません(おそらく1つのドライブしかなく、それが実行されているためUbuntu ...)
rogerdpack

2
@マニュアルは唯一の「不良ブロックの出力は、e2fsckはやmke2fsのプログラムに供給されようとしている」場合があることを行うために言うmrówa
ジョン

1
すべてのディスクをリストするためにsudo fdisk -lを使用する情報を入力してください
Kangarooo 14

2
これは現在gnome-disksと呼ばれています
エンドリス14年

74

この回答全体を通して、ストレージドライブはパスのブロックデバイスとして表示されると仮定します/dev/sdc。現在の設定でストレージドライブのパスを見つけるには、次を使用します。

  • Gnome Disks Gnomeディスクをインストールする(以前のGnome Disk Utility、別名palimpsest)、GUIが利用可能な場合、または
  • 出力の端子を見にlsblkls -l /dev/disk/by-id、大きさ、パーティショニング、製造元とモデル名で右のデバイスを探してみてください。

基本チェック

  • 完全に応答しないメディアのみを検出します
  • ほぼ瞬時(メディアがスピンダウンまたは破損しない限り)
  • 安全
  • 読み取り専用メディア(CD、DVD、BluRayなど)で動作します

記憶媒体は、単にまったく動作しないこともあります。カーネルとディスクマネージャーにはブロックデバイスとして表示されますが、パーティションテーブルを保持する最初のセクターは読み取りできません。これは次の方法で簡単に確認できます。

sudo dd if=/dev/sdc of=/dev/null count=1

このコマンドの結果、「入出力エラー」に関するメッセージが表示された場合、ドライブが破損しているか、期待どおりにLinuxカーネルと対話できません。前者の場合、少し運が良ければ、適切に設備されたラボを備えたデータリカバリスペシャリストがそのコンテンツを回収できます。後者の場合、別のオペレーティングシステムを試してみる価値があります。(特別なドライバーなしでWindowsで動作するUSB​​ドライブに出くわしましたが、LinuxやOS Xでは動作しません。)

SMARTセルフテスト

  • 調整可能な徹底
  • 瞬時から低速または低速(テストの徹底度による)
  • 安全
  • 近い将来に失敗する可能性について警告する

それをサポートするデバイスは、SMARTを介して健康状態を問い合わせたり、さまざまな完全性の整合性セルフテストを実行するように指示したりできます。これは一般的に最良のオプションですが、通常は(非古代の)ハードディスクおよびソリッドステートドライブでのみ利用可能です。ほとんどのリムーバブルフラッシュメディアはサポートしていません。

その他のリソースと手順:

読み取り専用チェック

  • 一部のフラッシュメディアエラーのみを検出する
  • ハードディスクに対して非常に信頼できる
  • スロー
  • 安全
  • 読み取り専用メディア(CD、DVD、BluRayなど)で動作します

デバイス全体に書き込みを行わずに読み取り整合性をテストするには、次のbadblocks(8)ように使用できます。

sudo badblocks -b 4096 -c 4096 -s /dev/sdc

特にストレージドライブが実際に破損している場合は、この操作に時間がかかることがあります。エラーカウントが0を超えると、不良ブロックがあることがわかります。不良ブロックの正確な量(および場所)に関心がない場合は、いつでも(電源障害時のように強制的に)操作を安全に中止できます。optionを使用すると、エラー時に自動的に中止することができます-e 1

高度な使用法に関する注意:の出力を再利用する場合は、含まれるファイルシステムe2fsckのブロックサイズ(-b)に設定する必要があります。また、-cスループットを改善するために、一度にテストされるデータ量(、ブロック単位)を調整することもできます。16 MiBはほとんどのデバイスで問題ありません。

非破壊読み取り/書き込みチェック

  • 非常に徹底的
  • 最も遅い
  • 非常に安全(電源障害または断続的なカーネルパニックがない限り)

時々-特にフラッシュメディアでは-書き込みを試みたときにのみエラーが発生します。(これ、実際に持っているよりも大きなサイズをアドバタイズする(フラッシュ)メディアを確実に検出しません。代わりにFight Flash Fraudを使用してください。)

  • ファイルシステムマウントされているドライブでは 絶対に使用しないでください!badblocks強制しない限り、とにかくそれらの操作を拒否します。

  • この操作を強制的に中断しないでください! Ctrl+ C(SIGINT / SIGTERM)および正常な早期終了の待機killall -9 badblocksは問題ありませんが、(SIGKILL)はできません。強制終了badblocksすると、現在テストされているブロック範囲の元のコンテンツを復元できず、ジャンクデータで上書きされたままになり、ファイルシステムが破損する可能性があります。

非破壊的な読み取り/書き込みチェックを使用-nするには、上記のbadblocksコマンドにオプションを追加します。

破壊的な読み取り/書き込みチェック

  • 非常に徹底的
  • もっとゆっくり
  • ドライブ上のすべてのデータを消去します

上記と同様ですが、書き込みテストの実行後に以前のドライブの内容を復元することなく、少し速くなります。とにかくデータが消去されるため、強制的な終了は(追加の)負の結果なしに残ります。

破壊的な読み取り/書き込みチェックを使用-wするには、上記のbadblocksコマンドにオプションを追加します。


43

fsck-Linuxファイルシステムの確認と修復。を使用して呼び出す

fsck /dev/sda1

/ dev / sda1は、確認するドライブです。詳細については、「man fsck」を参照してください。

デバイスに不良ブロックをチェックする「badblocks」コマンドもあります。

チェック時にドライブをアンマウントする必要があるため、ルートパーティションをチェックするには、パーティションのルートに「forcefsck」ファイルを作成し、再起動する必要があります。デバイスは、次回の起動時にチェックされます。

sudo touch /forcefsck
sudo reboot

または、Live CDから起動し、そこからチェックを実行できます。


おかげで、マシンはモニターなしで実行されています。再起動後にチェックの出力にアクセスする方法はありますか?
ギヨームコテ

ファイルを作成して再起動しましたが、本当に迅速で、boot.logに新しいものはありません。
ギヨームコテ

fsckは非常に簡単なチェックを行うだけで、オプション-cを試して不良ブロックをチェックしました。
ギヨームコテ

fsck -cがちょうど言った:/ dev / sda9:不良ブロックのiノードを更新する。不良ノードの数とそれらが表すファイルシステムの割合に関する情報はありません。
ギヨームコテ

sudo dumpe2fs -b /dev/sda9。しかし、ディスクがファイルシステム(SMART、badblockなど、私の投稿を参照)ではなく、不良セクタを処理する方が良いと思います。
手配

20

不良ブロック

コマンドを実行している不良ブロックを確認できます

  1. sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result非破壊読み取り/書き込みテスト用。これbad-blocks-resultにより、破損したセクターで呼び出されるファイルが生成されます。
    • -n非破壊読み取り/書き込みモードを使用します。デフォルトでは、非破壊的な読み取り専用テストのみが実行されます。

    • -s現在の不良ブロックがディスク上を通過する大まかな割合を書き出すことにより、スキャンの進行状況を表示します。

    • -v詳細モード。

  2. 次に、sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]可能であれば、不良セクタの場所をファイルシステムに伝えて、そこからデータを移動します。

これについては、こちらでさらに読むことができます。


1
後に不良ブロックを続行するか、あなたは(私のような)テキストファイルに不良セクタをエクスポートするのを忘れた場合は、この答えはあなたを助ける:superuser.com/a/693000/218025
chelder

badblocksを使用してWindowsパーティションを確認できますか?それともどういうわけかそれを損傷する可能性がありますか?
プライベート

1
@Private新しい質問がある場合は、上部の[質問する]リンクを使用してください。
ジョン

fsckコマンドが失敗してbtrfs、ファイルシステム。
ルイスデスーサ

20

smartctl

IMO smartctlはより優れたツールです。おそらく最初にインストールする必要があります

sudo apt-get install smartmontools 

それから

sudo smartctl -a /dev/sda | less

ドライブの正常性データ、属性、および利用可能なテスト結果を印刷します。終了するには、と入力しqます。代わりに

sudo smartctl -H /dev/sda

健康データを印刷するだけです。

バックグラウンドで新しい短い(数分)または長い(数時間まで)自己テストを開始するには:

sudo smartctl -t [short|long]

GSsmartControlホームページ)およびGnomeディスクは、必要に応じてグラフィカルなフロントエンドです。

こちらもご覧ください


5
デバイスがSMARTをサポートしている場合の優れたソリューション。多くの(安価な)リムーバブルフラッシュドライブや非常に古いハードドライブにはありません。
デビッドフォースター14年

smartctl「Unknown USB bridge」、「-dオプションでデバイスタイプを指定してください」と報告されたとき、最初は困惑しました。smartmontools.org/wiki/Supported_USB-Devicesで必要なデータを見つけました。
-nobar

10

F3(Fight Flash Fraud)は、偽のフラッシュドライブ(実際の容量が公示容量の一部であるフラッシュドライブ)を追加で検出する別のオプションです。

  1. F3をインストールする

    sudo apt install f3
    
  2. ドライブを挿入します

  3. ドライブの空き領域にテストデータを書き込みます(ドライブのマウント先を確認しますlsblk

    f3write /media/$USER/D871-DD7C/
    
  4. テストデータを読む

    f3read /media/$USER/D871-DD7C/
    

参照:

Badblocksはうまく機能しますが、偽のフラッシュドライブを検出するようには設計されておらず、エラーを報告しない場合があります


badblocksセクターが不良/破損としてマークされている、-wまたはfsckマークされているため、使用されません。f3はのようなものを返すことができますがCorrupted: 16.01 MB (32784 sectors)、それらを不良セクタとしてマークしますか?または、そのためにまだ不良ブロックが必要ですか?私がしようとしているdumpe2fs -bとそれはIDがマークされていないようです。
パブロA

4

進行状況インジケーターを表示しながら、ディスク全体をテスト読み取りできます。

time sudo pv /dev/sdc >/dev/null

特定のディスクの問題は、報告されたI / Oエラーとして現れます。これは、dd進行状況インジケーターによるものよりも少し優れています。コマンドラインインターフェイスはもう少し標準的で、タイプミスが少ないからです。pvは基本的に拡張されたバージョンであることに注意してくださいcat。デフォルトではインストールされない場合がありますが、でインストールできますsudo apt-get install pv

同様のアプローチは、ディスクI / Oエラーを特に認識し、「データをレスキューするのが難しい」機能を備えたいくつかの利用可能なツールの1つでディスクを読み取ることです。ddrescueパッケージマネージャーで検索します。


これにより、書き込みアクセス中にのみ発生する問題は検出されず、問題を修正または回避する必要があるストレージメディアの影響を受ける領域は報告されません。dd count=1また、記憶媒体が完全に破損していない(またはサポートされていない)場合を除き、かなり高速です。
デビッドフォースター

参照:ddrescueview
nobar

GNU Coreutils 8.24+にddはで進行状況インジケーターがありstatus=progressます。
パブロA

1

データを失うことができないパーティションがある場合は、次の手順に従ってください

  1. 使用して不良セクタをチェックするパーティションを決定します

$fdisk -l commnd

確認するパーティションは/ dev / sdPTC(確認するパーティション)と呼ばれ、/ scan / resultPath /フォルダーにマウントされた結果を保存する別のパーティションがあると仮定しましょう

2.次に、このコマンドを実行できます

$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt

特定のデバイスの不良ブロックを特定し、badsectors.txtというファイルに保存します

  1. fsckコマンドを使用して、badsectors.txtファイルに記載されている不良セクターを使用しないようにUbuntuに指示できます。

$sudo fsck -l /scan_result/badsectors.txt /dev/sda

そのようにして、交換用の新しいディスクを入手するまで、ハードディスクの寿命が少し長くなります。


不良な物理セクターをチェックしたい完全なパーティションがあり、そのパーティション上のすべてのデータを失う可能性があるか、空になっている場合は、次の手順に従ってください。

  1. $sudo apt-get install gnome-disk-utility

  2. $sudo gnome-disks

  3. そのパーティションに重要なデータがないことを確認し、再確認してください

  4. gnome-disks「-」記号を使用して手動でパーティションを削除/削除する

  5. gnome-disks新しいパーティションの作成を使用して、指定されたスペースのエラーをチェックする「遅い」オプションを選択します

ここに画像の説明を入力してください


どのUbuntuバージョンであるかは重要ですか?bionic beaver異なるディスクチェックを扱いますか?
ガブリエルフェア

そのバージョンではこのプロセスを試していません。
マウリシオグラシアグティエレス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.