(Linux) ハードディスク全体のコピー、バックアップ

戻る一つ前のメニューに戻る

ハードディスクの全体を、別のハードディスクにコピーする方法のメモ。

  • 利用するOS:Knoppix 5.3 CD

エラーが存在しないハードディスクの場合はddコマンドを、エラーが存在して通常の読み込みが難しいようなひどい状態のハードディスクの場合はddrescueコマンドを使う。(エラーが存在しない場合でも、ddrescueを使って普通にコピーすることは出来るし、特に効率が悪いというわけでもないが…)

なお、コピー先のディスク容量のほうが小さい場合は、あらかじめコピー元のパーティションを小さくしたりする処置があらかじめ必要。

目次

Knoppixの起動

ハードディスクにswapパーティションがある場合、それを使われてしまうことを防ぐため、noswapオプションをつけて起動する。

knoppix noswap

ddコマンド

SATAハードディスク(容量500GBytes)をコピーしたときの記録。

ディスクの容量(LBA user addressable sectors)がコピー元よりコピー先の方が大きいことを確認。

root@Knoppix:~# hdparm -I /dev/sda
/dev/sda:

ATA device, with non-removable media
Model Number: ST3500320AS
Serial Number: 9QM7K***
Firmware Revision: SD15
Transport: Serial
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 976773168
device size with M = 1024*1024: 476940 MBytes
device size with M = 1000*1000: 500107 MBytes (500 GB)

 ~ 以下略 ~

root@Knoppix:~# hdparm -I /dev/sdb
/dev/sdb:

ATA device, with non-removable media
Model Number: Hitachi HDP725050GLA360
Serial Number: GEA534RF2EV***
Firmware Revision: GM4OA5CA
Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5; Revision: ATA8-AST T13 Project D1697 Revision 0b
Standards:
Supported: 8 7 6 5
Likely used: 8
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 976773168
device size with M = 1024*1024: 476940 MBytes
device size with M = 1000*1000: 500107 MBytes (500 GB)

 ~ 以下略 ~

ディスクの転送速度を念のために確認し、コピーにかかる時間を推定する。今回は、低い方の値が55.7MB/secとあるので、6GBytesのディスクコピーにかかる時間は、理論的には500*1024/59=8600秒(144分)で終わると予測できる。

root@Knoppix:~# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 1124 MB in 2.00 seconds = 561.64 MB/sec
Timing buffered disk reads: 180 MB in 3.02 seconds = 59.54 MB/sec

root@Knoppix:~# hdparm -tT /dev/sdb
/dev/sdb:
Timing cached reads: 534 MB in 2.00 seconds = 267.02 MB/sec
Timing buffered disk reads: 188 MB in 3.01 seconds = 62.52 MB/sec

ddコマンドでコピーを行う。コピー中はメッセージ等は何も表示されず、コピー完了時に転送速度などが表示される。

root@Knoppix:~# dd if=/dev/sda of=/dev/sdb bs=16384
30524161+1 records in
30524161+1 records out
500107862016 bytes (500 GB) copied, 12563.4 seconds, 39.8 MB/s

root@Knoppix:~# 

※エラーが存在する可能性のあるディスクに対しては、エラーが起きても読み飛ばして(パディングデータを付加して)コピーを継続するconv=noerror,syncオプションをつけた上で、一度に読み込むブロック数を小さくしたほうがよい。

dd if=/dev/sda of=/dev/sdb bs=512 conv=noerror,sync

dd_rescue(ddrescue)コマンド

VMWareの仮想ディスク(容量6.0GBytes)をコピーしたときの記録。

ディスクの容量(LBA user addressable sectors)がコピー元よりコピー先の方が大きいことを確認。

root@Knoppix:~# hdparm -I /dev/hda

/dev/hda:

ATA device, with non-removable media
        Model Number:       VMware Virtual IDE Hard Drive       
        Serial Number:      00000000000000000001
        Firmware Revision:  00000001
Standards:
        Used: ATA/ATAPI-4 T13 1153D revision 17
        Supported: 4 3 2 & some of 5
Configuration:
        Logical         max     current
        cylinders       12483   12483
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:   12582864
        LBA    user addressable sectors:   12582912
        device size with M = 1024*1024:        6144 MBytes
        device size with M = 1000*1000:        6442 MBytes (6 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Standard
        R/W multiple sector transfer: Max = 64  Current = 64
        Advanced power management level: disabled
        DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=160ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    Power Management feature set
           *    NOP cmd
                Advanced Power Management feature set
Checksum: correct
root@Knoppix:~# hdparm -I /dev/hdb

/dev/hdb:

ATA device, with non-removable media
        Model Number:       VMware Virtual IDE Hard Drive       
        Serial Number:      01000000000000000001
        Firmware Revision:  00000001
Standards:
        Used: ATA/ATAPI-4 T13 1153D revision 17
        Supported: 4 3 2 & some of 5
Configuration:
        Logical         max     current
        cylinders       12483   12483
        heads           16      16
        sectors/track   63      63
        --
        CHS current addressable sectors:   12582864
        LBA    user addressable sectors:   12582912
        device size with M = 1024*1024:        6144 MBytes
        device size with M = 1000*1000:        6442 MBytes (6 GB)
Capabilities:
        LBA, IORDY(can be disabled)
        Standby timer values: spec'd by Standard
        R/W multiple sector transfer: Max = 64  Current = 64
        Advanced power management level: disabled
        DMA: mdma0 mdma1 mdma2 udma0 udma1 *udma2
             Cycle time: min=120ns recommended=120ns
        PIO: pio0 pio1 pio2 pio3 pio4
             Cycle time: no flow control=160ns  IORDY flow control=120ns
Commands/features:
        Enabled Supported:
           *    Power Management feature set
           *    NOP cmd
                Advanced Power Management feature set
Checksum: correct

ディスクの転送速度を念のために確認し、コピーにかかる時間を推定する。今回は、低い方の値が55.7MB/secとあるので、6GBytesのディスクコピーにかかる時間は、理論的には6*1024/55.7=110秒で終わるはず…

root@Knoppix:~# hdparm -tT /dev/hda

/dev/hda:
 Timing cached reads:   1516 MB in  2.00 seconds = 758.37 MB/sec
 Timing buffered disk reads:  168 MB in  3.02 seconds =  55.70 MB/sec
root@Knoppix:~# hdparm -tT /dev/hdb

/dev/hdb:
 Timing cached reads:   1512 MB in  2.00 seconds = 756.34 MB/sec
 Timing buffered disk reads:  206 MB in  3.00 seconds =  68.56 MB/sec

dd_rescueを使ってコピーを行う。

root@Knoppix:~# dd_rescue /dev/hda /dev/hdb

〜 ひたすらメッセージが流れつづける 〜

dd_rescue: (info): ipos:   6289408.0k, opos:   6289408.0k, xferd:   6289408.0
kcurr.rate:    85679kB/s, avg.rate:    31918kB/s,
 a                   errs:      0, errxfer:         0.0k, succxfer
dd_rescue: (info): ipos:   6290432.0k, opos:   6290432.0k, xferd:   6290432.0
kcurr.rate:    83388kB/s, avg.rate:    31919kB/s,
 a                   errs:      0, errxfer:         0.0k, succxfer
dd_rescue: (info): ipos:   6291456.0k, opos:   6291456.0k, xferd:   6291456.0
kcurr.rate:    81175kB/s, avg.rate:    31921kB/s,
 a                   errs:      0, errxfer:         0.0k, succxfer:   6291456.0k
             +curr.rate:    48854kB/s, avg.rate:    31881kB/s, avg.load: 12.5%

dd_rescue: (info): /dev/hda (6291456.0k): EOF
Summary for /dev/hda -> /dev/hdb:
dd_rescue: (info): ipos:   6291456.0k, opos:   6291456.0k, xferd:   6291456.0k
                   errs:      0, errxfer:         0.0k, succxfer:   6291456.0k
             +curr.rate:        0kB/s, avg.rate:    31881kB/s, avg.load: 12.5%

参考文献

戻る一つ前のメニューに戻る