|Services:||COSI Lab Build, PXE|
|Operating system:||Debian Wheezy|
|NIC 1:|| Clarkson Network (Bonded) |
|CPU:||Intel(R) Xeon(TM) CPU 3.20GHz|
Tinkerbell was a PXE server that has been retired. This article is being kept until we are pretty sure that there is no useful info here.
RAID 10 (software) on hard drives set up from previous build. Installed Debian Wheezy via network; used server setup script.
NFS is used to serve the filesystem over the network to boot from.
- Install nfs-kernel-server
- edit /etc/exports to include the location of the lab build. Here it is located at /srv/debian. The line should read as
TFTP is used to send files from the server to the client. Usually these files are intermediate software that load the OS via AoE, or NFS.
- Install tftp-hpa
- In the root folder for tftp (usually /srv/tftp, but can be set to another folder) create a folder called pxelinux.cfg
- In the pxelinux.cfg folder create a file called default. This is the default configuration file.
- copy any needed binaries into the tftp folder or appropriate subfolder - For the lab build, this is /srv/tftp/cosi-build
DEFAULT menu.c32 TIMEOUT 30 prompt 0 menu title Tinkerbell LABEL DEFAULT MENU LABEL Cosi Build (Debian) KERNEL cosi-build/vmlinuz-3.12-1-amd64 APPEND ip=dhcp root=/dev/nfs nfsroot=22.214.171.124:/srv/debian ro init=/lib/systemd/systemd INITRD cosi-build/initrd.img-3.12-1-amd64
Creating the Lab Build
This is where we make the lab build. The script used is based on the one used for the ITL build, forked at version TBD. The build takes place on your system - i.e., NOT ON TINKERBELL! It requires at least 6GB of RAM to create the build - so do it on a machine with a lot of memory. Recommendation here is 16GB.
Required packages: binutils debootstrap
- Clone the repository holding the scripts (TBD - for now, github.com/COSI-Lab/itl_lab_creation).
- Make changes to the build now! Edit the scripts!
- Following the completion of the script, copy the files to the NFS share on Tinkerbell - I use
rsync -avzto do so.
- Now, your files are in /srv/debian. Copy everything from /srv/debian/boot to /srv/tftp/cosi-build and update the /srv/tftp/pxelinux.cfg to point to the appropriate files.
In order to netboot using aoe, we load ipxe onto the computer first and use its sanboot utilities to start the OS.
- Get ipxe
git clone git://git.ipxe.org/ipxe.git
- Compile ipxe using some appropriate make command. I used
make bin/undionly.kpxe(I believe that most make commands will work)
- copy ipxe.lkrn into some directory in the tftp folder
- in the default file make an entry to netboot with. here is what an example entry might look like.
LABEL Windows KERNEL ipxe.lkrn INITRD script.conf
5. Make a startup script, without this ipxe will talk to the local dhcp server and you will end up back at the starting boot menu! The startup script should look like the following
#!pxe dhcp net0 set keep-san 1 sanboot aoe:e0.0
6. You should now be able to netboot windows using the new entry in the boot menu if the aoe server is running.
In order to boot windows we need a aoe server to host the disk image we will boot with. This can be done using vblade a virual aoe server emulator, or by buying a coraid aoe server. We use vblade.
- download vblade on debian this is
sudo apt-get install vblade
- run vblade using the command
sudo vblade -b 65 0 0 eth0 disk.vhdwhere eth0 is the network interface to use, and disk.vhd is the virtual hard disk to use.
Prepare a windows image
- make a windows VM using your favorite windows distro. make sure to select static .vhd format when creating the hard drive.
- install an aoe driver
- run CCBootClient, uncheck all options and click "Install Client"
- restart the VM
- locate the drivers for the NIC's that will be used to netboot.
- use CCBoot PnP (installed with CCBootClient) and install the correct drivers. You may need to press all the buttons!
- shutdown the VM.
- setup vblade using the VM's vhd file
- try to boot from the image. If it works the lab image is finished, install whatever software you want and proceed to cow.