さくらのVPS上に、mfsbsdのイメージを使ってvirtio ベースの環境をスクラッチで作りました。
作った後に、移設元の環境からzfs send
で流し込んで丸ごと環境を移設しました。
virtioでブートするように設定するだけなら、以下の作業で可能です:
mfsbsdイメージを作り、アップロードしてブートする。もちろん、virtio はON。
ログインし、適当なディレクトリに、ここから、パッケージをもってきて展開する。
インストール先のシステムの /boot/modules に パッケージ内の boot/modules 以下にあるファイル
をコピーする(*.ko
のみ)
/boot/loader.conf に以下を入れる
virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"
/etc/rc.conf に以下を入れる
ifconfig_vtnet0_name="em0"
つまり、ブートローダにvirtio関係ドライバを入れ、vtnet ドライバに指示して 現状とネットワークインターフェースの名前を同じにさせてしまえば、終わりです。 暫く前は、vtnet は使えなかったようですが、今や、vtnetもバッチリです。
既存のnon-virtioでzfsをルートとしたシステムも、上記の設定だけで置き換えできます。 zpool の中のdevice参照がどうなっているのか心配だったのですが、杞憂でした。 bootに失敗したら、慌てず騒がず ISO ブートのところで、virtio を off してブートすれば良いかと。
今回も、 前の記事(「さくらのVPSの乗り換えしました (FreeBSD 9 - ZFS root)」) に書いたように、root file system を、zfs の pool 直下でなく、一段下に置いておいたおかげで、 作業が大変スムースにできました。実際移設の時は、以下の手順でしました:
rpool
とする。zfs create rpool/temp
するzfs recv
する。zpool
のbootfs
、/boot/loader.conf
/etc/fstab
を必要に応じて調整する。/etc/rc.conf
の設定変更ホント、zfs のおかげで移設が楽になりました。