システムがフリーズした後、ddを最初からやり直すのを避けるにはどうすればよいですか?

コス

数日前、750 GBのハードディスクを販売するためにワイプすることにしたのでUbuntu、ライブDVDから起動し、でプロセスを開始しましたsudo dd if=/dev/zero of=/dev/sdaddは夜中に走り続けた。朝に戻ったとき、プロセスのある時点でUbuntuフリーズしたことに気づきました。プロセスのどの時点でフリーズが発生したかを特定できません。フリーズが発生するたびに、スクリーンセーバーがオンのときに発生したため、bashの出力を確認できませんでした

質問:ddを最初からやり直すのを避けるにはどうすればよいですか?

コス

私は自分で解決策を考え出しました:

素早い回答

あなたのドライブが/dev/sdX

  • dd if=/dev/zero | cmp - /dev/sdXデバイスの最初のゼロ以外のバイトを見つけるために実行します。私の場合はバイトでした。742300476649
  • 最初のゼロ以外のバイトがどのブロックに属しているかを計算し<device_first_non_zero_block>=floor(<device_first_non_zero_byte>/<device_block_size>)+1ます::ターミナルでの<device_block_size>実行fdisk -l /dev/sdX確認できます:私の場合はブロックでした1449805619
  • 起動しdd、そこから再び:dd if=/dev/zero bs=<device_block_size> skip=<device_first_non_zero_block>-1:私の場合にはコマンドがいましたdd if=/dev/zero of=/dev/sda bs=512 skip=1449805618

長い答え

与えるcmp -ようにFILE1読み取るためにそれを強制的FILE1stdinゼロの定数ストリームが行いますので、cmp各バイトと比較FILE2されるまでゼロに対してはEOF(もしあれば)を報告し、最初の非ゼロバイト:ドライブであると仮定します/dev/sdX

dd if=/dev/zero | cmp - /dev/sdX

デバイスの最初の非ゼロブロックは、最初の非ゼロバイトを含むブロックです。

<device_first_non_zero_block>=floor(<device_first_non_zero_byte>/<device_block_size>)+1

したがって、ddそこから再開するには、最初の<device_first_non_zero_block>-1ブロックをスキップします。

dd if=/dev/zero of=/dev/sdX bs=<device_block_size> skip=<device_first_non_zero_block>-1

テスト

ワイプされたハードドライブをシミュレートするために、ゼロのみを含む512KBファイルを作成します。

$ dd if=/dev/zero of=hdd1 bs=512 count=1000

データを含むハードドライブをシミュレートするために、ランダムバイトのみを含む512KBファイルを作成します。

$ dd if=/dev/urandom of=hdd2 bs=512 count=1000

部分的にワイプされたハードドライブをシミュレートするために2つのファイルをマージします。

$ cat hdd1 hdd2 > hdd3

テストドライブでのコマンドの出力:

$ dd if=/dev/zero | cmp - hdd1
cmp: EOF on hdd1
# cmp reached EOF on hdd1, hdd1 contains only zeros
$ dd if=/dev/zero | cmp - hdd2
- hdd2 differ: byte 1, line 1
# cmp reported byte 1 to be not zero, hdd2 doesn't contain any leading zero
$ dd if=/dev/zero | cmp - hdd3
- hdd3 differ: byte 512001, line 1
# cmp reported byte 512001 to be not zero, hdd3 contains leading zeros up to byte 512000

この場合:

<device_first_non_zero_block>=floor(512001/512)+1=floor(1000,001953125)+1=1000+1=1001

だから、ddそこからやり直すには:

この場合、テストドライブであるファイルcountが必要であり<device_total_number_of_blocks>-(<device_first_non_zero_block>-1)、テストドライブのサイズを超えないように設定さていることに注意してください。ただし、これは通常のドライブには適用されません。

dd if=/dev/zero of=hdd3 bs=512 seek=1000 count=1000

コマンドの出力hdd3

$ dd if=/dev/zero of=test2 bs=512 seek=1000 count=1000
1000+0 records in
1000+0 records out
512000 bytes (512 kB) copied, 0,00190399 s, 269 MB/s

手順が成功したかどうかの確認:

$ dd if=/dev/zero | cmp - hdd3
cmp: EOF on hdd3

ビンゴ!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

キーフレームアニメーションをスムーズに最初からやり直すにはどうすればよいですか?

分類Dev

elseステートメントをトリガーしたときにこのプログラムを最初からやり直すにはどうすればよいですか?

分類Dev

Flashが停止したときにsystemdがシステムをフリーズするのを防ぐにはどうすればよいですか?

分類Dev

javascriptを使用してシステムから閲覧した直後に閲覧した画像を表示するにはどうすればよいですか?

分類Dev

CSS3スクロールボックスアニメーションを変更して、最初からやり直すのではなく、無限にループするようにするにはどうすればよいですか?

分類Dev

モバイルSafariでフォームを送信した後、ユーザーのスケーラビリティを維持しながらズームをリセットするにはどうすればよいですか?

分類Dev

カスタムアノテーションが付けられたクラスのリストを作成するにはどうすればよいですか?

分類Dev

タイマーの後にループを最初からやり直すにはどうすればよいですか?

分類Dev

スワップパーティションがその直後にあるときにデータを失うことなくLinuxパーティション(EXT4)のサイズを増やすにはどうすればよいですか?

分類Dev

番号付きリストを繰り返し処理し、値1が表示されるたびに最初からやり直すにはどうすればよいですか?

分類Dev

エイリアスの名前を変更したり、システムから完全に削除したりするにはどうすればよいですか?

分類Dev

django 1.7の移行-すべての移行をクリアして最初からやり直すにはどうすればよいですか?

分類Dev

「やり直し」のショートカットをCtrl + Shift + ZからCtrl + Yに設定するにはどうすればよいですか?

分類Dev

ホームステッドでのvagrantssh中にコマンドを誤って入力したのですが、どうすればすべてを削除して最初からやり直すことができますか?

分類Dev

テキストがオーバーフローした場合に<li>から最初の単語を削除するにはどうすればよいですか?

分類Dev

dd経由で転送した後、ext4ファイルシステムを拡張するにはどうすればよいですか?

分類Dev

ファイルシステムルートのUbuntuのディスク容量が少ない。ルートのサイズを変更したり、ファイルを削除したりするにはどうすればよいですか?

分類Dev

ポリモーフィズムを使用して、メソッドが複数のクラスを受け入れることができるようにするにはどうすればよいですか?ただし、IBOutletsを使用しますか?

分類Dev

「まだ準備ができていません。後でもう一度やり直してください」のRESTAPIでHTTPステータスコードを選択するにはどうすればよいですか?

分類Dev

タスクがフリーズしたときにメモ帳からコンテンツを復元するにはどうすればよいですか?

分類Dev

システムクリップボードを使用してJavaから貼り付けるにはどうすればよいですか?

分類Dev

このコードをやり直してテーブルを作成するにはどうすればよいですか?ループを使用しますか?

分類Dev

パスワードを入力した後、システムがフリーズする問題を解決するにはどうすればよいですか?

分類Dev

文字列の配列をx回逆方向にループし、最後に達したときに最初からやり直すにはどうすればよいですか?

分類Dev

文字列の最後や最初にスペースを保持するにはどうすればよいですか?

分類Dev

JavaScriptで更新するたびに最初からやり直すのをやめるために、カウントダウンタイマーを取得するにはどうすればよいですか?

分類Dev

ffmpegでエンコードされたmp4コンテナの一部としてビデオストリームの最後のフレームを保持するのをやめるにはどうすればよいですか?

分類Dev

idから独立したHTMLフォームの最初の入力要素にフォーカスを設定するにはどうすればよいですか?

分類Dev

スリープから復帰した直後にデスクトップを表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    キーフレームアニメーションをスムーズに最初からやり直すにはどうすればよいですか?

  2. 2

    elseステートメントをトリガーしたときにこのプログラムを最初からやり直すにはどうすればよいですか?

  3. 3

    Flashが停止したときにsystemdがシステムをフリーズするのを防ぐにはどうすればよいですか?

  4. 4

    javascriptを使用してシステムから閲覧した直後に閲覧した画像を表示するにはどうすればよいですか?

  5. 5

    CSS3スクロールボックスアニメーションを変更して、最初からやり直すのではなく、無限にループするようにするにはどうすればよいですか?

  6. 6

    モバイルSafariでフォームを送信した後、ユーザーのスケーラビリティを維持しながらズームをリセットするにはどうすればよいですか?

  7. 7

    カスタムアノテーションが付けられたクラスのリストを作成するにはどうすればよいですか?

  8. 8

    タイマーの後にループを最初からやり直すにはどうすればよいですか?

  9. 9

    スワップパーティションがその直後にあるときにデータを失うことなくLinuxパーティション(EXT4)のサイズを増やすにはどうすればよいですか?

  10. 10

    番号付きリストを繰り返し処理し、値1が表示されるたびに最初からやり直すにはどうすればよいですか?

  11. 11

    エイリアスの名前を変更したり、システムから完全に削除したりするにはどうすればよいですか?

  12. 12

    django 1.7の移行-すべての移行をクリアして最初からやり直すにはどうすればよいですか?

  13. 13

    「やり直し」のショートカットをCtrl + Shift + ZからCtrl + Yに設定するにはどうすればよいですか?

  14. 14

    ホームステッドでのvagrantssh中にコマンドを誤って入力したのですが、どうすればすべてを削除して最初からやり直すことができますか?

  15. 15

    テキストがオーバーフローした場合に<li>から最初の単語を削除するにはどうすればよいですか?

  16. 16

    dd経由で転送した後、ext4ファイルシステムを拡張するにはどうすればよいですか?

  17. 17

    ファイルシステムルートのUbuntuのディスク容量が少ない。ルートのサイズを変更したり、ファイルを削除したりするにはどうすればよいですか?

  18. 18

    ポリモーフィズムを使用して、メソッドが複数のクラスを受け入れることができるようにするにはどうすればよいですか?ただし、IBOutletsを使用しますか?

  19. 19

    「まだ準備ができていません。後でもう一度やり直してください」のRESTAPIでHTTPステータスコードを選択するにはどうすればよいですか?

  20. 20

    タスクがフリーズしたときにメモ帳からコンテンツを復元するにはどうすればよいですか?

  21. 21

    システムクリップボードを使用してJavaから貼り付けるにはどうすればよいですか?

  22. 22

    このコードをやり直してテーブルを作成するにはどうすればよいですか?ループを使用しますか?

  23. 23

    パスワードを入力した後、システムがフリーズする問題を解決するにはどうすればよいですか?

  24. 24

    文字列の配列をx回逆方向にループし、最後に達したときに最初からやり直すにはどうすればよいですか?

  25. 25

    文字列の最後や最初にスペースを保持するにはどうすればよいですか?

  26. 26

    JavaScriptで更新するたびに最初からやり直すのをやめるために、カウントダウンタイマーを取得するにはどうすればよいですか?

  27. 27

    ffmpegでエンコードされたmp4コンテナの一部としてビデオストリームの最後のフレームを保持するのをやめるにはどうすればよいですか?

  28. 28

    idから独立したHTMLフォームの最初の入力要素にフォーカスを設定するにはどうすればよいですか?

  29. 29

    スリープから復帰した直後にデスクトップを表示するにはどうすればよいですか?

ホットタグ

アーカイブ