回答:
不良セクタをチェックするには、SMARTデータをチェックします。おそらく、ディスクユーティリティ(Palimpsest)を起動することにより、最もアクセスしやすいデータです。不良ブロックが表示されない場合でも、確実にセルフテストを開始してください。
プログラムはgnome-disk-utility
パッケージにバンドルされています。走るgksudo gnome-disks
または、Ubuntu 16.04バージョン(3.18):
使用することもできます 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
不良セクタを見つけるのに役立ちませんが、さらに悪いことに、多くの不良セクタがある場合、データをさらに損傷する可能性があります。ディスクが正常な場合にのみ使用してください。
この回答全体を通して、ストレージドライブはパスのブロックデバイスとして表示されると仮定します/dev/sdc
。現在の設定でストレージドライブのパスを見つけるには、次を使用します。
palimpsest
)、GUIが利用可能な場合、またはlsblk
とls -l /dev/disk/by-id
、大きさ、パーティショニング、製造元とモデル名で右のデバイスを探してみてください。記憶媒体は、単にまったく動作しないこともあります。カーネルとディスクマネージャーにはブロックデバイスとして表示されますが、パーティションテーブルを保持する最初のセクターは読み取りできません。これは次の方法で簡単に確認できます。
sudo dd if=/dev/sdc of=/dev/null count=1
このコマンドの結果、「入出力エラー」に関するメッセージが表示された場合、ドライブが破損しているか、期待どおりにLinuxカーネルと対話できません。前者の場合、少し運が良ければ、適切に設備されたラボを備えたデータリカバリスペシャリストがそのコンテンツを回収できます。後者の場合、別のオペレーティングシステムを試してみる価値があります。(特別なドライバーなしでWindowsで動作するUSBドライブに出くわしましたが、LinuxやOS Xでは動作しません。)
それをサポートするデバイスは、SMARTを介して健康状態を問い合わせたり、さまざまな完全性の整合性セルフテストを実行するように指示したりできます。これは一般的に最良のオプションですが、通常は(非古代の)ハードディスクおよびソリッドステートドライブでのみ利用可能です。ほとんどのリムーバブルフラッシュメディアはサポートしていません。
その他のリソースと手順:
デバイス全体に書き込みを行わずに読み取り整合性をテストするには、次の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
コマンドにオプションを追加します。
fsck-Linuxファイルシステムの確認と修復。を使用して呼び出す
fsck /dev/sda1
/ dev / sda1は、確認するドライブです。詳細については、「man fsck」を参照してください。
デバイスに不良ブロックをチェックする「badblocks」コマンドもあります。
チェック時にドライブをアンマウントする必要があるため、ルートパーティションをチェックするには、パーティションのルートに「forcefsck」ファイルを作成し、再起動する必要があります。デバイスは、次回の起動時にチェックされます。
sudo touch /forcefsck
sudo reboot
または、Live CDから起動し、そこからチェックを実行できます。
sudo dumpe2fs -b /dev/sda9
。しかし、ディスクがファイルシステム(SMART、badblockなど、私の投稿を参照)ではなく、不良セクタを処理する方が良いと思います。
コマンドを実行している不良ブロックを確認できます
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
非破壊読み取り/書き込みテスト用。これbad-blocks-result
により、破損したセクターで呼び出されるファイルが生成されます。
-n非破壊読み取り/書き込みモードを使用します。デフォルトでは、非破壊的な読み取り専用テストのみが実行されます。
-s現在の不良ブロックがディスク上を通過する大まかな割合を書き出すことにより、スキャンの進行状況を表示します。
-v詳細モード。
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
可能であれば、不良セクタの場所をファイルシステムに伝えて、そこからデータを移動します。これについては、こちらでさらに読むことができます。
fsck
コマンドが失敗してbtrfs
、ファイルシステム。
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ディスクは、必要に応じてグラフィカルなフロントエンドです。
smartctl
「Unknown USB bridge」、「-dオプションでデバイスタイプを指定してください」と報告されたとき、最初は困惑しました。smartmontools.org/wiki/Supported_USB-Devicesで必要なデータを見つけました。
F3(Fight Flash Fraud)は、偽のフラッシュドライブ(実際の容量が公示容量の一部であるフラッシュドライブ)を追加で検出する別のオプションです。
F3をインストールする
sudo apt install f3
ドライブを挿入します
ドライブの空き領域にテストデータを書き込みます(ドライブのマウント先を確認しますlsblk
)
f3write /media/$USER/D871-DD7C/
テストデータを読む
f3read /media/$USER/D871-DD7C/
参照:
Badblocksはうまく機能しますが、偽のフラッシュドライブを検出するようには設計されておらず、エラーを報告しない場合があります。
badblocks
セクターが不良/破損としてマークされている、-w
またはfsck
マークされているため、使用されません。f3はのようなものを返すことができますがCorrupted: 16.01 MB (32784 sectors)
、それらを不良セクタとしてマークしますか?または、そのためにまだ不良ブロックが必要ですか?私がしようとしているdumpe2fs -b
とそれはIDがマークされていないようです。
進行状況インジケーターを表示しながら、ディスク全体をテスト読み取りできます。
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
dd
はで進行状況インジケーターがありstatus=progress
ます。
データを失うことができないパーティションがある場合は、次の手順に従ってください
$fdisk -l commnd
確認するパーティションは/ dev / sdPTC(確認するパーティション)と呼ばれ、/ scan / resultPath /フォルダーにマウントされた結果を保存する別のパーティションがあると仮定しましょう
2.次に、このコマンドを実行できます
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
特定のデバイスの不良ブロックを特定し、badsectors.txtというファイルに保存します
fsck
コマンドを使用して、badsectors.txtファイルに記載されている不良セクターを使用しないようにUbuntuに指示できます。$sudo fsck -l /scan_result/badsectors.txt /dev/sda
そのようにして、交換用の新しいディスクを入手するまで、ハードディスクの寿命が少し長くなります。
不良な物理セクターをチェックしたい完全なパーティションがあり、そのパーティション上のすべてのデータを失う可能性があるか、空になっている場合は、次の手順に従ってください。
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
そのパーティションに重要なデータがないことを確認し、再確認してください
gnome-disks
「-」記号を使用して手動でパーティションを削除/削除する
gnome-disks
新しいパーティションの作成を使用して、指定されたスペースのエラーをチェックする「遅い」オプションを選択します
bionic beaver
異なるディスクチェックを扱いますか?