Currently, the netboot images are just .tar.gz files, that contains a linux kernel, an initrd, and some pre-configured bootloader configuration files.
This page contain a proposal to add some metadata to those images. This would allow to build bootloaders' menus automatically.
The purpose would be:
- Describe images, to make it easier to build tools to download/install boot images (netboot, xen as well as raw images like iso, usb-storage... ).
- Provide information to build menu to the image to boot
- And allow the system administrator to provide extra options to be passed as kernel argument (preseeding, etc..)
This is an early draft.
Package List
dists/squeeze/main/installer-i386/current/images/Packages
This file could be declared in http://ftp.fr.debian.org/debian/dists/squeeze/Release, or something equivalent since the files are tarballs or raw images rather than .deb files.
For each package:
Package: netboot-linux-i386-gtk-lenny Priority: optional Sction: utils Installed-Size: 2048 Maintainer: Debian Install System Team <debian-boot@lists.debian.org> Architecture: all X-Boot-Image-Type: netboot X-Client-Architecture: i386 X-Client-Sub-Architecture: 486 Version: 5.0~2008-10-29-rc1 Filename: dists/lenny/main/installer-i386/current/images/netboot/gtk/netboot.tar.gz Size: 1024 MD5sum: 07bce47e217017749622e02f75cff0d7 SHA1: 80b9ff12999d69be075de6e51b69c069a9a106a7 SHA256: 409b7e5e1efff1e8196ce5151a4cfa63dd2bd6a6f611e2a6c611a0a73d3e83f9 Description: PXE boot directory for tftp server (graphical installer)
Some other entries, currently listed in the MANIFEST file.
- hd-media/boot.img.gz -- 256 mb image (compressed) for USB memory stick
similar, but X-Boot-Image-Type: hd-media
- netboot/gtk/mini.iso -- not so tiny CD image that boots the graphical netboot installer
similar, but X-Boot-Image-Type: netboot-mini-iso
netboot/xen/initrd.gz -- initrd for installing under Xen
- netboot/xen/vmlinuz -- kernel image for installing under Xen
similar, but X-Boot-Image-Type: xen.
- Problem: we have multiple files here.
Package Metadata
Here's a sample meta-data file, that should be included in the tarball.
Package: netboot-linux-i386-gtk-lenny Description: Linux netboot image for i386 architecture (flavour: gtk) Comment: Any comment?? Architecture: i386 Sub-Architecture: Foobar X-OS-Name: Debian Distribution: lenny, testing Version: 5.0~2008-10-29-rc1 Preferred-Bootloader: syslinux (>= 2.0) X-Kernel: debian-installer/i386/linux X-Initrd: debian-installer/i386/initrd.gz X-Initrd: [none| Maintainer: Debian Install System Team <debian-boot@lists.debian.org> Default: install Standards-Version: 0.1 Menu-Entry: install Description: Install Comment: Any comment?? X-Append: video=vesa:ywrap,mtrr vga=788 -- quiet X-Hot-Key: i Menu-Entry: expert Description: Expert X-Append: priority=low video=vesa:ywrap,mtrr vga=788 Section: admin X-Hot-Key: e Menu-Entry: rescue Description: Rescue mode X-Initrd: debian-installer/i386/initrd.gz Comment: Any comment?? X-Append: video=vesa:ywrap,mtrr vga=788 rescue/enable=true -- quiet Section: admin X-Hot-Key: r Menu-Entry: ssh Description: Start DI in SSH client mode only X-Initrd: debian-installer/i386/initrd.gz Comment: Any comment?? X-Append: video=vesa:ywrap,mtrr vga=788 rescue/enable=true -- quiet Section: utils Menu-Entry: Help overview X-Hot-Key: f1 X-Append: debian-installer/i386/boot-screens/f1.txt Section: text Menu-Entry: Pre-requisites for Installing Debian X-Hot-Key: f2 Append: debian-installer/i386/boot-screens/f2.txt Section: text Menu-Entry: help Description: Help X-Kernel: less.c32 Comment: there is no help browser at the moment ;( X-Append: debian-installer/i386/boot-screens/f1.txt Section: doc X-Hot-Key: h
Todo / questions remaining
- These format should not be limited to describe netboot images: it should be possible to describe cd menu, and may be hypervisors (Xen) boot images.
- How to describe sub menu? (see freedesktop / debian menu?)
- How to describe the help pages?
- How to address features like syslinux' "default64"
- hardware hints?
- How to describe/define keyboard shortcut
- Internationalization ?
- Firmware
- Note: Ethernet MAC address can be used to determine the network card manufacturer (and therefore, the firmware needed).
Implementation TODO list
- add kernel parameters:
- kernel and initrd's CRC32 (to identify cd images)
- cdrom: add a "test cdrom checksum" entry
- memtest
- add option to merge firmware in netboot initrds.
- LTSE
