pavement

Installing FreeBSD with netboot

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
(md0 instead of md0c required from FreeBSD version 7)
(48.25)
Line 20: Line 20:
  
 
== TFTP ==
 
== TFTP ==
Next up is starting a tftp-server from which the firmware can load the [http://en.wikipedia.org/wiki/Preboot_Execution_Environment#Network_Bootstrap_Program network bootstrap program] from. This is easiest done by using inetd, remove the leading # from the following line in the file /etc/inetd.conf.
+
Next up is starting a tftp-server from which the firmware can load the [http://en.wikipedia.org/wiki/Preboot_Execution_Environment#Network_Bootstrap_Program network bootstrap program]
 +
5a8
 +
from. This is easiest done by using inetd, remove the leading # from the following line in the file /etc/inetd.conf.
 
  #tftp  dgram  udp    wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
 
  #tftp  dgram  udp    wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot
  
Line 56: Line 58:
  
 
[[Category : Installation]]
 
[[Category : Installation]]
Add the pxeboot directory to nfs exports file
+
Add the pxeboot
 +
5a8
 +
directory to nfs exports file
 
  echo '/usr/local/pxeboot -alldirs -maproot=root -ro' >> /etc/exports
 
  echo '/usr/local/pxeboot -alldirs -maproot=root -ro' >> /etc/exports
  

Revision as of 17:05, 14 February 2011

Contents

FreeBSD bootonly

The first step to installing FreeBSD via netboot is to acquire FreeBSD. We'll be using the bootonly-iso, this can be fetched at your nearest ftp.

Download the bootonly-iso:

fetch ftp://ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.1/FreeBSD-8.1-RELEASE-i386-bootonly.iso

Mount the iso-image and copy the contents to some location:

mdconfig -a -t vnode -f FreeBSD-8.1-RELEASE-i386-bootonly.iso
mount_cd9660 /dev/md0 /mnt
mkdir /usr/local/pxeboot
cp -R /mnt/ /usr/local/pxeboot
umount /mnt
mdconfig -d -u 0

The main reason for copying the cd is to edit the file /boot/loader.conf adding the following line:

echo 'vfs.root.mountfrom="ufs:/dev/md0"' >> /usr/local/pxeboot/boot/loader.conf

This will cause the lovable FreeBSD sysinstall to start. The pxeboot will mount the rootfs from the file mfsroot.gz instead of the default of mounting a NFS-root.

NIC with PXE boot

For the pxeboot to work you might have to update your NIC with new firmware. See your manufacturer homepage for more information.

TFTP

Next up is starting a tftp-server from which the firmware can load the network bootstrap program 5a8

from. This is easiest done by using inetd, remove the leading # from the following line in the file /etc/inetd.conf.
#tftp   dgram   udp     wait    root    /usr/libexec/tftpd      tftpd -l -s /tftpboot

Make the tftpboot directory and copy the boot/pxeboot file to it.

mkdir /tftpboot
cp /usr/local/pxeboot/boot/pxeboot /tftpboot/

Then start inetd by adding it to rc.conf and starting it.

echo 'inetd_enable="YES"' >> /etc/rc.conf
/etc/rc.d/inetd start

It can be a good idea to start a tail of messages and xferlog file to see what is happening. In another terminal run:

tail -f /var/log/messages /var/log/xferlog

DHCP

Now it's time for the DHCP-server that the firmware will query to get address and path to the network bootstrap program.

Install isc-dhcp3-server

pkg_add -r isc-dhcp3-server

Edit /usr/local/etc/dhcpd.conf adding the following lines.

ddns-update-style none;
server-name "pxe-gw";          # name of the tftp-server
server-identifier 172.24.0.4;  # address of the tftp-server
next-server 172.24.0.4;        # address of the NFS-server
subnet 172.24.0.0 netmask 255.255.255.0 {
    range 172.24.0.137 172.24.0.253;
    option routers 172.24.0.1;
    option root-path "/usr/local/pxeboot"; # root-path for NFS
    filename "pxeboot";                    # filename of NBP (network bootstrap program)
}

NFS

Add the pxeboot 5a8

directory to nfs exports file
echo '/usr/local/pxeboot -alldirs -maproot=root -ro' >> /etc/exports

Enable NFS in rc.conf

echo 'nfs_server_enable="YES"' >> /etc/rc.conf

Start nfsd

/etc/rc.d/nfsd start

Reboot your computer and select PXE-boot you should now enter sysinstall, have a nice day!

See also

Personal tools