From CSLabsWiki
Revision as of 19:12, 13 February 2014 by Lundar (talk | contribs) (Windows Setup: fixing)
Contact Person: Ethan Miller
Last Update: unknown
Services: COSI Lab Build, PXE

Hostname: tinkerbell.cslabs.clarkson.edu
Operating system: Debian Wheezy
NIC 1: Clarkson Network (Bonded)
MAC: 00:0d:60:1a:fa:48
CPU: Intel(R) Xeon(TM) CPU 3.20GHz
RAM: 3.0GB

Note: Work on Tinkerbell is in progress. Expect updates at meetings.


Base install

RAID 10 (software) on hard drives set up from previous build. Installed Debian Wheezy via network; used server setup script.

Configure NFS

NFS is used to serve the filesystem over the network to boot from.

  1. Install nfs-kernel-server
  2. edit /etc/exports to include the location of the lab build. Here it is located at /srv/debian. The line should read as /srv/debian *(ro,no_root_squash,no_subtree_check,async)

Setup TFTP

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.

  1. Install tftp-hpa
  2. In the root folder for tftp (usually /srv/tftp, but can be set to another folder) create a folder called pxelinux.cfg
  3. In the pxelinux.cfg folder create a file called default. This is the default configuration file.
  4. Setup the configuration file. This file is a syslinux config file, it should be setup as one of those
  5. copy any needed binaries into the tftp folder or appropriate subfolder

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

  1. Clone the repository holding the scripts (TBD - for now, github.com/COSI-Lab/itl_lab_creation).
  2. Run create_build.sh as root.
  3. Following the completion of the script, copy the files to the NFS share on Tinkerbell - I use rsync -avz to do so.

Windows Setup

TFTP setup

In order to netboot using aoe, we load ipxe onto the computer first and use its sanboot utilities to start the OS.

  1. Get ipxe git clone git://git.ipxe.org/ipxe.git
  2. Compile ipxe using some appropriate make command. I used make bin/undionly.kpxe (I believe that most make commands will work)
  3. copy ipxe.lkrn into some directory in the tftp folder
  4. 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

 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.

vblade setup

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.

  1. download vblade on debian this is sudo apt-get install vblade
  2. run vblade using the command sudo vblade -b 65 0 0 eth0 disk.vhd where eth0 is the network interface to use, and disk.vhd is the virtual hard disk to use.

Prepare a windows image

  1. make a windows VM using your favorite windows distro. make sure to select static .vhd format when creating the hard drive.
  2. install an aoe driver
  3. edit the registery to allow netbooting or run CCclient