Welcome to the new location of Alien's Wiki, sharing a single dokuwiki install with the SlackDocs Wiki.

Welcome to Eric Hameleers (Alien BOB)'s Wiki pages.

If you want to support my work, please consider a small donation:

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
slackware:pxe [2006/10/02 19:57] – Some typos fixed. alienslackware:pxe [2009/05/19 14:22] (current) – Update the tutorial for Slackware 12.2 (way way easier)... alien
Line 2: Line 2:
  
  
-When the time comes to install Slackware on your computer, you have a limited number of options regarding the location of your Slackware packages. Either you install them from the (un)official Slackware CDROM or DVD, or you copy them to a pre-existing hard disk partition before starting the installation procedure, or else you fetch the packages from a [[slackware:samba#setting_up_nfs_on_slackware|NFS server]].+When the time comes to install Slackware on your computer, you have a limited number of options regarding the location of your Slackware packages. Either you install them from the (un)official Slackware CDROM or DVD, or you copy them to a pre-existing hard disk partition before starting the installation procedure, or else you fetch the packages from a [[slackware:samba#setting_up_nfs_on_slackware|NFS server]], FTP or HTTP server.
  
-The number of possible options for booting your Slackware installer is similarly limited: either you boot your computer from the bootable first CDROM of the Slackware CD set, or from the DVD, or (in those cases where the computer BIOS refuses to recognize the CD as bootable) create boot/root floppies and boot from those. There is even loadlin, the DOS based Linux starter, but let'not concern ourselves with the past today.+The number of available options for booting your Slackware installer is similarly limited: either you boot your computer from the bootable first CDROM of the Slackware CD set, or from the DVD, or using a USB stick.\\ There is even loadlin, the DOS based Linux starter, but lets not concern ourselves with the past today. Slackware 12.0 abandoned the floppy boot altogether.
  
-But what if your PC is lacking a floppy drive - or even a CDROM drive? Brands of PC's are on the market today (ultra-portable laptops for instance) that are unable to install Slackware the traditional way. However, these machines are commonly equipped with network peripherals, like bluetooth, wireless and wired network cards. How to solve this dilemma? Buy an external CD drive?+But what if your PC is lacking a CDROM drive? Brands of PC's are on the market today (ultra-portable laptops for instance) that are unable to install Slackware the traditional way. However, these machines are commonly equipped with network peripherals, like bluetooth, wireless and wired network cards. How to solve this dilemma? Buy an external CD drive?
  
-Well, there is one way of booting your computer that the Slackware installer does not __yet__ support. That is the //network boot//. Network boot, or "PXE boot", requires support from your computer's network card and BIOS. Also, instead of installing packages from a Slackware CDROM set, you will need a network server that can instruct your computer how to fetch those packages from the network.+Well, there is another way of booting your computer that the Slackware installer supports. That is the //network boot//. Network boot, or "PXE boot", requires support from your computer's network card and BIOS. Also, instead of installing packages from a Slackware CDROM set, you will need a network server that can instruct your computer how to fetch those packages from the network.
  
-In this article, I want to present a way of installation that uses the network as the carrier medium, with a server on the local network that holds the boot kernel and the root filesystem (which contains the setup program), and also has all the Slackware packages. This means, there is __no need__ for a floppy or CDROM drive.\\ Be warned: setting it all up is not trivial, and you need more than a beginner's level of Linux knowledge, but this text and the accompanying example scripts in the [[#example_configuration_scripts|last section]] should get you up and running even if you do not completely understand what is going on :-)+In this README, I will show you how to perform an installation that uses the network as the carrier medium, with a server on the local network that holds the boot kernel and the root filesystem (which contains the setup program), and also has all the Slackware packages.  This means, there is no need for a floppy or CDROM drive.\\ Be warned: setting it all up is not trivial, and you need more than a beginner's level of Linux knowledge, but this text and the accompanying example scripts in the [[#example_configuration_scripts|last section]] should get you up and running even if you do not completely understand what is going on :-) 
 + 
 +I will describe how to setup a server with the proper software, and how to use some of the files on the Slackware CDROM so that PXE-boot becomes a supported installation method for Slackware Linux. Alternatively, read the [[ftp://slackware.osuosl.org/pub/slackware/slackware-current/usb-and-pxe-installers/README_PXE.TXT | README_PXE.TXT]] file on your Slackware CDROM.
  
-I will describe how to setup a server with the proper software, and how to modify some of the files on the Slackware CDROM so that PXE-boot becomes a supported installation method for Slackware Linux. 
  
 ===== PXE ===== ===== PXE =====
Line 28: Line 29:
   * If a willing PXE server was found, your computer's network card will then download a kernel and initrd, boot the Linux kernel, unpack the initrd into a ramdisk and start the Slackware installer's initialization sequence. This is where you'll be in familiar territory again, since this is exactly what happens if you had booted from a CDROM or a floppy. But the fun is not over...   * If a willing PXE server was found, your computer's network card will then download a kernel and initrd, boot the Linux kernel, unpack the initrd into a ramdisk and start the Slackware installer's initialization sequence. This is where you'll be in familiar territory again, since this is exactly what happens if you had booted from a CDROM or a floppy. But the fun is not over...
   * Since we booted the computer using code that did not originate from our computer, we will have to fetch the remainder of the data - the Slackware  packages - from the network as well. It's just that the freshly booted Linux kernel has no idea how it came to be running on the computer: you will have to initialize the network all over again. The network card's PXE firmware has done it's job and is no longer in the picture. So:   * Since we booted the computer using code that did not originate from our computer, we will have to fetch the remainder of the data - the Slackware  packages - from the network as well. It's just that the freshly booted Linux kernel has no idea how it came to be running on the computer: you will have to initialize the network all over again. The network card's PXE firmware has done it's job and is no longer in the picture. So:
-  * We need to load a kernel driver for our network card and locate a NFS server that holds the Slackware package tree. Currently, NFS is our only means of getting to network data at allBefore starting ''cfdisk'' and ''setup'', we need to run the (''pcmcia'' and/or) ''network'' command to probe the network card and load a suitable driver. If your network card is not supported by any of the available drivers, you're out of luck and will have to re-evaluate your options. +  * We need to load a kernel driver for our network card and locate a network server that holds the Slackware package tree. Currently, NFS, FTP or HTTP installs are supported means of getting to your network data. The Slackware installer will use udev to configure your network card. If your network card is not supported by any of the available drivers, you're out of luck and will have to re-evaluate your options. 
-  * From here on, installation proceeds as usual, under the condition that you select //NFS server// as the source of the Slackware packages.+  * From here on, installation proceeds as usual, under the condition that you select //Install from NFS (Network File System)// or //Install from FTP/HTTP server// as the source of the Slackware packages. 
  
 ===== Workstation requirements ===== ===== Workstation requirements =====
Line 37: Line 39:
   * PC BIOS allowing to select //network boot//   * PC BIOS allowing to select //network boot//
 No other requirements have to be met for a network install, other than those you'd already have to meet in order to be able to install and run Slackware. No other requirements have to be met for a network install, other than those you'd already have to meet in order to be able to install and run Slackware.
 +
  
 ===== Server requirements ===== ===== Server requirements =====
Line 44: Line 47:
   * A service that understands the //BOOTP// protocol. BOOTP is a network protocol somewhat like DHCP, and it is used by the PXE firmware to broadcast on the network its desire to find a suitable server to download the bootstrap code from. The ISC DHCP Server which comes as part of Slackware fulfills this requirement, since it supports BOOTP as well as DHCP.   * A service that understands the //BOOTP// protocol. BOOTP is a network protocol somewhat like DHCP, and it is used by the PXE firmware to broadcast on the network its desire to find a suitable server to download the bootstrap code from. The ISC DHCP Server which comes as part of Slackware fulfills this requirement, since it supports BOOTP as well as DHCP.
   * A download service for the bootstrap code. A //TFTP// (trivial file transfer protocol) server is needed for this. Slackware ships with an implementation of a TFTP server called tftpd-hpa which does what we need.   * A download service for the bootstrap code. A //TFTP// (trivial file transfer protocol) server is needed for this. Slackware ships with an implementation of a TFTP server called tftpd-hpa which does what we need.
-  * And for the Slackware installer, a NFS server is required because we must perform a network install. Slackware does not know the concept of installation from a ftp server (yet?). We can use Slackware's stock NFS server for that.+  * And for the Slackware installer, a NFS, FTP or HTTP server is required because we must perform a network install. We can use Slackware's stock NFS/FTP/HTTP server for that. In the example below, we will configure a NFS server.
  
 ===== Implementation of the services ===== ===== Implementation of the services =====
Line 63: Line 66:
  
   * Directories are used as follows:   * Directories are used as follows:
-    * Toplevel of the complete Slackware 11.directory tree (excluding the source code if you're short on disk space) is **''/mirror/Slackware/slackware-11.0''** +    * Top level of the complete Slackware 12.directory tree (excluding the source code if you're short on disk space) is **''/mirror/Slackware/slackware-12.2''** 
-    * The directory where we store the boot files for the TFTP server is **''/tftpboot/slackware-11.0''**+    * The directory where we store the boot files for the TFTP server is **''/tftpboot/slackware-12.2''**
  
 ==== DHCP ==== ==== DHCP ====
  
-You probably already have a DHCP server running on your network. You can try and modify it'configuration so that it will do want we want, or if that is impossible (for instance because the DHCP server is running on your DSL/Cable router) you could consider disabling that and setting up a Slackware DHCP server for your LAN with much enhanced functionality.+You probably already have a DHCP server running on your network. You can try and modify its configuration so that it will do want we want, or if that is impossible (for instance because the DHCP server is running on your DSL/Cable router) you could consider disabling that and setting up a Slackware DHCP server for your LAN with much enhanced functionality.
  
 Slackware includes the //ISC DHCP// server package (dhcpd). Two example ''/etc/dhcpd.conf'' configuration files for this DHCP Server are included in the [[#example_configuration_scripts|last section]] of the article. Slackware includes the //ISC DHCP// server package (dhcpd). Two example ''/etc/dhcpd.conf'' configuration files for this DHCP Server are included in the [[#example_configuration_scripts|last section]] of the article.
Line 88: Line 91:
   use-host-decl-names on;   use-host-decl-names on;
   if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {   if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
-    filename "/slackware-11.0/pxelinux.0";+    filename "/slackware-12.2/pxelinux.0";
   }   }
  
Line 99: Line 102:
   }   }
 } }
-</code> This makes the DHCP server recognize network boot clients that use PXE and serves them the PXElinux boot loader ''/slackware-11.0/pxelinux.0''. What this boot loader does will be explained further down the article.\\ \\ The ''next-server'' parameter contains the IP adddress of the TFTP server. This will often be identical to the DHCP server's IP address, but if you have a TFTP server that is running on a different IP address than the DHCP server (i.e. they run on separate servers) you will have to add the remote IP address instead, like this (assuming the TFTP server is running on IP address 192.168.0.254): <code>+</code> This makes the DHCP server recognize network boot clients that use PXE and serves them the PXElinux boot loader ''/slackware-12.2/pxelinux.0''. What this boot loader does will be explained further down the article.\\ \\ The ''next-server'' parameter contains the IP adddress of the TFTP server. This will often be identical to the DHCP server's IP address, but if you have a TFTP server that is running on a different IP address than the DHCP server (i.e. they run on separate servers) you will have to add the remote IP address instead, like this (assuming the TFTP server is running on IP address 192.168.0.254): <code>
 next-server 192.168.0.254;</code> next-server 192.168.0.254;</code>
  
Line 138: Line 141:
 </file> </file>
  
-  * Use the directory mentioned in ''/etc/exports'' to copy (or move) the contents of your Slackware files to: The directory ''/mirror/Slackware/slackware-11.0'' should be the root of the Slackware tree, containing such files as the ''ChangeLog.txt'' and subdirectories like ''slackware'' and ''kernels''.+  * Use the directory mentioned in ''/etc/exports'' to copy (or move) the contents of your Slackware files to: The directory ''/mirror/Slackware/slackware-12.2'' should be the root of the Slackware tree, containing such files as the ''ChangeLog.txt'' and subdirectories like ''slackware'' and ''kernels''.
  
   * Make the NFS server startup script executable so that the NFS server will start on every boot: <code>   * Make the NFS server startup script executable so that the NFS server will start on every boot: <code>
Line 145: Line 148:
   * Start the NFS server (so you don't have to reboot already):  <code>   * Start the NFS server (so you don't have to reboot already):  <code>
 /etc/rc.d/rc.nfsd start</code> /etc/rc.d/rc.nfsd start</code>
 +
  
 ===== PXELinux configuration ===== ===== PXELinux configuration =====
  
-PXELinux is much like //isolinux//, which is the bootloader that is used for the bootable Slackware CDROM #1. In factboth programs are written by the same author and are available in Slackware via the //syslinux// package.\\ +The previous paragraph described in generic terms how to setup the TFTP servicebut it did not tell you how to populate the TFTP directory structure so that network clients can request and obtain boot files.
-We will start with the configuration file ''isolinux.cfg'' and the root disk image ''initrd.img'' that are used to create the Slackware CDROM and modify those so they can be used with a pxelinux bootloader.+
  
-==== The tftp directory structure ====+PXELinux is much like isolinux, which is the bootloader that is used for the bootable Slackware CDROM #1. In fact, both programs are written by the same author and are available in Slackware via the syslinux package.  
  
-As you can see in the [[#dhcp|DHCP section]], the DHCP server offers any interested PXE client (i.e. your computer's network card) the file ''/slackware-11.0/pxelinux.0'' - this file contains the bootable code that subsequently downloads and starts a Linux kernel, and downloads and extracts the root filesystem containing the setup program and everything else that we need.\\ 
-This filename ''/slackware-11.0/pxelinux.0'' indicates a pathname relative to the root of the [[#tftp|TFTP server]]. The PXE client will use the tftp protocol to fetch this bootloader. So this is what we do: create this directory ''slackware-11.0'' and copy the required files into it. First, the pxelinux bootloader itself: <code> 
-mkdir /tftpboot/slackware-11.0 
-mkdir /tftpboot/slackware-11.0/pxelinux.cfg 
-cp /usr/share/syslinux/pxelinux.0 /tftpboot/slackware-11.0/ 
-</code> Also, we need the files from the Slackware CDROM that show the informative messages in the beginning. Assuming your mirror of the Slackware release can be found in /mirror/Slackware/slackware-11.0/ (change paths in the below commands if your location is different) : <code> 
-cp /mirror/Slackware/slackware-11.0/isolinux/message.txt /tftpboot/slackware-11.0/ 
-cp /mirror/Slackware/slackware-11.0/isolinux/f2.txt /tftpboot/slackware-11.0/ 
-cp /mirror/Slackware/slackware-11.0/isolinux/f3.txt /tftpboot/slackware-11.0/ 
-</code> And lastly, we need //all// the kernels that you can choose from after booting the installer: <code> 
-cp -a /mirror/Slackware/slackware-11.0/kernels /tftpboot/slackware-11.0/ 
-</code> 
  
-==== Creating an initrd.img ====+==== The tftp directory structure ====
  
-The usual way of installing Slackware from a NFS server repository, is to boot the Slackware CDROM, and run (''pcmcia'' and) ''network'' to load all the drivers for your network card before starting ''setup'' to commence the installation procedure. When you type ''pcmcia'' and/or ''network'', the Slackware installer will look for the appropriate driver files on an available CDROM, and if no CDROM is found it prompts you to insert floppy disks.\\ +The usual way of installing Slackware from a NFS server repository, is to boot the Slackware CDROM, and let udev load the driver for your network card before starting ''setup'' to commence the installation procedure. \\ 
-Now, with a boot from the network we are assuming there is //no CDROM// and //no floppy// drive available to us. So, we need to add all the drivers we need to the root filesystem that the PXElinux bootloader downloads from the TFTP server (contained in the ''initrd.img'' file).+Now, with a boot from the network we are assuming there is //no CDROM// and //no floppy// drive available to us. So, we need to have all the drivers we need inside the root filesystem which the PXElinux bootloader downloads from the TFTP server. This root filesystem is wrapped in the ''./isolinux/initrd.img'' file (the initial ramdisk image). In fact, this image file is exactly the one which a CDROM installation uses as well. Slackware used to have separate ''network.dsk'' and ''pcmcia.dsk'' images but these have been folded into the ''initrd.img'' for ease of maintenance.
  
-This is the basic procedure - we will carry this out on the server. I still assume your local mirror of the Slackware release can be found under ''/mirror/Slackware'' on your server: +As you can see in the [[#dhcp|DHCP section]], the DHCP server offers any interested PXE client (i.e. your computer's network card) the file ''/slackware-12.2/pxelinux.0''this file contains the bootable code that subsequently downloads and starts a Linux kernel, and downloads and extracts the root filesystem containing the setup program and everything else that we need.\\ 
-  * Create a //staging area// where we do all our nifty work: <code> +This filename ''/slackware-12.2/pxelinux.0'' indicates a pathname relative to the root of the [[#tftp|TFTP server]]The PXE client will use the tftp protocol to fetch this bootloader. So this is what we do: create this directory ''slackware-12.2'' and copy the required files into it. First, the pxelinux bootloader itself: <code> 
-mkdir -p /tmp/pxe</code+mkdir /tftpboot/slackware-12.2 
-  * Extract the image containing the root filesystem from the compressed file ''initrd.img'': <code> +mkdir /tftpboot/slackware-12.2/pxelinux.cfg 
-gunzip -cd /mirror/Slackware/slackware-11.0/isolinux/initrd.img > /tmp/pxe/initrd.dsk</code> +cp /usr/share/syslinux/pxelinux.0 /tftpboot/slackware-12.2
-  * Loop-mount that image file somewhere in your filesystem, say at ''/tmp/pxe/initrd'': <code> +</code> Also, we need the files from the Slackware CDROM that show the informative messages in the beginning. Assuming your mirror of the Slackware release can be found in /mirror/Slackware/slackware-12.2/ (change paths in the below commands if your location is different) : <code> 
-cd /tmp/pxe +cp /mirror/Slackware/slackware-12.2/isolinux/message.txt /tftpboot/slackware-12.2
-mkdir initrd +cp /mirror/Slackware/slackware-12.2/isolinux/f2.txt /tftpboot/slackware-12.2
-mount -o loop,ro initrd.dsk initrd/</code> +cp /mirror/Slackware/slackware-12.2/isolinux/f3.txt /tftpboot/slackware-12.2
-  * Loop-mount the network and pcmcia disk images, too:<code> +</code> And we need //all// the kernels that you can choose from after booting the installer: <code> 
-mkdir pcmcia +cp -a /mirror/Slackware/slackware-12.2/kernels /tftpboot/slackware-12.2
-mount -o loop,ro /mirror/Slackware/slackware-11.0/isolinux/pcmcia.dsk pcmcia/ +</code> Lastly, we copy the initrd.img file (which contains the installer and the network/pcmcia kernel modules) as well as a pxelinux configuration file: <code> 
-mkdir network +cp /mirror/Slackware/slackware-12.2/usb-and-pxe-installers/pxelinux.cfg_default /tftpboot/slackware-12.2/pxelinux.cfg/default 
-mount -o loop,ro /mirror/Slackware/slackware-11.0/isolinux/network.dsk network+cp /mirror/Slackware/slackware-12.2/isolinux/initrd.img /tftpboot/slackware-12.2/
-</code> You've probably noticed I mount these images read-only; we're only going to copy files //out// of them. +
-  * Use the ''dd'' command to create a new file of sufficient size (called ''newinitrd''). At the end of the process this file will contain a filesystem which holds the combined contents of the Slackware disk images we just loop-mounted.\\ With "sufficient" I mean the size must be at least the combined sizes of the uncompressed disk images we are going to copy into our new filesystem. In my example ''dd'' command below I use a number of ''9500'' 1kB sized blocks which amounts to a 9.5MB file: <code> +
-dd if=/dev/zero of=/tmp/pxe/newinitrd bs=1k count=9500 +
-</code> How did I get at that number ''9500''? Well, you sum the sizes of the ''initrd.dsk'', ''network.dsk'' and ''pcmcia.dsk'' files and make sure you use a number that is not smaller than that sum. The following command is the geek way to return the sum value: <code>echo $(( $(du -sk initrd.dsk|cut -f1)+$(du -sk network.dsk|cut -f1)+$(du -sk pcmcia.dsk|cut -f1) )) +
-</code> +
-  * We then create a filesystem //inside// this file (and use the ''-F'' flag to ''mkfs.ext2'' to indicate that we are fully aware we're applying the command to a non-block device). Also, tune the filesystem so that it will never ever ask for a filesystem check (''fsck'') when it gets mounted: <code> +
-mkfs.ext2 -m 0 -F /tmp/pxe/newinitrd +
-tune2fs -i 0 /tmp/pxe/newinitrd +
-</code> +
-  *  Now that we have a usable filesystem, loop-mount this file as well (this one read/write!): <code>  +
-mkdir -p /tmp/pxe/out/ +
-mount -o loop /tmp/pxe/newinitrd /tmp/pxe/out/ +
-</code> +
-  * Copy the contents of the three Slackware disk images into the still empty new file: <code> +
-cp -a /tmp/pxe/initrd//tmp/pxe/out/ +
-cp -a /tmp/pxe/network/* /tmp/pxe/out+
-cp -a /tmp/pxe/pcmcia//tmp/pxe/out/ +
-</code> +
-  * Modify the scripts that are executed when you type ''pcmcia'' and ''network'' so that they do no longer look for CDROM or floppies to mount the disk images from - because all the required stuff will now be available in the new root filesystem: <code> +
-cd //<to/where/you/downloaded/my/scripts/and/patches>// +
-cat pcmcia > /tmp/pxe/out/bin/pcmcia +
-cat network > /tmp/pxe/out/bin/network +
-patch -p0 /tmp/pxe/out/scripts/network.sh network.sh.diff +
-</code> +
-  * Re-generate the kernel module dependency files: <code> +
-gunzip -cd /mirror/Slackware/slackware-11.0/kernels/sata.i/System.map.gz > /tmp/pxe/System.map +
-rm -f /tmp/pxe/out/lib/modules/2.4.33.3/modules.* +
-/sbin/depmod --b /tmp/pxe/out -/tmp/pxe/System.map 2.4.33.3 +
-</code> +
-  * Umount all the image files and ''gzip'' the new root filesystem, so that we can copy it into the tftpboot directory: <code> +
-umount /tmp/pxe/initrd +
-umount /tmp/pxe/network +
-umount /tmp/pxe/pcmcia +
-umount /tmp/pxe/out +
-gzip -9f /tmp/pxe/newinitrd +
-mv /tmp/pxe/newinitrd.gz /tftpboot/slackware-11.0/initrd.img +
-</code> __Note__ you can not gzip the image file correctly as long as it is still mounted! +
-  * And finally, clean up behind us: <code> +
-rm -r /tmp/pxe+
 </code> </code>
  
-<note tip> I have written a script //create_slackboots.sh// that does all of this fully automatically (and more!), and you can download it at [[http://www.slackware.com/~alien/tools/slackboot/|http://www.slackware.com/~alien/tools/slackboot/]]. Do not forget to also download the other files that you'll find at that URL, because the script needs those to patch the pcmcia and network scripts. Be aware that this script also adds the content of ''network26.dsk'' (the network drivers for the ''huge26.s'' kernel) to our big new ''initrd.img'', which is something I omitted from the detailed steps above in order to keep the story readable</note> 
- 
-<note> You can also just download a [[http://www.slackware.com/~alien/slackboot/pxe/initrd.img|ready-made initrd.img]] of course. 
-I have an accompanying [[http://www.slackware.com/~alien/slackboot/pxe/pxelinux.cfg/default|pxelinux configuration file]] too. If you rather want to create that file yourself, use the aforementioned //create_slackboots.sh// script or read the next paragraph.</note> 
- 
-==== Creating a pxelinux configuration file ==== 
- 
-Copy the isolinux.cfg file from the Slackware CDROM to the tftp directory: <code> 
-mkdir -p /tftpboot/slackware-11.0/pxelinux.cfg 
-cp /mirror/Slackware/slackware-11.0/isolinux/isolinux.cfg /tftpboot/slackware-11.0/pxelinux.cfg/default 
-</code> and edit the resulting file so that every occurrence of the absolute path name ''/kernels'' will be replaced with the relative pathname ''kernels'', and the size of the ramdisk is increased to the amount where our bigger root filesystem will still fit. Rule of thumb: since we added the contents of the ''pcmcia.dsk'' and the ''network.dsk'' filesystems to the ''initrd.img'', we need a ramdisk that is roughly 3MB larger than is used for CDROM-booting. I assume 9.5 MB will do (this should be at least equal to the size of the uncompressed file ''newinitrd'' we created in the [[#creating_an_initrd.img|previous section]]): <code> 
-sed -i -e "s/ramdisk_size=[[:digit:]]*/ramdisk_size=9500"/ \ 
-       -e "s#/kernels/#kernels/#" \ 
-       /tftpboot/slackware-11.0/pxelinux.cfg/default 
-</code> 
- 
-Note: The [[http://www.slackware.com/~alien/tools/slackboot/|create_slackboots.sh]] script mentioned in the [[#creating_an_initrd.img|previous section]] will create this file for you along with the needed ''initrd.img'' file. 
  
 ===== Trying it out ===== ===== Trying it out =====
Line 248: Line 183:
 You now have a fully configured PXE server. Try it out!\\ You now have a fully configured PXE server. Try it out!\\
 Take a computer that is able to do a network boot, start it, and watch it go through the motions of contacting the PXE server, downloading the PXE boot code and presenting you with the familiar Slackware installation screen! From there on you're on familiar grounds: choose a kernel, and off you go. Take a computer that is able to do a network boot, start it, and watch it go through the motions of contacting the PXE server, downloading the PXE boot code and presenting you with the familiar Slackware installation screen! From there on you're on familiar grounds: choose a kernel, and off you go.
- 
-If you're not familiar with NFS installations, here are some hints: 
- 
-  * After you log in as root and setup the partitions using fdisk or cfdisk, you must load a kernel module for your network card.\\  This probably will not be a PCMCIA card (I don't know of any that can perform a PXE boot), so it won't be necessary running "''pcmcia''" to load support for a PCMCIA card.\\ You **do** have to run the command "''network''" which is the interactive program that allows you to pick a driver or let Slackware probe the card and load the correct driver. If the ''network'' program fails to detect the card, and you know what driver your card needs but don't see it listed, you're out of luck! 
  
   * Select a "NFS installation" once you get to the "SOURCE" dialog. You will need to supply a couple of values for IP Addresses and the NFS server directory. These are:\\    * Select a "NFS installation" once you get to the "SOURCE" dialog. You will need to supply a couple of values for IP Addresses and the NFS server directory. These are:\\ 
Line 259: Line 190:
 ^ The gateway                             192.168.0.10| ^ The gateway                             192.168.0.10|
 ^ NFS server address                    |    192.168.0.1| ^ NFS server address                    |    192.168.0.1|
-^ Slackware directory on the NFS server | /mirror/Slackware/slackware-11.0/slackware |+^ Slackware directory on the NFS server | /mirror/Slackware/slackware-12.2/slackware |
  
   * From this point onwards, the installation proceeds just as when the SOURCE would have been a CDROM.   * From this point onwards, the installation proceeds just as when the SOURCE would have been a CDROM.
 +
 +  * If you have configured a FTP or HTTP server with a Slackware package tree instead, the dialogs are similar. 
  
 Good luck! Good luck!
Line 302: Line 235:
     use-host-decl-names on;     use-host-decl-names on;
     if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {     if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
-      filename "/slackware-11.0/pxelinux.0";+      filename "/slackware-12.2/pxelinux.0";
     }     }
 } }
Line 406: Line 339:
  
   if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {   if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
-    filename "/slackware-11.0/pxelinux.0";+    filename "/slackware-12.2/pxelinux.0";
   }   }
   else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {   else if substring (option vendor-class-identifier, 0, 9) = "Etherboot" {
-    filename "/slackware-11.0/kernels/sata.i/bzImage";+    filename "/slackware-12.2/kernels/hugesmp.s/bzImage";
   }   }
  
 PXE: Installing Slackware over the network ()
SlackDocs