Setting up a PXE installation of SUSE Linux
The following is mostly just my experiences with a guide I found on SUSE's website to do the same. In my case, my install server is running SUSE Linux 9.2.
Server PrerequisitesIn my case, the DHCP, PXE, TFTP, and NFS server will all be running on the same machine. You will need to install the following from YaST:
- dhcp-server
- tftp
- syslinux (on the tftp server)
Configuring DHCPSince the only machines on the same network as the DHCP server are the ones I would like to power on, in /etc/dhcpd.conf, I created the following subnet definition:
subnet 192.168.26.0 netmask 255.255.255.0 {
range 192.168.26.100 192.168.26.200;
next-server 192.168.26.1;
filename "pxelinux.0";
}
I only want the DHCP server to be active on one interface, so I edited the following line in /etc/sysconfig/dhcpd
DHCPD_INTERFACE="eth1"
Then you can start the DHCP server:
/etc/init.d/dhcpd start
Sharing the distributionYou will need to share the distribution through some means. Most people use NFS, but it can be harder to debug issues with than HTTP or FTP. Here is how to setup NFS to share out the SUSE DVD from /data/SUSE: Edit /etc/exports to share /data/SUSE to the clients.
/data/SUSE *(ro,insecure,all_squash,async)
Then you will need to restart the NFS server services:
/etc/init.d/nfsserver restart
Preparing the bootstrapWe will need to copy several files required for boot strapping into a directory that tftpd can serve out.
sudo mkdir -p /srv/tftpboot/pxelinux.cfg
Then go into the boot/loader directory from the SUSE distribution you wish to install over the network, and copy several files into /srv/tftpboot:
sudo cp linux* initrd* message memtest /srv/tftpboot
sudo cp isolinux.cfg /srv/tftpboot/pxelinux.cfg/default
Then you will need to copy the pxelinux bootstrap that came with the syslinux package:
sudo cp /usr/share/syslinux/pxelinux.0 /srv/tftpboot
Now we will need to make several modifications to the pxelinux configuration. Open up /srv/tftpboot/pxelinux.cfg/default and make the following modifications:
- Add the following to each append= line: insmod=bcm5700 netdevice=eth0 install=nfs://192.168.100.1/usr/local/dist/SLES8
- At the bottom, remove the lines mentioning gfxboot, readinfo, framebuffer
Enable the tftp daemonFirst, edit /etc/xinetd.d/tftp, and change the server_args path to use /srv/tftpboot Then start her up, and git r' done.
sudo chkconfig tftp on
sudo /etc/init.d/xinetd start
Test the tftp daemon
% cd /tmp
% tftp localhost
tftp> get linux
If it gives you a time out error, you may have specified the wrong path to your boot strap files. If this is the case, do not forget to restart xinetd after making changes.
Finishing UpYou are now ready to install. If you reboot and it complains that it cannot find the distribution, then you may want to look for any NFS error messages. Worst case, try FTP.
|