ddフルディスクコピーが8GBでまだ失敗するのはなぜですか?

ddフルディスクコピーが8GBでまだ失敗するのはなぜですか?

500GB SSDを1TB SSDに複製しようとしています。何らかの理由でコピーされたデータが8 GBに達すると、引き続き失敗します。これは私が試した3番目の1TB SSDですが、すべて同じ場所で停止しました。次のコマンドを実行しました。

dd if=/dev/sda of=/dev/sdb bs=1024k status=progress

また、Clonezillaを使用してドライブを複製しようとしましたが、同じ場所で失敗しました。 GPartedを使用してドライブを再フォーマットし、EXT4ファイルシステムに設定しましたが、まだ同じ場所に停止しています。 Sdaは内部にあり、sdbは外部に接続されています。

私が受け取ったエラーは次のとおりです。

7977443328 bytes (8.0 GB, 7.4 GB) copied, 208s, 38.4 MB/s
dd: error reading '/dev/sda': Input/output error
7607+1 records in
7607+1 records out

以下の回答をいただいた@roaimaに感謝します。私は実行でき、ddrescueほとんどのデータをコピーしました。内部SSDを取り外し、既存のSSDと新しいSSDをUSB3経由でCentOSボックスに接続しました。次のコマンドを実行しました。

ddrescue -v /dev/sdb /dev/sdc tmp --force

15時間以上走りました。一晩停止しました。しかし、良いことは、コマンドを再実行すると中断された部分から再開されることです。

私はscreenこれを使って2番目のセッションに閉じ込められないようにします:)。Ctrl+cデータが数時間停止したため、99.99%のデータが回復した後にddrescueコマンドを終了したことがあります。新しいドライブから起動でき、すぐに起動しました。 ddrescueを終了したときの状態は次のとおりです。

Initial status (read from mapfile)
rescued: 243778 MB, tried: 147456 B, bad-sector: 0 B, bad areas: 0

Current status
     ipos:  474344 MB, non-trimmed:    1363 kB,  current rate:       0 B/s
     ipos:  474341 MB, non-trimmed:        0 B,  current rate:       0 B/s
     opos:  474341 MB, non-scraped:   522752 B,  average rate:   8871 kB/s
non-tried:        0 B,  bad-sector:   143360 B,    error rate:       0 B/s
  rescued:  500107 MB,   bad areas:      123,        run time:  8h  1m 31s
pct rescued:   99.99%, read errors:      354,  remaining time:     14h 31m
                              time since last successful read:      6m  7s
Scraping failed blocks... (forwards)^C
  Interrupted by user

これが他の人に役立つことを願っています。私の古いドライブが故障し始めたと思います。データが失われないことを願っています。ここでLUKSパーティションのサイズ変更を開始してください:)

ベストアンサー1

エラーはdd: error reading '/dev/sda': Input/output error問題があることを知らせることです。読むターゲットに書き込むのではなく、ソースディスク。ターゲットディスクを複数回交換できますが、これを行ってもソースディスクを読み取る問題は解決されません。

を使用する代わりに、ddディスクが完全に消える前にディスクからデータを回復することを検討してください。または同じツールを使用してrsyncファイルをコピーするcpddrescue

ddrescue -v /dev/sda /dev/sdb /some/path/not/on/sda_or_sdb

最後のパラメータは、ここに/dev/sdaもそこにもない比較的小さな一時ファイル(マップファイル)を指します/dev/sdb。他に何もない場合は、外部USBスティックにある可能性があります。

このddrescueコマンドは、ソースディスクに障害がある可能性があることを認識します。エラーが発生するまで、一度に比較的大きな塊を読みます。エラーが発生した場合は、綿密な検査と小さなコピーの試みのためにそのセクションを表示します。マッピングファイルは、ソースディスクがロックされていてシステムを再起動する必要がある場合に再起動して続行できるようにするために使用されます。可能なすべてをコピーしようとします。

ディスクをコピーすると、/dev/sdbパーティションは元のディスクのサイズに固有のものとして表示されます。その後、fdiskまたはgparted/を使用してpartedこの問題を解決できます。

データのコピー中にエラーが発生した場合は、まずfsckこのシリーズのいずれかを使用してパーティションを確認して回復する必要があります。たとえば、e2fsck -f /dev/sdb1

おすすめ記事