[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

di-netboot-assistant - Debian-Installer netboot assistant



Hi,

I had a small home-made script to retrieve and untar Debian Installer
netboot images.

I thought it would be useful for others too, so i've improved and
packaged it. Rather that a long explanation, here's how it works :

etch:~# di-netboot-assistant install etch
Processing etch/i386.. downloading.. extracting.. prepare menu.. done.
I: Building Debian-Installer Menu file

etch:~# di-netboot-assistant install daily --arch=amd64
Processing daily/amd64.. downloading.. extracting.. prepare menu.. done.
I: Building Debian-Installer Menu file

etch:~# tree /var/lib/tftpboot/
/var/lib/tftpboot/
`-- debian-installer
    |-- daily
    |   `-- amd64
    |       |-- boot-screens
    |       |   |-- adtext.cfg
    |       |   |-- f1.txt
    |       |   |-- f10.txt
    |       |   |-- f2.txt
    |       |   |-- f3.txt
    |       |   |-- f4.txt
    |       |   |-- f5.txt
    |       |   |-- f6.txt
    |       |   |-- f7.txt
    |       |   |-- f8.txt
    |       |   |-- f9.txt
    |       |   |-- menu.cfg
    |       |   |-- prompt.cfg
    |       |   |-- splash.png
    |       |   |-- stdmenu.cfg
    |       |   |-- text.cfg
    |       |   `-- vesamenu.c32
    |       |-- initrd.gz
    |       |-- linux
    |       |-- pxelinux.0
    |       `-- pxelinux.cfg
    |           |-- default
    |           `-- default.ORIG
    |-- etch
    |   `-- i386
    |       |-- boot-screens
    |       |   |-- boot.txt
    |       |   |-- boot.txt.ORIG
    |       |   |-- f1.txt
    |       |   |-- f10.txt
    |       |   |-- f2.txt
    |       |   |-- f3.txt
    |       |   |-- f4.txt
    |       |   |-- f5.txt
    |       |   |-- f6.txt
    |       |   |-- f7.txt
    |       |   |-- f8.txt
    |       |   |-- f9.txt
    |       |   `-- splash.rle
    |       |-- initrd.gz
    |       |-- linux
    |       |-- pxelinux.0
    |       |-- pxelinux.cfg
    |       |   |-- default
    |       |   `-- default.ORIG
    |       `-- pxelinux.cfg.serial-9600
    |           |-- default
    |           `-- default.ORIG
    |-- pxelinux.cfg
    `-- pxelinux.cfg.serial-9600


I don't consider it complete yet, but I would get some feedback (release
early, release often...).

Also, I'll need a sponsor, once it's good-enough. The current package is
available at :
http://mentors.debian.net/cgi-bin/sponsor-pkglist?action=details;package=di-netboot-assistant

Franklin

P.S I've attached the README file.
Debian-Installer NetBoot Assistant
------------------------------------

QuickStart :
    
    1. Install di-netboot-assistant
    2. Install a tftp server (like tftpd-hpa)
    3. Run "di-netboot-assistant install etch" or similar.
    4. Configure the DHCP server, as explained in [1], or sample [2].

  Then either :

    ** Use syslinux' menu to select among multiple dist/arch Debian-Installer :

    5a. Install syslinux :
          $ apt-get install syslinux
          $ mkdir /var/lib/tftpboot/pxelinux/
          $ cp /usr/lib/syslinux/menu.c32 /var/lib/tftpboot/pxelinux/
          $ cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot/pxelinux/

    6a. In dhcpd.conf,  declare :
          filename "pxelinux/pxelinux.0";
          site-option-space "pxelinux";
          option pxelinux.magic f1:00:74:7e;
          option pxelinux.configfile "debian-installer/pxelinux.cfg";
          #next-server 192.168.0.10;          # If tftpd server <> dhpcd
  or

    ** Use a single Debian-Installer distribution/architecture.

    5b. In dhcpd.conf, directly declare :
          filename "debian-installer/etch/i386/pxelinux.0";
          site-option-space "pxelinux";
          option pxelinux.magic f1:00:74:7e;
          option pxelinux.configfile "debian-installer/etch/i386/pxelinux.cfg/default";
          #next-server 192.168.0.10;          # If tftpd server <> dhpcd


    [1] "Installation Guide"[1], especially the sections 
        "4.6 Preparing Files for TFTP Net Booting"
        and "5.1.5 Booting with TFTP"
        http://www.debian.org/releases/stable/installmanual

    [2] A sample (untested) dhcpd.conf is located in :
        /usr/share/doc/di-netboot-assistant/examples/dhcpd.conf.netboot  


TODO
    - Test with /bin/sh => /bin/dash (postrm)
    - Allow to specify location of extraction.
    - Allow to be invoked from non-root user.
    - Allow to specify alternate name for repository (save 'daily' as '$date')
    - support non pxelinux platforms (elilo ia64 ; yaboot powerpc ;
      sibyl mips sb1-bcm91250a/sb1a-bcm91480b)

    - Implement "clean" action to remove cached files
    - Provide tested example for DHCP.


See also :
    http://www.debian.org/devel/debian-installer/
    http://wiki.debian.org/DebianInstaller

 -- Franklin PIAT

Reply to: