CloudAtCost Custom OS

From eddynetweb's cesspit
Jump to navigation Jump to search

This tutorial attempts to remake the original one present on the original CloudAtCost wiki. The original wiki had become rather overrun with spam, so the owner shut it down.

Supported OS

The following OS's are supported, according to

  • Antergos
  • Arch Linux
  • Architect Linux
  • CentOS
  • CoreOS
  • Debian
  • Fedora
  • FreeBSD
  • Gentoo
  • Mageia
  • Manjaro Linux
  • Microsoft Windows
  • MirOS
  • OpenBSD
  • OpenSUSE
  • RancherOS
  • Scientific
  • Tiny Core Linux
  • Ubuntu
  • Many more (check the site)!

Script (Broken, will fix later)

Simply create and execute this script to boot directly into the generic iPXE kernel without hassle.

Special thanks to /u/rschulze for the script.

Update: People are reporting that the script is broken again! I'm keeping it here for when I have time to edit it, but just be aware. Feel free to fix it if you have time (I think the lkrn file just needs to be updated).

#!/usr/bin/env bash

cdr2mask ()
   # Number of args to shift, 255..255, first non-255 byte, zeroes
   set -- $(( 5 - ($1 / 8) )) 255 255 255 255 $(( (255 << (8 - ($1 % 8))) & 255 )) 0 0 0
   [[ $1 -gt 1 ]] && shift ${1} || shift
   echo "${1-0}.${2-0}.${3-0}.${4-0}"

cd /boot || exit 1
wget --continue --output-document=/boot/generic-ipxe.lkrn

_Dev="$(ip route list | awk '/^default/ {print $5}')"
_Gateway="$(ip route list | awk '/^default/ {print $3}')"
_IP="$(ip -o -4 addr show "${_Dev}" | awk '{print $4}')"
_Netmask="$(cdr2mask "${_IP#*/}")" 

cat <<_EOF_ > /boot/
set net0/ip ${_IP%/*}
set net0/netmask ${_Netmask}
set net0/gateway ${_Gateway}
set dns
ifopen net0
chain --autofree

cat <<_EOF_ > /etc/grub.d/09_custom
echo "
menuentry '' {
    set root='hd0,msdos1'
    linux16 /generic-ipxe.lkrn
    initrd16 /
chmod +x /etc/grub.d/09_custom

update-grub2 || { grub2-mkconfig -o /boot/grub2/grub.cfg; grub2-set-default 0; }



I would advise doing this on a fresh CloudAtCost server, preferably using the Debian 8 Jessie image. Make sure your console works, as you'll need it throughout the entire installation.

It appears that the console works much more consistently on DC-2 as opposed to DC-3, so I'd give it a shot there for the most successful installation (plus, DC-2 is probably as stable you're gonna get at the moment).


1. Login into your fresh server, preferably using the console (SSH will work too).

2. Run the following command:

cd /boot && wget -c ""

Note: This is where you'll need the console. If you're not already on it, go to and open the console.

3. Reboot your server using Ctrl+Alt+Del (or clicking the blue square in the corner of the console), or using the "reboot" command.

4. Right after the VMWare splash screen, the GRUB boot menu will appear. Quickly press the letter "C".

Note: You should now see a "grub>" prompt. If not, you'll need to reboot and try step 4 again.

5. In the grub prompt, type the following command:

linux16 /boot/

Note: Be prepared to quickly press "M" after this next command:

6. Then boot into it using the following command:


7. Quickly press "M" to bring up the menu.

8. Select "Manual network configuration".

9. Now you'll need to provide the following information in order for the script to download the image. This can all be found on the information icon in the CloudAtCost panel:

IP address (found in panel)
Subnet mask (if you have issues relating to networking, try leaving this blank)
Default gateway (found in panel)
Set DNS to

Note: To avoid HTTP/S timeouts when fetching iPXE bootfiles, avoid inputting netmask while performing the previous steps. If iPXE times out HTTP/s connections, reboot and perform the steps above starting from the grub prompt. This is a handshake bug between CloudAtCost VMs and our iPXE host server that we are currently working on addressing.

10. If everything is successful, you should now get a list of OS's which you can choose to your hearts content. Pick the OS you'd like and then follow the instructions. The script will lead you to installing the operating system of your choice.

That's it!

If you have any issues, check the ##CloudAtCost channel on Freenode or /r/CloudAtCost on reddit. Plenty of people there available to help.