diary of a madman RSSフィード

2007-03-14 Wed

[] ThinkPad X60s DtoD(Disk to Disk) リカバリー領域の移植  ThinkPad X60s DtoD(Disk to Disk) リカバリー領域の移植を含むブックマーク

ThinkPad X60s を買った。

安かったので HDD 40GB のモデルを購入したんだけど、もちろんそんな容量では話にならないので、さっそく HDD換装した。

その際 DtoD(Disk to Disk)リカバリー領域を移植したので、その時の記録を残しておこうと思う。なお、本体と換装ドライブ以外に私が使ったのは以下のもの。

私がやった手順は以下のとおり。

  1. ドライブ換装する。元のドライブUSB 接続な HDD ケースに納める。
  2. 有線 LAN を使ってネットワークブート。適当なディスクレLinux 環境を起動させる。また、USB移植元のドライブを接続して認識したことを確認する(dmesg とか /proc/partitions とか)。
  3. " fdisk -l /dev/sdb " などで DtoD 領域のサイズを確認した後、移植先の HDD に適当にパーティションを確保して、ddパーティション内容を丸ごとコピー。
    • パーティションID 0x12 なのが DtoD 領域。もちろん、移植パーティションの ID も 0x12 にしておく。
    • 移植元が /dev/sdb2、移植先が /dev/sda2 なら、普通に dd if=/dev/sdb2 of=/dev/sda2
    • 移植先のパーティションはディスクのどこに確保しても大丈夫なようだが、とりあえずディスクの末尾に作ってみた。
    • dd が終われば移植元のディスクはもう使わないので、ケーブルを抜いておく。
  4. 移植先のディスクのジオメトリ情報を記録しておく。
    • sfdisk -l /dev/sda
    • fdisk -l /dev/sda
  5. 移植パーティションのブートレコードを取り出す。(移植パーティションは /dev/sda2)
    • dd if=/dev/sda2 of=/tmp/sda2.bin count=1
  6. file コマンドなどで、先ほど取り出した中身を確認する。ヘッダ数(heads)、開始セクタ位置(hidden sectors)、セクタ数(sectors)などが実際の値ではなく、移植元のドライブの値になっているはずなので、適当なバイナリエディタ等で修正する。
    • 編集するアドレスは、dosfstools のソースの mkdosfs.c の msdos_boot_sector の定義が参考になる。
    • バイナリの編集には vim + xxd が便利。
    • 成功したかどうかは、セーブして file コマンドで確認。*1
  7. ブートレコード移植パーティションに書き戻す。
    • dd if=/tmp/sda2.bin of=/dev/sda2
  8. Lenovo からリカバリー修復ディスケットダウンロードし、そこからブートする。
    • "replace the current mbr" を選ぶ。
  9. 後は、マシン起動時に ThinkVantage ボタンを押せば Rescue and Recovery メニューに入れるはずなので、システムリカバリーを選択して Windows 環境を復旧させれば作業終了。

以上の方法は「私の場合、それで出来た」というだけであって、当然ながらあらゆる保証はしないので、参考にする場合は At your own risk で。それに、たぶんもっと簡単な方法がありそうな気がする。

その他、作業中に気づいた点などは以下のとおり。

なお、今回の作業にあたって、X40 - ThinkPad X60s/X40/X31 メモ の記述がたいへん参考になったことを申し添えておく。

*1:結果はこんな感じ。> sda2.bin: x86 boot sector, code offset 0x58, OEM-ID "MSDOS5.0", sectors/cluster 8, Media descriptor 0xf8, heads 255, hidden sectors 225520470, sectors 8916074 (volumes > 32 MB) , FAT (32 bit), sectors/FAT 8680, reserved3 0x800000, serial number 0xccdee5ea, label: "SERVICEV001"

トラックバック - http://d.hatena.ne.jp/macks/20070314/p1