Knoppix + dd バックアップの高速化

なんかメインPC(調べたら、いまのメインPCを建造した記録はココに書いてない模様。GIGABYTE GA-H57M-USB3 + Intel Core i5 660で2010年の春に組みました)の調子が悪いので、バックアップをとってシステム回りを弄る事にしました。

手順としてはいつも(なんと5年前の記事だ)のKNOPPIXでHDDコピーな訳ですが、今はHDDが2TBになってるので時間が掛かりそうだなぁ、とか言ってたら

「サルベージなんでibsは仕方ないけど、obsをまとめて書けば随分早くなると思うよ」

と教えてもらいました。なにそれ?

具体的にはKnoppixのRoot Shellで

# dd if=/dev/sda of=/dev/sdb ibs=512 obs=1024k conv=sync,noerror &

とか書くそうです。512バイト単位で読み込むけど、書き込む時は1Mバイト単位にまとめてから書き込んでね、という内容。

これでどれくらい速度が変わるのか、実験してみました。

使用したHDD>

/dev/sda:
Model=Hitachi HDS722020ALA330, FwRev=JKAOA28A, SerialNo=JK11A1YAJ5PKDV

/dev/sdb:
Model=Hitachi HDS5C3020ALA632, FwRev=ML6OA5C0, SerialNo=ML0220F31LGBLD

今回はSATA2をIDEモードで使います。

まず、使用するHDDをベンチマークテスト。

# hdparm -tT /dev/sda

/dev/sda:
Timing cached reads: 11968 MB in 2.00 seconds = 5991.02 MB/sec
Timing buffered disk reads: 392 MB in 3.01 seconds = 130.10 MB/sec


# hdparm -tT /dev/sdb

/dev/sdb:
Timing cached reads: 11380 MB in 2.00 seconds = 5696.66 MB/sec
Timing buffered disk reads: 410 MB in 3.01 seconds = 136.31 MB/sec

どちらも概ね130MB/s出てます。

ということで、実験。

# dd if=/dev/sda of=/dev/sdb count=1000000

1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB) copied, 25.3235 s, 20.2 MB/s

# dd if=/dev/sda of=/dev/sdb ibs=512 obs=1024k count=1000000

1000000+0 records in
488+1 records out
512000000 bytes (512 MB) copied, 3.79072 s, 135 MB/s

無指定=512バイト単位の時に対し、obsを1MBにすると、ほぼHDDのベンチマーク値そのままの数値になりました。ビックリ。

このペースだと、2TBのHDDでも4時間強でバックアップ出来ました。

ddコマンド実行途中に、何バイトコピーできたかを見る方法 [さくらインターネット創業日記]

この後XP SP3のホストコントローラーをIDE→AHCIに変更しましたが、

IDE→AHCI変更ツール

を使えば非常に簡単でした。「H55/H57だとPCH」とか考える必要もなく、半自動でささっと移行出来ちゃいました。

AHCIにするとHDDの読み書きが軽いです(^_^)

今回の作業にはKnoppix 6.4.4CDを使った訳ですが、GUIが立ち上がったらウィンドウマネージャーが随分リッチになってて笑いました。

LXDE(Lightweight X11 Desktop Environment)というそうですが、軽量ながらデフォルトのままだとウインドウ操作に大変派手なエフェクトが付きます。半透明に透けたり、ゆらゆらと揺れたり、ぱりーんと割れてバラバラになったり。

いつの間にこんな事になったんだろう…。