web-dev-qa-db-ja.com

外付けハードドライブの不良セクタは、Linuxでユーティリティを回復/マークします

ラップトップにUbuntuの新しいバージョンであるKarmicKoalaをインストールしました。システムが私の1TB外付けハードドライブで約300の不良セクタを識別したという事実を除いて、すべてが正常です。回復するか、マークを付けたいだけです。これを実現するために、Linuxで実行できる無料のユーティリティはありますか?

更新:

パーティションはNTFSでフォーマットされています。

前もって感謝します

4
user19920

OS自体に不良セクタが表示されている場合は、ドライブが下り坂になっています。ハードウェアはサービスから不良セクタを透過的に削除する必要があり、再マップするスペアセクタが不足している可能性があります。この場合、データは非常に危険にさらされます。

Davidの提案を真摯に受け止め、データをできるだけ早く移行します。 「smartmontools」をインストールしてsmartctlを実行し、デバイス自体のレポートを確認することをお勧めします。

NTFSドライブを格納するrawデバイスで「badblocks」ユーティリティを使用してみることができます。これは、デバイス上で機能し、ファイルシステムに依存しないためです。マニュアルページを必ず読んでください[〜#〜]注意深く[〜#〜]そして非破壊モードを使用してください。各セクターを読み取ってから、各セクターを書き直すことができるはずです。これを行うと、ドライブ自体が問題のあるセクターを再マップするように強制されます。最初に、USBスティックまたはその他のメディアでこの手順をテストします。

1TBドライブはスキャンに非常に長い時間がかかるため、一度に多数のセクターを処理するようにbadblocksに指示することをお勧めします。

繰り返しますが...自分が何をしているのかを確認してください。 1つのスリップとあなたのデータは乾杯です。

データがあなたにとって価値があり、あなたが自分の能力に自信がない場合は、SpinRiteなどの商用ソリューションを使用することをお勧めします(ただし、高価であり、Windowsの機械が必要になります)。 SpinRiteを使用したことはありませんが、オンラインで良いことを聞いたことがあることに注意してください。

6
Geoff Fritz
2
Kokizzu

使用しているファイルシステムによって異なります。 ext2、etx3、またはext4を使用している場合(IIRC Ubuntu 9.10のデフォルトは新規インストールではext4、以前のバージョンはデフォルトでext3)、実行できます。

e2fsck -c -c -k -C 0 /dev/device

つまり.

e2fsck -c -c -k -C 0 /dev/sdc1

ドライブsdcの最初のパーティションにあるファイルシステムの場合。これが行われている間はファイルシステムをマウントしないでください。したがって、通常の実行中のシステムで必要な場合は、「ライブCD」などから起動してe2fsckを実行する必要があります。

-cオプションは、チェッカーの実行にサーフェススキャンを追加するものであり、2番目の-cは、非破壊の書き込み+読み取りテストを実行します。-kは、保持するように指示します。不良ブロックの既存のリストは、それらを再テストする代わりに、-C 0は、e2fsckが機能するときに、より多くの進行状況情報を出力するようにします。詳細については、man e2fsckを参照してください。

上記は、将来使用されないように不良ブロックをマークします。ドライブまたはその個々のパーティションを再フォーマットする場合は、再実行する必要があります。さらに劣化する「ほとんど不良」なセクターがある場合に備えて、とにかく時々再実行する必要があります。不良セクタを「回復」する方法はありません。

ただし、実際に重要なものがない場合を除いて、代わりにデータを別のドライブに移行することを検討することをお勧めします(つまり、ドライブが突然悪化し、データが実質的に読み取り不能または破損した場合でも、過度に不便になることはありません)。ドライブを交換しない場合は、気になることすべてに対して適切なバックアップが用意されていることを確認してください(ただし、とにかく適切なバックアップ体制が整っている必要があります)。

2
David Spillett
# ntfsresize -i /dev/sdb3

Device name        : /dev/sdb3
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 287967052288 bytes (287968 MB)
Current device size: 287967052800 bytes (287968 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 178645 MB (62.0%)
Collecting resizing constraints ...
You might resize at 178644316160 bytes or 178645 MB (freeing 109323 MB).
Please make a test run using both the -n and -s options before real resizing!

# ntfsresize -ns  /dev/sdb3

Non-destructive resize

# ntfsresize -s  /dev/sdb3

Real resize! careful...
0
RAJ

その外部パーティションにデータを保持したい場合は、そのドライブに二度と書き込みたくないでしょう。これは、これらの回答のいくつかが提案していることです。代わりに、フォレンジックリカバリツールを使用してドライブのイメージを作成します。 ddrescueはそのような仕事のための私のお気に入りのツールです。

これが私の「自己メモ」です。これはMac固有ですが、主なポイントをカバーしています。ソースとターゲットのハードウェア/ devマウント名を特定し、それらをアンマウントしてから、読み取り-再試行を無効にして、読み取りをログに記録して、ソースをターゲットにスイープします。エラーが発生しますが、最後に失敗したブロックをスキップします。

ディスクのフォレンジックイメージングおよび/または障害のあるディスクのレスキュー:Gnu ddrescue(dd_rescueと同じではありませんが、類似しています)すべてrootとして実行する必要があります。
まず、デバイスがマウントされていることを確認します。
diskutilリスト
ソース(例:disk1)(および生の画像ファイルではなく物理パーティションに送信する場合は宛先)のマウントを解除します。
diskutil unmount disk1
disk1からマウント可能なディスクイメージファイルにブロックごとのイメージコピーを実行し、ログを作成して、最初に読み取り可能な部分に焦点を合わせます。
ddrescue -v /dev/disk1myrescueddisk.dmgrescue.log

0
Taryn

NTFS関連かどうかわからない:

smartmontoolsの不良ブロックHOWTO

0
user27906