KNOPPIXでHDDコピー

HDDは消耗品なのでヤバくなる前に定期的に交換する事が肝要なのですが、いまメイン機でシステムドライブに使ってるHDS722525VLAT80というドライブは生産が終了しちゃったみたいで、昨年夏に大バーゲン→以後、ぱったりとお店で見掛けなくなってしまいました。

「同じドライブが入手できればディスクの複製が簡単なんだけどなぁ。OSの再インストールはめんどくさいなぁ」

とか思ってたトコロ、DOS/VパラダイスのWEBショップに件のHDS722525VLAT80が再入荷してるのを発見。ここぞとばかりに「購入」ボタンをぽちっとクリックした次第(笑) 即断即決は間違いでは無かったようで、その後3日くらいでサイトから消えてました(^^;;

DOSパラの通販って初めて使ったんすが、最近は

▼店頭受取
お近くのドスパラ店頭にて通販ご購入商品の受け取りが出来ます。
配送料は無料となります。

ということで、お店まで取りに行けば送料も掛かんないみたいです。ちなみに土曜日に頼んだんですが、日曜の昼に松山店から入荷した旨の連絡が入ってました。早っ!(@_@;)

こうして新しいドライブが無事入手出来たので、早速新しいドライブに交換します。

以前、120GBのドライブを使ってた時代にはDrive Image 2002を使ってコピーしたんですが、

・すごく遅い
・ワタシ自身が随分Linuxに馴染んだ

ということで、今回はKNOPPIX Japanese editionを使い、ddコマンドで複製する事に。

まず、上掲サイトからリンクを辿り、ISOイメージを(感謝を捧げてから)頂いてきます。今回ダウンロードしたバージョンは

knoppix_v4.0.2CD_20050923-20051116+IPAFont

でした。これを700MBのCD-Rに焼いて準備完了。PCに新しいHDDを装着し、DVDドライブに焼いたCD-Rを挿入して起動します。KNOPPIXはデバイスの認識力が高いようで、最新バージョンを使えば大抵のデバイスをそのまま認識する印象。

無事起動すればシェルを起動し、

$ su -

でrootになっときます。これでパーミッションがどうとか言われる事もないでしょう。

続いてデバイスの情況を確認します。/dev/hdaがコピー元の旧ディスク、/dev/hdbがコピー先の新ディスクになります。

# hdparm -i /dev/hda

/dev/hda:

Model=HDS722525VLAT80, FwRev=V36OA6MA, SerialNo=VN69MHCFEMTX3D
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=52
BuffType=DualPortCache, BuffSize=7938kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: ATA/ATAPI-6 T13 1410D revision 3a:

* signifies the current active mode

# hdparm /dev/hda

/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 30401/255/63, sectors = 488397168, start = 0

予想はしてましたが、デフォルトではDMA転送が有効になってませんでした→これを有効にします。

# hdparm -d1 /dev/hda

/dev/hda:
setting using_dma to 1 (on)
using_dma = 1 (on)

# hdparm -d1 /dev/hdb

/dev/hdb:
setting using_dma to 1 (on)
using_dma = 1 (on)

これでDMA転送有効。ちなみにベンチマークすると

DMA無効

# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 3532 MB in 2.00 seconds = 1766.27 MB/sec
Timing buffered disk reads: 12 MB in 3.33 seconds = 3.61 MB/sec

DMA有効

# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 3532 MB in 2.00 seconds = 1765.39 MB/sec
Timing buffered disk reads: 176 MB in 3.02 seconds = 58.31 MB/sec

こんなに違います(^_^;) マジで桁が違う。

以上で準備が完了しましたので、ディスクの複製に入ります…が、ddコマンドは途中経過とかを一切表示しない→いつ終わるかまったく解んないので、概略作業時間を見積もるため、事前にディスクの一部のみを複製して転送速度を計っときます。

# dd if=/dev/hda of=/dev/hdb count=1000000
読み込んだブロック数は 1000000+0
書き込んだブロック数は 1000000+0
512000000 bytes transferred in 37.072037 seconds (13810949 bytes/sec)

とりあえず1,000,000ブロック=512MB転送してみました。14MB/s弱という結果が出ましたので、全ディスクがこのペースで複写されるとすると

250GB → 250,000MB / 14MB/s = 17857s = 4.9時間

どうやら1晩放っとけばコピーできるようですね(^_^) ちうことで、実行。

# dd if=/dev/hda of=/dev/hdb

これで無事、新しいディスクに切り換える事ができました(^_^)


追記>

ふと思い立って、HDS722525VLAT80の後継機HDT722525DLAT80のパラメータを調べてみました。

# hdparm -i /dev/hdf

/dev/hdf:

Model=HDT722525DLAT80, FwRev=V44OA70A, SerialNo=VD241BT4DAVEPC
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=51
BuffType=DualPortCache, BuffSize=7674kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=268435455
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: Reserved:

* signifies the current active mode

ということで、同容量250GBモデル同士なら、UDMA6のモードが追加されてるくらいでOSから見えるジオメトリ(シリンダ数/ヘッド数/セクタ数)とか全く同じみたい→どうも、そのまま置き換えが可能みたいな感じです。

う〜む、焦って旧モデル漁る必要はなかったかなぁ(^^;;