Installing FreeBSD with netboot
(added the nfs part to make it more complete..) |
|||
Line 13: | Line 13: | ||
The main reason for copying the cd is to edit the file /boot/loader.conf adding the following line: | 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/md0c"' >> /usr/local/pxeboot/boot/loader.conf | echo 'vfs.root.mountfrom="ufs:/dev/md0c"' >> /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. | |
− | This | + | |
== NIC with PXE boot == | == NIC with PXE boot == | ||
Line 49: | Line 48: | ||
option routers 172.24.0.1; | option routers 172.24.0.1; | ||
option root-path "/usr/local/pxeboot"; # root-path for NFS | option root-path "/usr/local/pxeboot"; # root-path for NFS | ||
− | filename "pxeboot"; # filename of NBP | + | filename "pxeboot"; # filename of NBP (network bootstrap program) |
} | } | ||
Line 56: | Line 55: | ||
[[Category : Installation]] | [[Category : Installation]] | ||
+ | Add the pxeboot 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 == | ||
+ | * [http://gja.space4me.com/things/Using_pxeboot_Install53.html Using pxeboot to install FreeBSD 5.3] | ||
+ | * [http://people.freebsd.org/~dwhite/pxeboot.html Quick and Dirty PXE Boot Setup for FreeBSD 4.x and later] |
Revision as of 04:31, 4 November 2007
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/releases/i386/ISO-IMAGES/6.2/6.2-RELEASE-i386-bootonly.iso
Mount the iso-image and copy the contents to some location:
mdconfig -a -t vnode -f 6.2-RELEASE-i386-bootonly.iso mount_cd9660 /dev/md0 /mnt/cdrom mkdir /usr/local/pxeboot cp -r /mnt/cdrom /usr/local/pxeboot umount /mnt/cdrom
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/md0c"' >> /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 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.
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 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!