作業日記@HatenaBlog

各種の作業メモ

HDD丸ごとコピー

knoppix起動

コピー元:/dev/hda
コピー先:/dev/hdb

▼パラメータ確認
# hdparm /dev/hda
/dev/hda:
 multicount   = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmasking    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometory    = 65535/16/63, sectors = 117210240, start = 0
#

# hdparm /dev/hdb
/dev/hdb:
 multicount   = 16 (on)
 IO_support   =  0 (default 16-bit)
 unmasking    =  0 (off)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometory    = 30401/255/63, sectors = 488397168, start = 0
#

/dev/hdaをreadonlyにする

誤って書き込みしないようにreadonlyフラグを1にする。

readonlyフラグのチェック
# hdparm -r /dev/hda
/dev/hda:
 readonly     =  0 (off)
#


readonlyフラグを1にセット
# hdparm -r 1 /dev/hda

/dev/hda:
 setting readonly to 1 (on)
 readonly     =  1 (on)
#

コピー実行

# dd if=/dev/hda of=/dev/hdb bs=4096 conv=noerror

if = コピー元デバイス
of = コピー先デバイス
bs = コピーブロックサイズ(4096に指定するとコピーが早いらしい)
conv = noerrorにするとリードエラーが起きても継続コピーする

その他

hdparmでデバイスを確認したさい、dmaフラグが0(ゼロ)だったら1にしておくとコピーが早い。

移植したHDDを取り付けて起動

FreeBSD/i386 boot
Default: 0:ad(0,a)/kernel
boot:
No /kernel

で止まる。

ddコピーやりなおし

# dd if=/dev/hda of=/dev/hdb bs=4096 conv=sync,noerror
# dd if=/dev/hda of=/dev/hdb ibs=512 obs=65536 conv=sync,noerror

if = コピー元デバイス
of = コピー先デバイス
bs = コピーブロックサイズ(4096に指定するとコピーが早いらしい)
ibs = 読込ブロックサイズ
obs = 書込ブロックサイズ (65536 でまとめて書込むとコピー速度が早いらしい)
conv = 
noerror: リードエラーが起きても継続コピーする
sync: エラー部分をNULLで埋める

参考リンク:http://www.nn.iij4u.or.jp/~tutimura/salvage.html

その他参考リンク

http://fromto.cc/hosokawa/diary/2002/20021107-home1/
 

Knoppix + dd バックアップの高速化では次のコマンドで更に高速コピーできると紹介
# dd if=/dev/hda of=/dev/hdb ibs=512 obs=1024k conv=sync,noerror

ddコマンド実行途中に、何バイトコピーできたかを見る方法