diff --git a/en_US.ISO8859-1/articles/pxe/Makefile b/en_US.ISO8859-1/articles/pxe/Makefile new file mode 100644 index 0000000000..7a18da1228 --- /dev/null +++ b/en_US.ISO8859-1/articles/pxe/Makefile @@ -0,0 +1,13 @@ + +DOC?= article + +FORMATS?= html + +INSTALL_COMPRESSED?=gz +INSTALL_ONLY_COMPRESSED?= + +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. + +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/en_US.ISO8859-1/articles/pxe/article.sgml b/en_US.ISO8859-1/articles/pxe/article.sgml new file mode 100644 index 0000000000..ca7b161b26 --- /dev/null +++ b/en_US.ISO8859-1/articles/pxe/article.sgml @@ -0,0 +1,280 @@ + +%man +]> + +
+ + FreeBSD Jumpstart Guide + + + + Alfred + Perlstein + + +
alfred@FreeBSD.org
+
+
+
+ + $FreeBSD$ + + + This article details the method used to allow machines to install + FreeBSD using the Intel PXE method of booting a machine over a network. + + +
+ + + Introduction + + + This procedure will make the 'Server' both insecure and dangerous, + it's best to just keep the 'Server' on it's own hub and not in any way + accessable by any machines other than the 'Clients'. + + + Terminology : + + + + + + + Server + The machine offering netboot and install options. + + + + Client + The machine that will have FreeBSD installed on it. + + + + + + Requires: + Clients supporting the Intel PXE netboot option, an ethernet connection. + + + Please let me know if you come across anything you have problems with + or suggestions for additional documentation. + + If you'd like someone to train/implement a specific netinstall system + for you, please send email so that we can discuss terms. + + I'd also like to thank Paul Saab ps@FreeBSD.org and + John Baldin jhb@FreeBSD.org for doing most of the + programming work on pxeboot, the interface to Intel's PXE (netboot) + system. + + + + Server Configuration + + + + Install DHCP : Install isc-dhcp-2.0 you can use this config file + + dhcpd.conf, stick it in /usr/local/etc/ + + + + Enable tftp: + + + + Make a directory /usr/tftpboot + + + + Add this line to your + /etc/inetd.conf: + +tftp dgram udp wait nobody /usr/libexec/tftpd + + + + &prompt.root; tftpd /usr/tftpboot + + + + + + + Enable NFS: + + + + Add this to /etc/rc.conf: + + nfs_server_enable="YES" + + + + Add this to /etc/exports: + + /usr -alldirs -ro + + + + + + Reboot to enable the new services or start them + manually. + + + + + + Bootstrap Setup + + + + Download bootfiles : Download the + + kern.flp and + + mfsroot.flp floppy images. + + + + Setup tftp/pxe-boot directory: + + + + Put pxeboot in the boot directory: + + &prompt.root; rm -rf /usr/obj/* +&prompt.root; cd /usr/src/sys/boot +&prompt.root; make +&prompt.root; cp /usr/src/sys/boot/i386/pxeldr/pxeboot /usr/tftpboot + + + + Using the vndevice mount the kern.flp + file and copy its contents to + /usr/tftpboot: + + &prompt.root; vnconfig vn0 kern.flp # associate a vndevice with the file +&prompt.root; mount /dev/vn0 /mnt # mount it +&prompt.root; cp -R /mnt /usr/tftpboot # copy the contents to /usr/tftpboot +&prompt.root; umount /mnt # unmount it +&prompt.root; vnconfig -u vn0 # disassociate the vndevice from the file + + + + + + Compile a custom kernel for the clients(particularly to avoid + the device config screen at boot) and stick it in + /usr/tftpboot. + + + + Make a special loader.rc to and install it + in /usr/tftpboot/boot/loader.rc so that it + doesn't prompt for the second disk, here's + + mine. + + + + Extract the installer and helper utilities from the mfsroot disk + and uncompress them, put them in /usr/tftpboot + as well: + + &prompt.root; vnconfig vn0 mfsroot.flp # associate a vndevice with the file +&prompt.root; mount /dev/vn0 /mnt # mount it +&prompt.root; cp /mnt/mfsroot.gz /usr/tftpboot # copy the contents to /usr/tftpboot +&prompt.root; umount /mnt # unmount it +&prompt.root; vnconfig -u vn0 # disassociate the vndevice from the file +&prompt.root; cd /usr/tftpboot # get into the pxeboot directory +&prompt.root; gunzip mfsroot.gz # uncompress the mfsroot + + + + Make your sysinstall script install.cfg, you + can use + + mine as a template, but you must edit it. + + + + Copy the sysinstall script into the extracted and uncompressed + mfsroot image: + + &prompt.root; cd /usr/tftpboot +&prompt.root; vnconfig vn0 mfsroot +&prompt.root; mount /dev/vn0 /mnt +&prompt.root; cp install.cfg /mnt +&prompt.root; umount /mnt +&prompt.root; vnconfig -u vn0 + + + + + + Install Setup + + + + Put the install files in an NFS accessable location on the + Server. Make a directory corresponding the 'nfs' directive in the + install.cfg file and mirror the FreeBSD + install files there, you'll want it to look somewhat like + this: + + ABOUT.TXT TROUBLE.TXT compat20 floppies ports +ERRATA.TXT UPGRADE.TXT compat21 games proflibs +HARDWARE.TXT XF86336 compat22 info src +INSTALL.TXT bin compat3x kern.flp +LAYOUT.TXT catpages crypto manpages +README.TXT cdrom.inf dict mfsroot.flp +RELNOTES.TXT compat1x doc packages + + + + Copy the compressed packages into the packages/All directory + under nfs. + + + + Make sure you have an INDEX file prepared + in the packages directory. You can make your own + INDEX entries like so: + + alfred-1.0||/|Alfred install bootstrap||alfred@FreeBSD.org|||| + + Then you can install custom packages, particularly your own + custom post-install package. + + + + + + Custom Post-Install Package + + You can use the script pkgmaker.sh to create a + custom package for post install, the idea is to have it install and + configure any special things you may need done. + pkgmaker is run in the directory above the package + you wish to create with the single argument of the package (ie mypkg) + which will then create a mypkg.tgz for you to include in your sysinstall + package. + + Inside your custom package dir you'll want a file called + PLIST which contains all the files that you wish to + install and be incorperated into your package. + + You'll also want files called 'pre' and + 'post' in the directory, these are shell scripts + that you want to execute before and after your package is + installed. + + Since this package is in your install.cfg file + it should be run and do the final configuration for you. + +