Quick! and easyish, Not a very well-formatted article. but now it is out there at least.

The basic trick is to use a Virtualbox image as base, for example the one from the previous post.

First install the VPS with ubuntu and get the IP settings cat /etc/networks.d/* Results below

auto eth0
iface eth0 inet static
        address ${IPFROMNETWORKS}
        netmask 255.255.255.255
        post-up /sbin/ip route add ${DEFGWFROMNETWORKS} dev eth0
        post-up /sbin/ip route add default via ${DEFGWFROMNETWORKS} 
        pre-down /sbin/ip route del default via ${DEFGWFROMNETWORKS} 
        pre-down /sbin/ip route del ${DEFGWFROMNETWORKS}  dev eth0
        dns-nameserver ${DEFDNS}
        dns-search ovh.net

Note the settings and change your image to reflect edit rc.conf to reflect your settings.

hostname="vpszyxtest.ovh.net"
ifconfig_vtnet0="inet ${IPFROMNETWORKS} netmask 255.255.255.255 broadcast ${IPFROMNETWORKS}"
static_routes="net1 net2"
route_net1="${DEFGWFROMNETWORKS} -interface vtnet0"
route_net2="default ${DEFGWFROMNETWORKS} "
sshd_enable="YES"

/etc/resolv.conf

search ovh.net
nameserver ${DEFDNS}

Add SSH-keys and any other settings you wish.

Convert from vmdk to raw and gzip the image

VBoxManage clonehd --format raw Freebsd1.vmdk Freebsd.vmdk.raw
gzip Freebsd.vmdk.raw

reboot your ovh vps instance to rescue mode, This starts a live linux with the VPS blockstorage on /dev/vdb. Ovh will email you a root password for the rescue mode, when ready.

ssh root@${IPFROMNETWORKS}
umount /mnt/vdb1

Now transfer your raw image and block copy it to the storage.

cat freebsd1.raw.gz | ssh root@${IPFROMNETWORKS} "gunzip | dd of=/dev/vdb bs=1M"

when booting the VPS you need to provide the Geli password via the KVM console then it boots.

  • Routes does not get set at boot.
  • Add manually, and you’ll be able to ssh route add xyz