This weekend, I worked on installing smartos on linode servers. And, I succeed. For memory requirements we need minimal 2GB ram. Hence I installed on Linode2048.

I tried several things:

  • Create 2gb disk and dd smartos usb image on it.
  • Create 1gb disk, 4gb disk and dd smartos live cd on 1gb disk.
  • Create local virtual machine, dd it’s harddisk to linode (This worked once, however after a few reboot, it cannot reboot).

And every time, it is a big failure.

For trying to recover my last try, I tried a new thing. From my linux experiences, I installed a lot of linux with rsync. Especially for virtualization of existing physical servers without reinstall server. Clone tools cannot create vms of servers which have san disks.

I created 1gb hard disk and opened with finnix rescue. I create a active partition with type fat32. The disk label should be msdos. And we will use grub-legacy for grub.

fdisk /dev/sda
...
Command (m for help): o
Building a new DOS disklabel with disk identifier 0x37fe1fe7.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
...
Partition 1 of type Linux and of size 1023 MiB is set

Command (m for help): a
Selected partition 1

Command (m for help): t
Selected partition 1
Hex code (type L to list all codes): c
...
Changed type of partition 'Linux' to 'W95 FAT32 (LBA)'

Command (m for help): w
The partition table has been altered!

Syncing disks.

Mount the new partition (assume /mnt/smartos). Download smartos live cd and rsync contents into /mnt/smartos/. After that we need to install grub.

$grub
root (hd0,0)
setup (hd0)
quit

Boot disk setup completed. Shutdown finnix. Create a second hard disk which size you want. I created 10gb. Do not forget that linode supports 4 disk for each configuration. Add disk as second. Select direct boot on first disk.

Open lish console. I recommend ssh based. Follow setup instructions of smartos. And smartos installed on your linode.

However there is a last step to do. Smartos uses zfs, hence say hello to your arc. Arc probably use your 1gb memory. So we need to minimize arc memory usage. For disk speed I recommend metadata value. Your zfs named as zones:

zfs set primarycache=metadata zones
zfs set secondarycache=metadata zones

Reboot your server, and arc will not use 1gb of your server.

Next:

  • Create a setup smf to configure global zone configuration.
  • Create your zones (you cannot create kvm inside vps)
  • Serve something :)