Linux活用レシピ > KNOPPIXの活用 > HDDの修復
このページでは、日本語版KNOPPIXを使ってHDDを修復するレシピを紹介します。壊れたテレビ録画HDDを修復し、録画データの損害を最小限に抑えた事例です。

HDDの複製(バックアップ)

修復が必要なHDDを別のHDDにイメージバックアップします。これにより、万一修復に失敗した場合でも元のイメージに戻すことができます。

なお、イメージバックアップは非常に時間がかかります。特にUSB2.0で4TBのディスクをバックアップするには丸3日以上かかります。この場合、より速度の速いUSB3.0が利用できるPCで環境を構成することで、より速く完了します。

一方で、そもそも時間よりリスクをとってバックアップを取らずHDDの修復をするという場合はバックアップせず修復手順に進んでください。

では、バックアップ手順になります。ここではKNOPPIXを使って修復が必要な録画用HDD(以下「引越元HDD」とします)をバックアップHDD(以下「引越先HDD」とします)に複製します。

  1. 何といっても引越先HDDとなるHDDを用意してください。手元にない場合は新品のUSB接続の外付けHDDを買いましょう。


    ここで注意!です:「引越元HDD」と同じかより大きい記憶容量の「引越先HDD」を準備しましょう。


    これが逆の場合、つまり「引越元HDD」より「引越先HDD」の容量が小さいとイメージバックアップが完全にはできません。

  2. 次にDVDやUSBメモリにインストールされたKNOPPIXでパソコンを起動します。


  3. KNOPPIXが起動できれば、デスクトップ左下の以下のターミナルアイコンをクリックしてください。

    すると、以下の通りターミナルが起動します。
    knoppix@Microknoppix:~$
    
    次に、以下のコマンドでパソコンの内蔵ハードディスクのデバイス名を確認します。
    knoppix@Microknoppix:~$ sfdisk -s[ENTER]
    /dev/ram0:      4096
    /dev/ram1:      4096
    /dev/ram2:      4096
    /dev/ram3:      4096
    /dev/ram4:      4096
    /dev/ram5:      4096
    /dev/ram6:      4096
    /dev/ram7:      4096
    /dev/ram8:      4096
    /dev/ram9:      4096
    /dev/ram10:      4096
    /dev/ram11:      4096
    /dev/ram12:      4096
    /dev/ram13:      4096
    /dev/ram14:      4096
    /dev/ram15:      4096
    /dev/cloop0:   9367808
    /dev/cloop1:   2252032
    /dev/cloop2:    148224
    /dev/zram0:   4194304
    /dev/sda: 976762584
    ^^^^^^^^
    合計: 992790488 ブロック
    
    この例では内蔵ハードディスクが(/dev/sda)というデバイス名であることが分かります。
    つまり、日ごろHDDから起動してWindowsを利用されている場合は、(/dev/sda)にOSが入っていますので、以降の手順でこのデバイス名を使用しないよう注意してください。

  4. 次に「引越元HDD」をKNOPPIXのパソコンに接続します。

    接続できれば、以下のコマンドでデバイス名を確認します。
    knoppix@Microknoppix:~$ sfdisk -s[ENTER]
    /dev/ram0:      4096
    /dev/ram1:      4096
    /dev/ram2:      4096
    /dev/ram3:      4096
    /dev/ram4:      4096
    /dev/ram5:      4096
    /dev/ram6:      4096
    /dev/ram7:      4096
    /dev/ram8:      4096
    /dev/ram9:      4096
    /dev/ram10:      4096
    /dev/ram11:      4096
    /dev/ram12:      4096
    /dev/ram13:      4096
    /dev/ram14:      4096
    /dev/ram15:      4096
    /dev/cloop0:   9367808
    /dev/cloop1:   2252032
    /dev/cloop2:    148224
    /dev/zram0:   4194304
    /dev/sda: 976762584
    /dev/sdb: 2930266584
    ^^^^^^^^
    合計: 3923057072 ブロック
    
    この例では/dev/sdbが増えてますので、こちらが「引越元HDD」となります。

  5. 次に「引越元HDD」を接続したまま「引越先HDD」をKNOPPIXのパソコンに接続します。

    接続できれば、さらに以下のコマンドでデバイス名を確認します。
    knoppix@Microknoppix:~$ sfdisk -s[ENTER]
    /dev/ram0:      4096
    /dev/ram1:      4096
    /dev/ram2:      4096
    /dev/ram3:      4096
    /dev/ram4:      4096
    /dev/ram5:      4096
    /dev/ram6:      4096
    /dev/ram7:      4096
    /dev/ram8:      4096
    /dev/ram9:      4096
    /dev/ram10:      4096
    /dev/ram11:      4096
    /dev/ram12:      4096
    /dev/ram13:      4096
    /dev/ram14:      4096
    /dev/ram15:      4096
    /dev/cloop0:   9367808
    /dev/cloop1:   2252032
    /dev/cloop2:    148224
    /dev/zram0:   4194304
    /dev/sda: 976762584
    /dev/sdb: 2930266584
    /dev/sdc: 3907018584
    ^^^^^^^^
    合計: 7830075656 ブロック
    
    この例では/dev/sdcが増えてますので、こちらが「引越先HDD」となります。

    まとめますと、「引越元HDD」と「引越先HDD」のデバイス名は以下の通りとなります。

    「引越元HDD」「デバイス名:/dev/sdb」

    「引越先HDD」「デバイス名:/dev/sdc」


  6. 準備ができましたので、ここから複製を始めます。
    複製のコマンドは、以下となります。
    sudo dd if=/dev/sdb of=/dev/sdc bs=512 conv=noerror,sync status=progress
               ^^^^^^^^    ^^^^^^^^
               引越元HDD   引越先HDD
    
    ここで注意!です、万一逆に複製してしまうと録画HDDを新品のHDDのデータで上書きしてしまいますので、くれぐれもデバイス名を間違えないようにしてください。

    なお、コマンドについて「bs=512」としているのは、1ブロック単位で時間はかかりますがじっくり読み書きできるようにしております。これはddの特性上、複数のブロックをまとめて処理すると、万一読み込みエラーになった場合にエラーの出たブロックを含め以降のまとめて処理したブロックが正常でもすべてゼロ埋めされてしまうからで、1ブロックずつ確実に処理をさせたいので、このオプションを入れています。

    また、「status=progress」を入れることで、ddは処理の進捗を常に画面に表示してくれるようになります。 以下の通りコンソールが戻ってくれば複製が完了です。

    2930266584+1 レコード入力
    2930266584+1 レコード出力
    1500296491008 bytes (2.8TB, 2.7TB) copied, 500 s, 1.7 MB/s
    knoppix@Microknoppix:~$
    


  7. 複製が終われば準備完了ですので、HDDの修復に取り掛かります。

    なお、以降の手順で万一修復がうまくいかず、録画HDDを元通り戻したい場合は、上記コマンドで「if=」と「of=」に続くデバイス名を反対にすることで元に戻すことができます。