fsck:最も完全なディスクチェックのオプション


12

既知の問題があるディスクを持っています(クローンを作成しようとするとddギャグが発生するため、わかっています)。しかし、ライブCDで起動し、マウントされていないパーティションでfsckを実行すると、次のようになります。

ubuntu@ubuntu:~$ sudo fsck /dev/sdf1
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
/dev/sdf1: clean, 227091/9625600 files, 12789815/38497756 blocks

ミリ秒後。ハードディスクドライブ全体が数ミリ秒でチェックアウトされたとは信じられません。

また、sdf1をfsckする必要があるのか​​、物理ディスク全体をsdfする必要があるのか​​もわかりません。ドライブ全体を試してみると:

ubuntu@ubuntu:~$ sudo fsck /dev/sdf
fsck 1.41.4 (27-Jan-2009)
e2fsck 1.41.4 (27-Jan-2009)
fsck.ext2: Device or resource busy while trying to open /dev/sdf
Filesystem mounted or opened exclusively by another program?

マウントされているパーティションがないため、理解できません(ライブCDから起動してコマンドを実行しただけです)。

だから私の基本的な質問は:fsck(またはもっとうまくいくかもしれない別のツール)に、問題のディスクの分析に1ミリ秒以上かかるようにするにはどうすればよいですか?

回答:


14

まず、あなたはパーティションでfsckを実行することについて正しいです-fsckはディスク全体ではなくファイルシステムでのみ機能します。を使用して、ディスク上のすべてのパーティションのリストを取得できますfdisk -l /dev/sdd

ファイルシステムのタイプはおそらくext3(ほとんどのLinuxディストリビューションのデフォルト)です。つまり、ジャーナルがクリーンである限り、通常はfsckを渡します。fsck -f上記のように、完全チェックを強制します。

ただし、ディスクで読み取りエラーが発生した場合、ddは実際にはディスクの内容を気にしないため、fsckを使用してもddは役に立ちません。

ddがディスクを読み取って読み取りエラーdd conv=noerror,syncを続行するようにするには、を使用します。これにより、読み取りエラーが継続され、読み取りエラーが発生した場合にブロックにnullバイトが追加されます。

バックアップが完了したらfsck -f、クローンで実行して、それを再起動して実行する必要があります。

別のヒント:パーティションをファイルにバックアップする場合は、でループバックマウントできますmount -o loop filename.ext3 /mountpoint。また、200Gパーティションを500Gドライブに複製しているとすると、実行できresize2fs /dev/sdx1(sdxは新しいドライブで、単一の500Gパーティションでパーティション化されています)、ファイルシステムは500Gにサイズ変更されます。

最後に、ディスクが読み取りエラーの原因となるような形状になっている場合は、データのリカバリが完了するまでディスクのオン/オフを行わないことをお勧めします。一部の障害モードでは、ディスクはある時点でスピンアップしないか、OSによって認識されなくなり、その時点でドライブからデータを取り出すのは非常に高価になります。


「dd conv = noerror、sync」を試してみましたが、結果のクローンディスクは起動できませんでした。ブートディスクは正常に動作し、fscksは正常に動作するため、これはイライラしますが、ディスクに1つの不良ブロック(明らかにデータがない)があるため、別のディスクに複製することはできません。行き詰まっているようです...
フレッドハミルトン

ディスクが起動できなかった理由が他にもある可能性があることを忘れないでください(異なるディスクジオメトリとMBR /ブートローダーの問題)。最初に新しいディスクのファイルシステムに問題がないことを確認できたら、インストールCDからレスキューモードを使用してシステムを起動し、GRUBブートローダーなどを更新できます。最初にfsck -f / dev / sdx1を実行してから、mount / dev / sdx1 / mntを使用してファイルシステムをマウントしてみてください。xを適切なドライブ文字に置き換えてください。
クリスチャン

素晴らしい提案ですが、クローンパーティションでfsck -fを実行すると、文字通り数百のエラー(inodeの不正なブロック、圧縮サポートのないファイルシステムに設定された圧縮ビット、不正な拡張属性ブロックなど)が発生し、ddクローンは完全にホース化されました...次に何をすべきかわからない...私はすべてのファイルをクリーンなパーティションにコピーしようとするでしょう...とにかくありがとう。
フレッドハミルトン

4
ddよりもddrescue(またはdd_rescue + dd_rhelp)を使用する方が良いです。エラーの処理についてより賢くなり、エラーが発生したセクターを再試行します。 gnu.org/software/ddrescue/ddrescue.html kalysto.org/utilities/dd_rhelp/index.en.html garloff.de/kurt/linux/ddrescue
freiheit

1
ルートext2、ext3、またはext4パーティションの最も徹底的なディスクチェック(可能な場合はすべての修正を自動化)は、次のように実行されますe2fsck -f -cc -D -p。これにより、メディアの非破壊的な読み取り/書き込みチェックによる強制チェックが行われ、安全に修正できるすべての見つかった問題が修復されます。2TB HDDの場合、数日かかる場合があります...
Mikko Rantalainen 2013年

10

これはあなたの場合には関係ないかもしれませんが、とにかく私はそれを言及したいと思いました:

下位レベルのディスクチェックでは、badblocksユーティリティを使用できます。デバイスを通過し、不良ブロックを報告します(もちろん、何も修復できません)。少なくとも、ディスクが物理的に損傷しているかどうかを確認するのに役立ちます。

また、ファイルシステムによって使用されている不良ブロックを回避するためにe2fsck使用できbadblocksます。e2fsckマニュアルから:

  -c     This option causes e2fsck to use badblocks(8) program to do a  read-
         only scan of the device in order to find any bad blocks.  If any bad
         blocks are found, they are added to the bad block inode  to  prevent
         them from being allocated to a file or directory.  If this option is
         specified twice, then the bad block scan will be done using  a  non-
         destructive read-write test.

またfsck_hfs -s、不良ブロックをスキャンします。
awiebe

5

-fオプションをfsckに設定します(ファイルシステムがクリーンであるように見えても、強制的にチェックします)。

fsckはシングルユーザーモードで実行する必要があります。ライブCDROMブートなしでこれを行う簡単な方法の1つは、-Fオプションを指定してリブートすることです。

shutdown -rF now 

ありがとう、ただし1つの質問:ライブCDを使用して-Fオプションで再起動すると、チェックを実行するはずだったことがライブCDでどのように認識されますか?それはCDであり、私が認識している記憶はありません...
フレッドハミルトン

ライブCDからそれを行う必要はないと思います。ライブCDから起動し、マウントされていないパーティションで-f(強制)オプションを指定してfsckを実行します。または、shutdown -rFを使用して、ハードディスクから再起動できます。これにより、ファイルシステムがマウントされる前にfsckが強制されます。
Richard Hoskins、

実際には、シングルユーザーモードでfsckを実行します。回答を編集しました。
Richard Hoskins、

1
-Fフラグshutdownは通常公式に文書化されていないため(参照man shutdownしてshutdown --help、そこにないことに注意してください)、その動作を信頼することはできません。場合によっては、何もしないこともあります。公式には、ルートパーティションをスキャンする唯一の方法は、代替メディアから起動することです。
ミッコランタライネン2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.