Windows Server2012R2のOS起動ディスクを、ddrescueを使ってHDDからSSDへ移行した
何度か試行錯誤したんだけど、結論から言うと、
Ubuntu14.04をUSBブートする
↓
ddrescueをインストールする(まあすでに入れてるんだが)
↓
移行元HDDのOSパーティションを移行先SSDの容量より小さくしておく(fdiskで調整してもいいだろうけど僕はGPartedを用いた)
↓
(移行元HDDを/dev/sdc、移行先SSDを/dev/sdaとする。間違えると死ぬ)
ddrescue -f /dev/sdc /dev/sda
↓
HDDのほうが容量が大きかったので、SSDへの書き込みがオーバーした時点でddrescueは終了する
↓
sudo fdisk /dev/sda でSSDを対話モードで操作する
↓
パーティションテーブルに無駄なパーティション情報があったので削除する
一度シャットダウンし、ブート時にBIOSのブートメニューから移行先SSDを指定する。うちの場合だとF12でブートメニューに入れたがこれはマザーに依るだろう。これでうちは正常に起動したので、OSパーティションの後ろの余った部分を「ディスクの管理」から調整して終了、という感じだった。
なぜ試行錯誤していたかというと、ddrescueでパーティションを指定すべきかディスクまるごとを指定すべきか、それを移行元と移行先でそれぞれ考えて失敗していたので。
結論としてはHDDの頭にあるMBRもSSDに移さないと(多分)いけなかったので、いずれもパーティションのみでのコピーでは起動しなかった。なので、ddrescueは上記のようなコマンドになるわけである。
HDDが2.5TBでSSDが128GBだからまあ初めはそのままディスク指定してコピーってのはためらうわけである。だってどう考えてもオーバーフローするからね。まあ結果的にはオーバーフローしようがddrescue君がなんとかしてくれたので良かったが。予めSSDの境界になるだろうところに空き領域をつくっていたのも良かったのかもしれない。
HDD(2.5TB) /dev/sdc
[ |---OS(sdc1)---|-------空---------|-------その他パーティション-----| ]
↓ ddrescue -f /dev/sdc /dev/sda
SSD(128GB) /dev/sda
[ |---------移行先---------| ]
概略図だとこう。
もっとスマートな手順(ベアメタル回復)とかあったとは思うんだけど、セットアップディスクがどっかいっちゃってて探すのめんどくさかったのでね;; とりあえず動いているのでよしとしよう。やはりSSDは早い。ちなみにPCのその他の構成は基本的にSandy世代だ。i5 2500KにRAM16GBなのだがまだまだいけそうである。だけど偶然にも友人たちからH87のマザーと650Wの電源をもらってしまった僕は…(次回に続く?