mirror of https://github.com/ipxe/ipxe.git
				
				
				
			
		
			
				
	
	
		
			70 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
| This is a quick and dirty script to convert a floppyfw floppy
 | |
| (http://www.zelow.no/floppyfw/) to a tagged image for booting with
 | |
| Etherboot (http://etherboot.sourceforge.net/). The advantages of network
 | |
| booting include: it's much faster loading from the network than from a
 | |
| floppy disk, you can boot from any size floppy, and you are not limited
 | |
| to the maximum of 1.44 MB of the physical floppy. If you have enough RAM
 | |
| and use a virtual floppy to build the initial boot image, you can put as
 | |
| much on it as will fit the ramdisk.
 | |
| 
 | |
| See further down under -nonet if you want to boot from HD or CDROM.
 | |
| 
 | |
| This program requires mtools, tar, bzip2, loopback mount in the kernel,
 | |
| and root privileges to execute. Hope you have them.
 | |
| 
 | |
| This script works for any of the releases for which a subdirectory of
 | |
| that name is provided, but it should not be too hard to make it work for
 | |
| other releases, all that is done here is to substitute some scripts for
 | |
| the distributed ones.
 | |
| 
 | |
| First of all you should make the floppy work the way you want before
 | |
| converting it to a tagged image. This involves editing the various
 | |
| config files on the floppy. Instructions on this are distributed from
 | |
| the floppyfw web page mentioned above.
 | |
| 
 | |
| Edit the $tftpdir assignment for the directory where you put your tagged
 | |
| images.  Edit the $libdir assignment and the use lib directive near the
 | |
| top if you decide to put this package somewhere other than
 | |
| /usr/local/lib/mkffwnb/. Adjust the instructions below as necessary.
 | |
| 
 | |
| Copy everything to $libdir.
 | |
| 
 | |
| 	mkdir -p /usr/local/lib/mkffwnb/
 | |
| 	cp -a . /usr/local/lib/mkffwnb/
 | |
| 
 | |
| Make a link from /usr/local/lib/mkffwnb/mkffwnb.pl to
 | |
| /usr/local/bin/mkffwnb so that it's in your path.
 | |
| 
 | |
| 	ln -s /usr/local/lib/mkffwnb/mkffwnb.pl /usr/local/bin/mkffwnb
 | |
| 
 | |
| Then run it as:
 | |
| 
 | |
| 	mkffwnb
 | |
| 
 | |
| You can also provide a floppy drive as an argument, e.g.
 | |
| 
 | |
| 	mkffwnb x:
 | |
| 
 | |
| where x: could be mapped to a disk file. This allows you to build an
 | |
| image without a real floppy drive. Remember that for virtual drives root
 | |
| must have the mapping for the drive in question in ~root/.mtoolsrc.
 | |
| 
 | |
| You can use the option --localtime=/etc/localtime to specify that the
 | |
| file /etc/localtime is to be copied to /etc/localtime on the initrd.
 | |
| Instead of /etc/localtime, you can use any of the timezone files under
 | |
| /usr/share/zoneinfo/, it's just that /etc/localtime will usually be the
 | |
| correct one for your timezone.
 | |
| 
 | |
| If you use the option -nonet, it leaves the intermediate files in
 | |
| $tempdir, /tmp/mkffwnb by default. This is useful if you want the
 | |
| vmlinuz and initrd.gz files for use with LILO or isolinux to boot from
 | |
| HD or CDROM. Actually you can also use these with a floppy, it loads
 | |
| faster if you fold all the scripts and modules into the initrd ahead
 | |
| of time.
 | |
| 
 | |
| mkffwnb has to be run as root because it uses loopback mounts and also
 | |
| because the files inside the initrd are owned by root.
 | |
| 
 | |
| Ken Yap
 | |
| 2003-04-20
 |