小野寛生です。

2015年3月1日 19:54 丸山直昌 <maruy...@ism.ac.jp>:
> 統計数理研究所の丸山です。

> 正しいシステムコピーの方法は、

「これが正しいたったひとつの方法」だというものはないと思います。

> 0. デバイス上に領域を確保する
> 1. newfs でファイルシステムを作る
> 2. 複製元をnewfs で作ったファイルシステムにコピーする
>    (私の好みはdump+restore ですが、ここは最近の弱点が少ない tar でも可
>     能かも知れません)
> 3. boot0cfg で新しいデバイスの stage0 boot code を正しく設定する
> 4. bsdlabel コマンドの -B オプションで stage1 boot code を正しく設定する
> 5. 必要に応じて 新しいシステムの /etc/fstab とか /etc/hostname などを直す
>
> です。2.x時代から4.xまで成功していたという「横着な方法」の最初の部分の
> 「最小システムをインストールする」というところが、実は3,4 のステップの
> 代用になっていたわけです。でもたったコマンド2つで済むことに何でそんな
> 労力かけていたのですか?

「最小システムをインストールする」
を、
「fdisk して bsdlabel -B して newfs して boot0cfg して」
の代用にするのは、特にここが問題になるということは思い当たりません。
それはそれで正しい手順だと思います。
覚えることが少なくて済むという利点もあると思います。

あとまあ、
>> #mount /dev/ada0p2 /mnt
>> #mount /dev/ada1p2 /tmp/x

と書かれているので、実際は MBRではなくGUIDパーティションを使っていて

gpart add なんたら
gpart add なんたら
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1

という感じになると思います。このへんの変化を吸収してくれるという利点もあるかもしれません。
私が気がついていなくて、何か問題があるようでしたらご指摘ください。

やりかたを云々するなら、昔は dd で disk to disk でコピーするなんて話もよくみかけましたし、
私は試してみたことはありませんが、(大きな容量のディスクに対して)

dd で disk to disk でコピーして
fdisk と bsdlabel でスライスとパーティションを広げて
growfs で fs 領域を広げる

という手順だってあると思います。(growfs がきちんと動くのかは知りません)

>> #mount /dev/ada0p2 /mnt
>> #mount /dev/ada1p2 /tmp/x
>> #(cd /mnt;tar cf - [bc,e-v]*) |(cd /tmp/x;tar xvf -)

という手順も、(ここでも見落としていたらすみませんが) ぱっと見は問題があるようには見えません。
(tar で絶対パスでアーカイブしてしまったとかなら問題ですが)

だからこそ、tar でコピーを行った際に出たエラーメッセージがわからないと、どういう問題が起きているのかわからず解決しようがないと思います。
というわけで、私は「解決方法」そのものではなく「エラーメッセージを取得する」手順を提案しています。
_______________________________________________
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"

メールによる返信