PXE Imaging on Serial ATA


We had big problems getting PXE imaging to work on our 40 brand new PCs with Serial ATA (SATA) disks.

But we finally ended up with these two PXE files - linux.1 and linux.2 which have support for SATA and support for almost all Intel and Broadcom NICs. I would like to share them with you.

Download pxe_sata.zip. (above)

How to create your own ZEN Linux kernel files with SATA support

A few people emailed me and asked me for a detailed how to. Here is a description of how I made the Linux Imaging files for Novell's ZENworks for Desktops 4.0.1.
Anders Martinusen

  1. Install a linux distribution that you are familiar with. I did it on an old RedHat 7.1.
  2. Log on as root and open a console window.
  3. Get the source code for the kernel (2.4.22), Alan Cox's SATA patch (SATA support via SCSI layer), Novell's ZEN Patch and the rro-patch.

    cd /usr/src
    wget http://kernel.org/pub/linux/kernel/v2.4/linux-2.4.22.tar.bz2
    wget http://kernel.org/pub/linux/kernel/people/alan/linux-2.4/2.4.22/patch-2.4.22-ac4.bz2
    wget http://www.geogr.ku.dk/users/am/zen/patch-2.4.22-ac4-zen
    wget http://www.geogr.ku.dk/users/am/zen/patch-2.4.22-ac4-zen-rro

  4. Unpack the source code for the kernel and apply the two patches (in regular order).

    tar jxvf linux-2.4.22.tar.bz2
    cd linux-2.4.22
    bzcat ../patch-2.4.22-ac4.bz2| patch -p1
    cat ../patch-2.4.22-ac4-zen| patch -p1
    cat ../patch-2.4.22-ac4-zen-rro| patch -p1

  5. Get a "predefined" configuration file for the kernel and rename it.

    wget http://www.geogr.ku.dk/users/am/zen/config-2.4.22-ac4-zen
    mv config-2.4.22-ac4-zen .config

  6. Start menuconfig and apply your own special drivers if necessary.

    The above listed .config file already has SATA support enabled and some new NIC's enabled. You can also enable or disable "Kernel debugging" under the menu point "Kernel hacking" I guess it must be somewhere here in the menus you can enable or disable USB keyboard support.

    Make sure that Math emulation is disabled.
  7. Make menuconfig
  8. Compile the kernel and the matching kernel modules

    make clean dep bzImage modules modules_install
    cd /usr/src
  9. Get the ZenDisk package, so we can make our own ZEN kernel files

    wget http://www.novell.com/coolsolutions/zenworks/assets/zendist-4.0-p1.tgz
    tar zxvf zendist-4.0-p1.tgz
    cd /usr/src/build/
  10. Copy our new kernel and modules to the ZenDist build system

    cp /usr/src/linux-2.4.22/arch/i386/boot/bzImage bootdisk/firstdisk/kernel
    cp -r /lib/modules/2.4.22-ac4 bootdisk/thirddisk/lib/modules
  11. Remove unnecessary old kernelmodules (2.4.18)

    rm -rf bootdisk/thirddisk/lib/modules/2.4.18
  12. Generate the images and check for errors

  13. The new image files are ready to use and can be found in /usr/src/build/images

Comments and known issues

  • I built my own kernel only because we needed the files for the PXE system. Therefore I haven't tested the other files for the imaging system (floppies, CD iso etc.)
  • During the build I know there were some problems creating the CD iso.
  • Normally during imaging of IDE hard disk you can use the hdparm tweak for better performance. The tweak is: hdparm -d1 /dev/hda I couldn't get this working in this build. I've tried this one but with no luck. This means that imaging IDE hard disks will take longer time.

If you somehow manage to fix one or more of these problems, let me know, either by mailing them to me.

It isn't easy to create your own kernel files. However, it is possible. Before we ran into this problem I had never installed or used Linux.

I found some helpful documents in Novell's Knowledgebase and some in the Imaging forum. I would especially like to thank Kristoffer Bjork and Reinhard Dittmann for their contribution. I also had some help from the hardcore Linux specialist Claus Alboege.

Here is a document that we used during our work:

Computer Department
Institute of Geography
University of Copenhagen

User Suggestions

Feedback: The CD ISO is created using mkisofs, my redhat 8.0 distribution did not have it installed by default either.

A search on rpmfind for "mkisofs" will find the appropriate distribution install.

As soon as you install the rpm, all is good, and with your instructions the bootcd.iso image is created.

Thank you! You made a difficult task much easier.

See this article for additional comments.


Comment List
Related Discussions