I see complaints across twitter and the feedback page, as well as various blog posts about how the Rackspace Cloud doesn’t support this OS, or that OS. With the introduction of PV-Grub, you should be able to run nearly any OS you want – with a bit of work.

Keep in mind, this process is entirely unsupported by Rackspace. If your OS breaks on you, and you’re using some OS no one has heard of, they’ll be hard pressed to support it.

For this process you will need the following:

  • A Tar archive of the filesystem for the OS you want to use, excluding /proc, /sys and /dev
  • The New Cloud Server
  • A good understanding of the OS you want to use.

For my example, I will be using Suse 11.3, it should work the same for other OSes. Let’s go ahead and get right into it.

Step1 – making your tar image

The first thing you’ll have to do is boot into the OS you want to use. My method for this, was to use my home computer and use Virtualbox to boot into a 64bit VM, and proceeded to install Suse11.3. Once in the VM, I switched to the root user and ran

tar -cf / suse.tar --exclude "/bin" --exclude "/proc" --exclude "/sys"

While this ran, I watched some shows on my new BoxeeBox (you should get one too, they’re awesome).

A Note about VMs and 64Bit: You need a recent Processor that supports virtualization technology, VT-x , if your personal computer does not support this, see if a friend can help you out.

After it finished, I ran

scp suse.tar root@suse-staging.failverse.com:suse.tar

And let it ran. This took me at least a couple hours, due to only having a couple Mbits up on my home connection.

Step 2: Rescue Mode and Things to do!

Now that your image is finally uploaded, you will boot your server into rescue mode. This brings up a new server along side it, and emails you a temporary root password. As it uses the same IP and has different keys, you might need to delete a line out of known_hosts before you can connect.

First, you will need to mount your server’s drive. I use the /mnt directory, feel free to mount it wherever you feel.

 mount /dev/sda1 /mnt

Inside of the drive you’ll want to make backups of your tar, dev, proc and sys.

 mkdir stuff
mv /root/suse.tar stuff
mv dev stuff
mv proc stuff
mv sys styff
mv stuff /

Now delete everything from the drive.

 rm -rf /mnt/*

Now lets take the tar and extract everything into the drive.

mv /stuff/suse.tar /mnt/
tar -xvf suse.tar

After this, move your old directories back –

mv /stuff/* /mnt/

And finally, we need to edit some things.

In /etc/resolv.conf
For DFW servers:

nameserver 72.3.128.240
nameserver 72.3.128.241

for ORD servers:

nameserver 173.203.4.8
nameserver 173.203.4.9

In /etc/fstab

proc            /proc       proc    defaults    0 0
/dev/sda1       /           ext3    defaults,errors=remount-ro,noatime    0 1
/dev/sda2       none        swap    sw          0 0

You will also need to edit your interface scripts, for Suse these are found in /etc/sysconfig/network

ifcfg-eth0

BOOTPROTO='static'
IPADDR='YOURSERVERPUBLICIP'
NETMASK='255.255.255.0'
STARTMODE='auto'
USERCONTROL='no'

ifcfg-eth1

BOOTPROTO='static'
IPADDR='YOURSERVERINTERNALIP'
NETMASK='255.255.224.0'
STARTMODE='auto'
USERCONTROL='no'

After that, you will need to set up your IP routes,

My routes looked like this:

#Destination    Gateway        Mask           Device

173.203.218.0   0.0.0.0        255.255.255.0  eth0
10.177.160      0.0.0.0        255.255.224.0  eth1
10.191.192.0    10.177.160.1   255.255.192.0  eth1
10.176.0.0      10.177.160.1   255.248.0.0    eth1
default         173.203.218.1  0.0.0.0        eth0

The second two destinations seem to always be the same for eth1, the gateway for them is the first eth1 entry ending in a .1 octet. If your internal network doesn’t work after a reboot, check what the distro set your route too – the internal Ip of this server was 10.177.164.x, but it didn’t work unless I used that route.

Now that you’re route is set, make sure SSH is set to start on startup, and exit rescue mode.

If all went well, you’ll be able to SSH to your new OS and be good to go – though you may need to tweak settings here and there. If your OS needs a custom kernel, make sure your kernel and grub are configured, and go through my PV-Grub article.

« »