| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | Mounting the root filesystem via NFS (nfsroot) | 
					
						
							|  |  |  | =============================================== | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Written 1996 by Gero Kuhlmann <gero@gkminix.han.de> | 
					
						
							|  |  |  | Updated 1997 by Martin Mares <mj@atrey.karlin.mff.cuni.cz> | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | Updated 2006 by Nico Schottelius <nico-kernel-nfsroot@schottelius.org> | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | Updated 2006 by Horms <horms@verge.net.au> | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | In order to use a diskless system, such as an X-terminal or printer server | 
					
						
							|  |  |  | for example, it is necessary for the root filesystem to be present on a | 
					
						
							|  |  |  | non-disk device. This may be an initramfs (see Documentation/filesystems/ | 
					
						
							| 
									
										
										
										
											2006-10-03 22:47:42 +02:00
										 |  |  | ramfs-rootfs-initramfs.txt), a ramdisk (see Documentation/initrd.txt) or a | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | filesystem mounted via NFS. The following text describes on how to use NFS | 
					
						
							|  |  |  | for the root filesystem. For the rest of this text 'client' means the | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | diskless system, and 'server' means the NFS server. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 1.) Enabling nfsroot capabilities | 
					
						
							|  |  |  |     ----------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | In order to use nfsroot, NFS client support needs to be selected as | 
					
						
							|  |  |  | built-in during configuration. Once this has been selected, the nfsroot | 
					
						
							|  |  |  | option will become available, which should also be selected. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | In the networking options, kernel level autoconfiguration can be selected, | 
					
						
							|  |  |  | along with the types of autoconfiguration to support. Selecting all of | 
					
						
							|  |  |  | DHCP, BOOTP and RARP is safe. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 2.) Kernel command line | 
					
						
							|  |  |  |     ------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | When the kernel has been loaded by a boot loader (see below) it needs to be | 
					
						
							|  |  |  | told what root fs device to use. And in the case of nfsroot, where to find | 
					
						
							|  |  |  | both the server and the name of the directory on the server to mount as root. | 
					
						
							|  |  |  | This can be established using the following kernel command line parameters: | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | root=/dev/nfs | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   This is necessary to enable the pseudo-NFS-device. Note that it's not a | 
					
						
							|  |  |  |   real device but just a synonym to tell the kernel to use NFS instead of | 
					
						
							|  |  |  |   a real device. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | nfsroot=[<server-ip>:]<root-dir>[,<nfs-options>] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   If the `nfsroot' parameter is NOT given on the command line, | 
					
						
							|  |  |  |   the default "/tftpboot/%s" will be used. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <server-ip>	Specifies the IP address of the NFS server. | 
					
						
							|  |  |  | 		The default address is determined by the `ip' parameter | 
					
						
							|  |  |  | 		(see below). This parameter allows the use of different | 
					
						
							|  |  |  | 		servers for IP autoconfiguration and NFS. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <root-dir>	Name of the directory on the server to mount as root. | 
					
						
							|  |  |  | 		If there is a "%s" token in the string, it will be | 
					
						
							|  |  |  | 		replaced by the ASCII-representation of the client's | 
					
						
							|  |  |  | 		IP address. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   <nfs-options>	Standard NFS options. All options are separated by commas. | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		The following defaults are used: | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 			port		= as given by server portmap daemon | 
					
						
							| 
									
										
										
										
											2007-02-12 00:51:54 -08:00
										 |  |  | 			rsize		= 4096 | 
					
						
							|  |  |  | 			wsize		= 4096 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 			timeo		= 7 | 
					
						
							|  |  |  | 			retrans		= 3 | 
					
						
							|  |  |  | 			acregmin	= 3 | 
					
						
							|  |  |  | 			acregmax	= 60 | 
					
						
							|  |  |  | 			acdirmin	= 30 | 
					
						
							|  |  |  | 			acdirmax	= 60 | 
					
						
							|  |  |  | 			flags		= hard, nointr, noposix, cto, ac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-21 08:31:19 +00:00
										 |  |  | ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>: | 
					
						
							|  |  |  |    <dns0-ip>:<dns1-ip> | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   This parameter tells the kernel how to configure IP addresses of devices | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   and also how to set up the IP routing table. It was originally called | 
					
						
							|  |  |  |   `nfsaddrs', but now the boot-time IP configuration works independently of | 
					
						
							|  |  |  |   NFS, so it was renamed to `ip' and the old name remained as an alias for | 
					
						
							|  |  |  |   compatibility reasons. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   If this parameter is missing from the kernel command line, all fields are | 
					
						
							|  |  |  |   assumed to be empty, and the defaults mentioned below apply. In general | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   this means that the kernel tries to configure everything using | 
					
						
							|  |  |  |   autoconfiguration. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   The <autoconf> parameter can appear alone as the value to the `ip' | 
					
						
							| 
									
										
										
										
											2007-12-14 11:30:22 -08:00
										 |  |  |   parameter (without all the ':' characters before).  If the value is | 
					
						
							|  |  |  |   "ip=off" or "ip=none", no autoconfiguration will take place, otherwise | 
					
						
							|  |  |  |   autoconfiguration will take place.  The most common way to use this | 
					
						
							|  |  |  |   is "ip=dhcp". | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <client-ip>	IP address of the client. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   		Default:  Determined using autoconfiguration. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   <server-ip>	IP address of the NFS server. If RARP is used to determine | 
					
						
							|  |  |  | 		the client address and this parameter is NOT empty only | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		replies from the specified server are accepted. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-07 15:24:23 +05:30
										 |  |  | 		Only required for NFS root. That is autoconfiguration | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		will not be triggered if it is missing and NFS root is not | 
					
						
							|  |  |  | 		in operation. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Default: Determined using autoconfiguration. | 
					
						
							|  |  |  | 		         The address of the autoconfiguration server is used. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <gw-ip>	IP address of a gateway if the server is on a different subnet. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Default: Determined using autoconfiguration. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <netmask>	Netmask for local network interface. If unspecified | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 		the netmask is derived from the client IP address assuming | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		classful addressing. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		Default:  Determined using autoconfiguration. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <hostname>	Name of the client. May be supplied by autoconfiguration, | 
					
						
							|  |  |  |   		but its absence will not trigger autoconfiguration. | 
					
						
							| 
									
										
										
										
											2010-06-02 16:02:44 +00:00
										 |  |  | 		If specified and DHCP is used, the user provided hostname will | 
					
						
							|  |  |  | 		be carried in the DHCP request to hopefully update DNS record. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   		Default: Client IP address is used in ASCII notation. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <device>	Name of network device to use. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Default: If the host only has one device, it is used. | 
					
						
							|  |  |  | 			 Otherwise the device is determined using | 
					
						
							|  |  |  | 			 autoconfiguration. This is done by sending | 
					
						
							|  |  |  | 			 autoconfiguration requests out of all devices, | 
					
						
							|  |  |  | 			 and using the device that received the first reply. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |   <autoconf>	Method to use for autoconfiguration. In the case of options | 
					
						
							|  |  |  |                 which specify multiple autoconfiguration protocols, | 
					
						
							|  |  |  | 		requests are sent using all protocols, and the first one | 
					
						
							|  |  |  | 		to reply is used. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		Only autoconfiguration protocols that have been compiled | 
					
						
							|  |  |  | 		into the kernel will be used, regardless of the value of | 
					
						
							|  |  |  | 		this option. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-12-14 11:30:22 -08:00
										 |  |  |                   off or none: don't use autoconfiguration | 
					
						
							| 
									
										
										
										
											2008-01-05 23:23:06 -08:00
										 |  |  | 				(do static IP assignment instead) | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		  on or any:   use any protocol available in the kernel | 
					
						
							| 
									
										
										
										
											2007-12-25 20:54:42 -08:00
										 |  |  | 			       (default) | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 		  dhcp:        use DHCP | 
					
						
							|  |  |  | 		  bootp:       use BOOTP | 
					
						
							|  |  |  | 		  rarp:        use RARP | 
					
						
							|  |  |  | 		  both:        use both BOOTP and RARP but not DHCP | 
					
						
							|  |  |  | 		               (old option kept for backwards compatibility) | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |                 Default: any | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-21 08:31:19 +00:00
										 |  |  |   <dns0-ip>	IP address of first nameserver. | 
					
						
							|  |  |  | 		Value gets exported by /proc/net/pnp which is often linked | 
					
						
							|  |  |  | 		on embedded systems by /etc/resolv.conf. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   <dns1-ip>	IP address of secound nameserver. | 
					
						
							|  |  |  | 		Same as above. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-17 10:54:37 -04:00
										 |  |  | nfsrootdebug | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   This parameter enables debugging messages to appear in the kernel | 
					
						
							|  |  |  |   log at boot time so that administrators can verify that the correct | 
					
						
							|  |  |  |   NFS mount options, server address, and root path are passed to the | 
					
						
							|  |  |  |   NFS client. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | rdinit=<executable file> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   To specify which file contains the program that starts system | 
					
						
							|  |  |  |   initialization, administrators can use this command line parameter. | 
					
						
							|  |  |  |   The default value of this parameter is "/init".  If the specified | 
					
						
							|  |  |  |   file exists and the kernel can execute it, root filesystem related | 
					
						
							|  |  |  |   kernel command line parameters, including `nfsroot=', are ignored. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   A description of the process of mounting the root file system can be | 
					
						
							|  |  |  |   found in: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Documentation/early-userspace/README | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 3.) Boot Loader | 
					
						
							|  |  |  |     ---------- | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | To get the kernel into memory different approaches can be used. | 
					
						
							|  |  |  | They depend on various facilities being available: | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 3.1)  Booting from a floppy using syslinux | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	When building kernels, an easy way to create a boot floppy that uses | 
					
						
							| 
									
										
										
										
											2008-10-15 22:01:46 -07:00
										 |  |  | 	syslinux is to use the zdisk or bzdisk make targets which use zimage | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  |       	and bzimage images respectively. Both targets accept the | 
					
						
							|  |  |  |      	FDARGS parameter which can be used to set the kernel command line. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	e.g. | 
					
						
							|  |  |  | 	   make bzdisk FDARGS="root=/dev/nfs" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    	Note that the user running this command will need to have | 
					
						
							|  |  |  |      	access to the floppy drive device, /dev/fd0 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      	For more information on syslinux, including how to create bootdisks | 
					
						
							|  |  |  |      	for prebuilt kernels, see http://syslinux.zytor.com/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	N.B: Previously it was possible to write a kernel directly to | 
					
						
							|  |  |  | 	     a floppy using dd, configure the boot device using rdev, and | 
					
						
							|  |  |  | 	     boot using the resulting floppy. Linux no longer supports this | 
					
						
							|  |  |  | 	     method of booting. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 3.2) Booting from a cdrom using isolinux | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      	When building kernels, an easy way to create a bootable cdrom that | 
					
						
							|  |  |  |      	uses isolinux is to use the isoimage target which uses a bzimage | 
					
						
							|  |  |  |      	image. Like zdisk and bzdisk, this target accepts the FDARGS | 
					
						
							|  |  |  |      	parameter which can be used to set the kernel command line. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	e.g. | 
					
						
							|  |  |  | 	  make isoimage FDARGS="root=/dev/nfs" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      	The resulting iso image will be arch/<ARCH>/boot/image.iso | 
					
						
							|  |  |  |      	This can be written to a cdrom using a variety of tools including | 
					
						
							|  |  |  |      	cdrecord. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	e.g. | 
					
						
							| 
									
										
										
										
											2011-06-13 17:53:53 +08:00
										 |  |  | 	  cdrecord dev=ATAPI:1,0,0 arch/x86/boot/image.iso | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |      	For more information on isolinux, including how to create bootdisks | 
					
						
							|  |  |  |      	for prebuilt kernels, see http://syslinux.zytor.com/ | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 3.2) Using LILO | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	When using LILO all the necessary command line parameters may be | 
					
						
							|  |  |  | 	specified using the 'append=' directive in the LILO configuration | 
					
						
							|  |  |  | 	file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	However, to use the 'root=' directive you also need to create | 
					
						
							|  |  |  | 	a dummy root device, which may be removed after LILO is run. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	mknod /dev/boot255 c 0 255 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	For information on configuring LILO, please refer to its documentation. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 3.3) Using GRUB | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	When using GRUB, kernel parameter are simply appended after the kernel | 
					
						
							|  |  |  | 	specification: kernel <kernel> <parameters> | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 3.4) Using loadlin | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	loadlin may be used to boot Linux from a DOS command prompt without | 
					
						
							|  |  |  | 	requiring a local hard disk to mount as root. This has not been | 
					
						
							|  |  |  | 	thoroughly tested by the authors of this document, but in general | 
					
						
							|  |  |  | 	it should be possible configure the kernel command line similarly | 
					
						
							|  |  |  | 	to the configuration of LILO. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Please refer to the loadlin documentation for further information. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 3.5) Using a boot ROM | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	This is probably the most elegant way of booting a diskless client. | 
					
						
							|  |  |  | 	With a boot ROM the kernel is loaded using the TFTP protocol. The | 
					
						
							|  |  |  | 	authors of this document are not aware of any no commercial boot | 
					
						
							|  |  |  | 	ROMs that support booting Linux over the network. However, there | 
					
						
							|  |  |  | 	are two free implementations of a boot ROM, netboot-nfs and | 
					
						
							|  |  |  | 	etherboot, both of which are available on sunsite.unc.edu, and both | 
					
						
							|  |  |  | 	of which contain everything you need to boot a diskless Linux client. | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 3.6) Using pxelinux | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	Pxelinux may be used to boot linux using the PXE boot loader | 
					
						
							|  |  |  | 	which is present on many modern network cards. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	When using pxelinux, the kernel image is specified using | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 	"kernel <relative-path-below /tftpboot>". The nfsroot parameters | 
					
						
							|  |  |  | 	are passed to the kernel by adding them to the "append" line. | 
					
						
							| 
									
										
										
										
											2006-07-10 04:43:58 -07:00
										 |  |  | 	It is common to use serial console in conjunction with pxeliunx, | 
					
						
							|  |  |  | 	see Documentation/serial-console.txt for more information. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	For more information on isolinux, including how to create bootdisks | 
					
						
							|  |  |  | 	for prebuilt kernels, see http://syslinux.zytor.com/ | 
					
						
							| 
									
										
										
										
											2006-03-24 03:18:18 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2005-04-16 15:20:36 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 4.) Credits | 
					
						
							|  |  |  |     ------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   The nfsroot code in the kernel and the RARP support have been written | 
					
						
							|  |  |  |   by Gero Kuhlmann <gero@gkminix.han.de>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   The rest of the IP layer autoconfiguration code has been written | 
					
						
							|  |  |  |   by Martin Mares <mj@atrey.karlin.mff.cuni.cz>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   In order to write the initial version of nfsroot I would like to thank | 
					
						
							|  |  |  |   Jens-Uwe Mager <jum@anubis.han.de> for his help. |