CloudAtCost Custom OS: Difference between revisions

From eddynetweb's cesspit
Jump to navigation Jump to search
(Added antiquated!)
m (Clarification of procedures.)
 
(11 intermediate revisions by 2 users not shown)
Line 25: Line 25:
* Ubuntu
* Ubuntu
* Many more (check the site)!  
* 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 [https://www.reddit.com/user/rschulze /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).
<source lang="bash">
#!/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 https://boot.netboot.xyz/ipxe/netboot.xyz.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#*/}")"
_IP=${_IP%/*}
cat <<_EOF_ > /boot/netboot.xyz-initrd
#!ipxe
#/boot/netboot.xyz-initrd
imgfree
set net0/ip ${_IP%/*}
set net0/netmask ${_Netmask}
set net0/gateway ${_Gateway}
set dns 208.67.222.222
ifopen net0
chain --autofree https://boot.netboot.xyz
_EOF_
cat <<_EOF_ > /etc/grub.d/09_custom
echo "
menuentry 'netboot.xyz' {
    set root='hd0,msdos1'
    linux16 /generic-ipxe.lkrn
    initrd16 /netboot.xyz-initrd
}
"
_EOF_
chmod +x /etc/grub.d/09_custom
update-grub2 || { grub2-mkconfig -o /boot/grub2/grub.cfg; grub2-set-default 0; }
reboot
</source>


== Prerequisites ==
== Prerequisites ==
Line 42: Line 98:
</source>  
</source>  


'''Note''': This is where you'll need the console. If you're not already on it, do so now.  
'''Note''': This is where you'll need the console. If you're not already on it, go to https://panel.cloudatcost.com/ 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.  
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. When you see the VMWare splash screen, ''quickly'' press the letter "'''C'''".  
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.  
'''Note''': You should now see a "'''grub>'''" prompt. If not, you'll need to reboot and try step 4 again.  
Line 52: Line 108:
5. In the grub prompt, type the following command:  
5. In the grub prompt, type the following command:  


<source lang="bash">linux16 /netboot.xyz.lkrn</source>  
<source lang="bash">linux16 /boot/netboot.xyz.lkrn</source>  


'''Note''': Be prepared to ''quickly'' press "'''M'''" after this next command:  
'''Note''': Be prepared to ''quickly'' press "'''M'''" after this next command:  
Line 62: Line 118:
7. ''Quickly'' press "'''M'''" to bring up the menu.  
7. ''Quickly'' press "'''M'''" to bring up the menu.  


8. Select "manual network setup".
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:   
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:   
Line 74: Line 130:


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.  
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.  
https://netboot.xyz/images/netboot.xyz.gif


That's it!
That's it!
Line 79: Line 137:
----
----


If you have any issues, check the ##CloudAtCost channel on Freenode. Plenty of people there available to help.
If you have any issues, check the ##CloudAtCost channel on Freenode or /r/CloudAtCost on reddit. Plenty of people there available to help.
 
----
 
== Antiquated (need to fix formatting) OS ==
 
Antiquated Custom OS
 
From CloudAtCocks
 
Jump to: navigation, search
This guide has been replaced by Custom OS as it has been marked as antiquated. Please consider using the iPXE script provided on that article before attempting an install using any of these methods.
 
 
 
Contents
 
1 Ubuntu
2 Debian
3 CentOS
4 Fedora
5 Scientific Linux
6 Mageia
7 OpenSUSE
8 Gentoo
9 Alpine Linux
10 ArchLinux
11 RancherOS
12 CoreOS
13 NetBSD
14 OpenBSD
15 DrangonflyBSD
Ubuntu[edit]
 
You will need to obtain an installation image from Ubuntu (Current Minimal/Netinstall ISO as of writing is 16.04 located Here)
 
Build a VM (Ubuntu/Debian) through the CloudAtCost consumer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/current/images/netboot/mini.iso"
When the wget download of the mini.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/mini.iso
grub> linux (loop)/linux
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard Ubuntu install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you may continue on with partitioning and setting up your custom Ubuntu installation.
 
Debian[edit]
 
You will need to obtain an installation image from Debian (Current Minimal/Netinstall ISO as of writing is 8.5.0 located Here)
 
Build a VM (Ubuntu/Debian) through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://cdimage.debian.org/debian-cd/8.5.0/amd64/iso-cd/debian-8.5.0-amd64-netinst.iso"
When the wget download of the debian-8.5.0-amd64-netinst.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/debian-8.5.0-amd64-netinst.iso
grub> linux (loop)/linux
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard Debian install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you may continue on with partitioning and setting up your custom Debian installation.
 
CentOS[edit]
 
You will need to obtain the Netbootcd installation image (Current netbootcd ISO as of writing is 7.2 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://netbootcd.us/downloads/7.2/NetbootCD.CorePlus.iso"
When the wget download of the NetbootCD.CorePlus.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/NetbootCD.CorePlus.iso
grub> linux (loop)/vmlinuz
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard CentOS install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you will need to run
 
sudo /usr/bin/nbscript.sh
to begin the install. You may continue on with partitioning and setting up your custom CentOS installation.
 
 
 
Fedora[edit]
 
You will need to obtain the Netbootcd installation image (Current netbootcd ISO as of writing is 7.2 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://netbootcd.us/downloads/7.2/NetbootCD.CorePlus.iso"
When the wget download of the NetbootCD.CorePlus.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/NetbootCD.CorePlus.iso
grub> linux (loop)/vmlinuz
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard Fedora install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you will need to run
 
sudo /usr/bin/nbscript.sh
to begin the install. You may continue on with partitioning and setting up your custom Fedora installation.
 
Scientific Linux[edit]
 
You will need to obtain the Netbootcd installation image (Current netbootcd ISO as of writing is 7.2 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://netbootcd.us/downloads/7.2/NetbootCD.CorePlus.iso"
When the wget download of the NetbootCD.CorePlus.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/NetbootCD.CorePlus.iso
grub> linux (loop)/vmlinuz
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard Scientific Linux install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you will need to run
 
sudo /usr/bin/nbscript.sh
to begin the install. You may continue on with partitioning and setting up your custom Scientific Linux installation.
 
Mageia[edit]
 
You will need to obtain the Netbootcd installation image (Current netbootcd ISO as of writing is 7.2 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://netbootcd.us/downloads/7.2/NetbootCD.CorePlus.iso"
When the wget download of the NetbootCD.CorePlus.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/NetbootCD.CorePlus.iso
grub> linux (loop)/vmlinuz
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard Mageia install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you will need to run
 
sudo /usr/bin/nbscript.sh
to begin the install. You may continue on with partitioning and setting up your custom Mageia installation.
 
OpenSUSE[edit]
 
You will need to obtain the Netbootcd installation image (Current netbootcd ISO as of writing is 7.2 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://netbootcd.us/downloads/7.2/NetbootCD.CorePlus.iso"
When the wget download of the NetbootCD.CorePlus.iso image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/NetbootCD.CorePlus.iso
grub> linux (loop)/vmlinuz
grub> initrd (loop)/initrd.gz
grub> boot
The installation ISO will boot into the standard OpenSUSE install setup. From there, you will need to navigate to network settings and supply the IP and Gateway provided for your VM in the CloudAtCost customer panel. Use 8.8.8.8 (Google DNS) for the requested DNS server. Once this step has been completed, you will need to run
 
sudo /usr/bin/nbscript.sh
to begin the install. You may continue on with partitioning and setting up your custom OpenSUSE installation.
 
Gentoo[edit]
 
PLEASE UNDER NO CIRCUMSTANCES TRY THIS WITHOUT PRIOR EXPERIENCE OR KNOWLEDGE OF GENTOO AND LINUX/LINUX KERNEL CONFIGURATION
 
PLEASE FOLLOW THE HANDBOOK, THESE ARE JUST GUIDELINES ON HOW TO MAKE GENTOO RUN QUICKLY, YOU WILL NEED TO SET UP NETWORKING TO USE SSH
 
HANDBOOK LOCATED AT Handbook:AMD64
 
Build a DEBIAN VM ONLY through the CloudAtCost customer panel with a disk image size GREATER than 10GB. Log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
mkfs.ext3 /dev/sda3
A new filesystem will be created with the filesize the Debian image for the VM does not use (the image default size is 10GB, so if you build a VM with 20GB, /dev/sda3 will be 10GB). Once that filesystem has been created, next you will need to;
 
mkdir /mnt/gentoo
mount /dev/sda3 /mnt/gentoo
cd /mnt/gentoo
We have now created the filesystem for the root partition for the Gentoo installation, we will need to fetch a stage4 tarball and portage snapshot (easiest use for CloudAtCost customers);
 
wget -o http://gentoo.mirrors.tera-byte.com/releases/amd64/autobuilds/current-stage4-amd64-minimal/stage4-amd64-minimal-20160721.tar.bz2 (current stage4 as of writing)
wget -o http://gentoo.mirrors.tera-byte.com/snapshots/portage-latest.tar.bz2
Once the stage4 file and portage snapshot have completed downloading, we need to enter the following;
 
tar xvjpf stage4*.bz2 && tar xvjpf portage-latest-tar.bz2 -C /mnt/gentoo/usr
This process may take some time to complete, as it is extracting your entire system. Once it completes, we will need to mount /proc, /dev and /sys to continue with the installation;
 
mount -t proc proc /mnt/gentoo/proc
mount --rbind /dev /mnt/gentoo/dev
mount --rbind /sys /mnt/gentoo/sys
Then chroot into our gentoo installation;
 
chroot /mnt/gentoo
env-update && source /etc/profile
At this point, if you want a quick-and-dirty install, you can simply run
 
grub2-mkconfig && grub2-install /dev/sda
Don't forget to run `passwd` to change the root password, or you will be performing these steps all over again.
 
From this point you can reboot into your new Gentoo installation, but you will not have networking. Please follow the handbook for instructions on how to properly configure networking. The driver required is e1000 (modprobe e1000) and the network interface will appear as ens32
 
Alpine Linux[edit]
 
You will need to obtain the Alpine Linux installation image (Current Alpine Linux ISO as of writing is 3.4.3 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd ~ && wget -c "http://dl-cdn.alpinelinux.org/alpine/v3.4/releases/x86_64/alpine-virt-3.4.3-x86_64.iso"
When the wget download of the alpine-virt-3.4.3-x86_64.iso image has completed, you will be returned to the bash prompt.
 
At this point, because Alpine Linux is a syslinux boot based distribution, you will need to extract the image contents into /boot by typing the following into the bash prompt:
 
mkdir /mnt/alpine
mount ~/alpine-virt-3.4.3-x86_64.iso /mnt/alpine
cp -av /mnt/alpine/* /boot/
Now we can reboot to a GRUB prompt
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> linux /boot/vmlinuz-virtgrsec alpine_dev=sda1:ext2 modules=squashfs,ext2 BOOT_IMAGE=/boot/vmlinuz-virtgrsec
grub> initrd /boot/initramfs-grsec
grub> boot
The installation ISO will boot into the standard Alpine Linux console, from which you may proceed with your installation.
 
ArchLinux[edit]
 
Guide to be completed. For the interim, please use vps2arch located at GitHub:drizzt
 
RancherOS[edit]
 
You will need to obtain the RancherOS installation image (Current RancherOS ISO as of writing is 0.6.0 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "https://releases.rancher.com/os/v0.6.0/rancheros.iso"
When the wget download of the rancheros.iso image has completed, you will be returned to the bash prompt.
 
Now we can reboot to a GRUB prompt
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> loopback loop (hd0,1)/rancheros.iso
grub> linux (loop)/boot/vmlinuz rancher.password=password
grub> initrd (loop)/boot/initrd.gz
grub> boot
The installation ISO will boot into the standard RancherOS console, from which you may proceed with your installation.
 
CoreOS[edit]
 
Guide to be completed
 
NetBSD[edit]
 
Guide to be completed
 
OpenBSD[edit]
 
You will need to obtain the OpenBSD image (Current OpenBSD RD image as of writing is 6.0 located Here)
 
Build a VM through the CloudAtCost customer panel and log into that VM with the supplied login credentials using the Console, if you prefer using SSH please be advised you will need the console window open for the entire process. When you arrive at the bash prompt, type the following;
 
cd /boot && wget -c "http://ftp.openbsd.org/pub/OpenBSD/6.0/i386/bsd.rd"
When the wget download of the OpenBSD image has completed, you will be returned to the bash prompt.
 
Hit the 'Ctrl-Alt-Delete' button located in the top right hand corner of the console window to trigger a reboot of the VM.
 
'ctrl-alt-delete' button
When the machine reboots, a VMWare splash page will appear, followed by the Grub2 prompt. At this prompt, use the 'c' key to enter grub console. You will be presented with a prompt that will appear as;
 
grub>
 
At this prompt, type the following;
 
grub> kopenbsd /bsd.rd
grub> boot
The installation ISO will boot into the standard OpenBSD install setup. You can then proceed with the installation of OpenBSD.
 
DrangonflyBSD[edit]
 
Currently unsupported, as DragonflyBSD is built with disklabel64 as opposed to disklabel32.

Latest revision as of 14:14, 9 February 2022

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 netboot.xyz:

  • 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 https://boot.netboot.xyz/ipxe/netboot.xyz.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#*/}")" 
_IP=${_IP%/*}

cat <<_EOF_ > /boot/netboot.xyz-initrd
#!ipxe
#/boot/netboot.xyz-initrd
imgfree
set net0/ip ${_IP%/*}
set net0/netmask ${_Netmask}
set net0/gateway ${_Gateway}
set dns 208.67.222.222
ifopen net0
chain --autofree https://boot.netboot.xyz
_EOF_

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

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

reboot

Prerequisites

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).

Steps

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

2. Run the following command:

cd /boot && wget -c "https://boot.netboot.xyz/ipxe/netboot.xyz.lkrn"

Note: This is where you'll need the console. If you're not already on it, go to https://panel.cloudatcost.com/ 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/netboot.xyz.lkrn

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

6. Then boot into it using the following command:

boot

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 8.8.8.8

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.

netboot.xyz.gif

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.