web-dev-qa-db-ja.com

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

既知の問題のあるディスクを持っています(クローンを作成しようとすると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ミリ秒以上かかるようにするにはどうすればよいですか?

12
Fred Hamilton

まず、パーティションで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によって認識されなくなり、その時点でドライブからデータを取得することは非常に高価になります。

14
Kristian

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

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

また、e2fsckbadblocksを使用して、ファイルシステムによって使用される不良ブロックを回避できます。 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.
10
Jonik

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

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

shutdown -rF now 
5
Richard Hoskins