統計数理研究所の丸山です。

実は私も最近 SSD(しかも2個)を調達して、まさに自分が使っている Lenovo
X230に付けようとしていたので、西村さんと殆ど同じ環境を再現できる状況で
した。そこで、今日の日曜日の計画をキャンセルして実験してみました。結論
から書きます。

- 複製元SSDは /dev/ada0 で、FreeBSD10.1 のfullシステムが /dev/ada0p2 に
  ufs で入っている(パーティション分けはしてない)
- このシステムを /dev/ada1 の SSD にコピーして、ちゃんと起動するディス
  クを作りたい。
- コピー作業は liveCDで起動した FreeBSD10.1 上で行なう。

という条件で考えます。一つの答えは

gpart create -s mbr ada1
gpart bootcode -b /boot/boot0 /dev/ada1
gpart add -t freebsd ada1
bsdlabel -w -B -b /boot/boot /dev/ada1s1
gpart modify -i 1 -t freebsd-ufs /dev/ada1s1
newfs -J -U -t /dev/ada1s1a
mount /dev/ada1s1a /tmp/X
dump 0f - /dev/ada0p2 | (cd /tmp/X; restore rf -)
/tmp/X/etc/fstab を直す(/dev/ada0p2 だったところを /dev/ada1s1a に)

です。前のメールでは boot0cfg を使う、と書きましたが、
gpart bootcode -b /boot/boot0 /dev/ada1 でも良いことがわかりました。

dump+restoreのところは

mount /dev/ada0p2 /mnt; (cd /mnt; tar cf - .)|(cd /tmp/X; tar xfp -)

にしても大丈夫でした。

ケアレスな打ち間違いは絶対にしないでください。一つ間違うと、複製元を壊
します。"p" と "s" の違い、 "0" と "1" の違いなどは絶対に間違わないで、
厳格にこの通りやってください。

既に ada1 に geom 情報が何か書き込まれていると、冒頭の gpart でいきな
りエラーになります。 gpart を使って既存の geom 情報を消すことはできま
すが、私はせっかちなので、

  dd if=/dev/zero of=/dev/ada1 count=1000

とかやって先頭の方の情報をごっぞり破壊してから上の作業をやります。ここ
で ada1 を ada0 と間違えると、どんな悲劇が起こるか、想像できますよね?
想像できない人は、この作業には手を出さない方が良いでしょう。回復方法が
ありませんから注意してください。

この方法では /dev/ada0p2 とかが /dev/ada1s1a とかに変わってしまいます。
つまりディスクのデッドコピーではありません。 stage0 boot code と 
stage1 boot code は全く違ったものに置き換わり、ブート時の様子はかなり
違ったものになると思います。ただしOS起動後は同じ動作をしますので、サー
バーとしては同じように使えるはずです。

boot code も含めてコピーする方法は、これから調べてみますが、そのために
お使いの「複製元」の geom 情報が必要になると思います。

        gpart show

の出力を私にお送りください。

--------
丸山直昌@統計数理研究所
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信