netbooting Debian

Installation Notes

INCOMPLETE
 

Hardware:

- Xserve G4 cluster node (please see links section for the full specs).
- ATI Radeon 7000 (32MB) PCI graphics card (off of ebay).
- Red Hat Enterprise Linux 5 (RHEL5) machine as the DHCP and TFTP server.
- BayStack 303 switch.

Software:

- Debian 5.0.7 (Lenny).

Overview:

The goal was to install Lenny on our xservers but to get to that ponit it was quite a challenge. Here's what didn't work and what we recomend avoiding if you wan't to save time and your sanity.

We found that trying to boot via a new off the shelf USB external CD/DVD drive did not work as Open Firmware simply did not recognize the USB device to boot off of. We did not test this extensiverly as it would be difficult to try different enclosures.
Next we tried a new Firewire external CD/DVD drive and that too was not recognized by Open Firmware and again we were unable to boot of the drive. We tried both Firewire A and B ports. Again we did not test this with different enclusures as that would be very time consuming and costly.
We also got the xserver to boot into targeted disk mode by connecting it to a iMac G4, making the xservers harddrive show up as another mounted drive on the iMac, but there wasn't any obvious way we could actually start the installer for Lenny and have it target the XServes hdd while booted into Mac OS. We didn't play around much with this either as it seemed like another dead end.

This left us with one last option, netbooting the XServes. 

We followed 2 guides http://www.debian.org/releases/stable/powerpc/ch04s05.html.en and http://wiki.ppckernel.org/w/Mac_Netboot we found the latter to be more helpful but combined bits of both to help us through the process. As well as a fair bit of googling and posting on the debian  ppc mailing list http://www.debian.org/ports/powerpc/.
 
In order to get a functioning netboot environment for our XServes, we had to setup the following on our RHEL5 workstation:
  • TFTP Server
  • DHCP Server
For TFTP, it was already installed on our RHEL5 machine, so all we had to do was edit the tftp config file found in "/etc/xinetd.d/tftp" and changed the highlighted line.

# default: off
# description: The tftp server serves files using the trivial file transfer \
#       protocol.  The tftp protocol is often used to boot diskless \
#       workstations, download configuration files to network-aware printers, \
#       and to start the installation process for some operating systems.
service tftp
{
        disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

Once we did that we started xinetd via "/etc/init.d/xinetd restart".
Since we had this on it its own network with the XServ we set the permissions to he /tftpboot/ directory to 777.
 
Now for the DHCP server, again it was already installed on the RHEL5 machine so we had to first set the ip address of the network interface we were using. We used a 10.10.10.1 /255.255.255.0 address. Restarted the networking and then edited the dhcpd.conf file to look like this.

ddns-update-style interim;
allow booting;
allow bootp;
 
subnet 10.10.10.0 netmask 255.255.255.0 {
        range 10.10.10.100 10.10.10.254;
        default-lease-time 600;
        max-lease-time 7200;
 
}
group {
        option routers 10.10.10.1;
        filename "/tftpboot/yaboot";
        next-server 10.10.10.1;
 
        host node0 {
                hardware ethernet <ip address of our xserver>;
        }
}

This was probably the trickiest part but thanks to the debian ppc mailing list http://www.debian.org/ports/powerpc/ and a couple very helpful people, we got a dhcp.conf file that worked. ** node0 is the name we just gave to our xserver.
 
Now we started our DHCP service with "/usr/sbin/dhcpd".
 
Next we got all the files ready in /tftpboot/ directory for netbooting.
 
initrd.gzvmlinuxyaboot (These 3 files came from this site here)
 
yaboot.conf (came from from the wiki page but we had to modify it as follows (we combined some of the parts from the current yaboot.conf  file) ):

device=enet:
partition=0
timeout=50
init-message="Debian GNU/Linux Network boot"
default=linux
 
image=vmlinux
    initrd=initrd.gz
    label=linux
    initrd-size=13546
    #append="init=/linuxrc"
 
image=vmlinux
    initrd=initrd.gz
    label=linux
    initrd-size=13546
    #append="init=/linuxrc"

Made all the permission to them 777.

Only thing left was to figure out how to boot off the network, in OpenFirmware. Luckily for you we saved our commands.

  1. Power on the XServe.
  2. Press and hold "control+command+o+f" until open firmware starts up.
  3. Type "boot enet:0,yaboot" and press enter. We both ran into several articles that had users stating that "boot enet,yaboot" worked for them but that was not working for us.

*If you receive an error instead of the installer, chances are you have a mis-configured yaboot.conf file, or you are missing files in your /tftpboot directory.

© 2002-2012 Jeroen Diederen. Drupal theme by Kiwi Themes.