Table of Contents
How can I start HDT ?
Since Syslinux 3.74, HDT is available in the Syslinux archive under the "com32/hdt" directory.
HDT can be started in 4 different ways :
The com32 module
HDT is a com32 module that requires syslinux 3.74 or later. As every com32 module it can be booted like :
LABEL hdt
COM32 hdt.c32
Boot Parameters
See the Boot Parameters page for all boot parameter that can be passed to the HDT com32 module or take a look at the /com32/hdt/floppy/hdt.cfg config file of the source archive or syslinux.cfg or isolinux.cfg of the floppy or ISO image respectively.
Optional files
You can add the following files to your build to have a nicer output:
- pci.ids: can be found at /usr/share/hwdata/pci.ids or /usr/share/pci.ids or http://pciids.sourceforge.net
- modules.alias: To get the location of this file in your distro, run the following in a terminal:
ls /lib/modules/`uname -r`/modules.alias
- modules.pcimap: To get the location of this file in your distro, run the following in a terminal:
ls /lib/modules/`uname -r`/modules.pcimap
- memtest: if you want to run a memory test from the HDT menu. See Starting memtest for more info.
pci.ids, modules.alias and modules.pcimap can optionally be gzipped (remove the gz extension afterwards), to save space and speedup loading.
To get all files the easy way, download the floppy or ISO image and extract the files:
- Linux
Floppy image:
mkdir /tmp/hdt mount -o loop hdt.img /tmp/hdt ls /tmp/hdt
ISO image:
mkdir /tmp/hdt mount -o loop hdt.iso /tmp/hdt ls /tmp/hdt
- Windows
Use 7-zip to extract the floppy or ISO image.
Using the com32 module with kvm/qemu
Since qemu 0.9.0, it is possible to boot a virtual machine while using a local dir as a local pxe server. This is pretty usefull because this allow a local PXE booting without the need of a complete infrastructure (dhcp/tftp).
First, install kvm/qemu, then setup you environment by creating a local pxe directory like "~/pxe". In this pxe dir, create another 'pxelinux.cfg' directory where you'll put the following configuration file named "default" :
DEFAULT hdt
PROMPT 1
TIMEOUT 5
LABEL hdt
COM32 hdt.c32
The copy the pxelinux.0 file from the syslinux archive to the ~/pxe dir. At last, copy the hdt.c32 file in the same directory.
Create a dummy disk file with
dd if=/dev/zero of=dummy.img bs=1M count=5
It's now time to start qemu/kvm to use that local configuration.
kvm -hda ~/pxe/dummy.img -net nic -net user -boot n -tftp ~/pxe -bootp /pxelinux.0
That's it !
The 1.44MB bootable floppy image
The 'make hdt.img' call generates a 1.44MB bootable floppy image.
The 'make hdt.img.gz' call generates a 1.44MB bootable floppy image which is compressed with gzip afterwards.
Writing the floppy image
If you have still a floppy and a floppy drive in your PC, you can write the floppy image to a floppy:
Linux
cat hdt.img > /dev/fd0
or
dd if=hdt.img of=/dev/fd0
Windows
Use rawwritewin to write the image to a floppy.
Using floppy image with different bootloaders
New PCs ship without floppy drives in most cases, but this doesn't make the floppy image useless. MEMDISK (part of the Syslinux package) can emulate a floppy drive, hard drive or CD drive and thus can boot the HDT floppy image. Every bootloader that can boot linux kernel images is able to boot MEMDISK. You need to add MEMDISK of the Syslinux package to your boot media of course.
EXTLINUX, ISOLINUX, PXELINUX and SYSLINUX
Add the following entry to your extlinux.conf, isolinux.cfg, pxelinux.cfg/default or syslinux.cfg:
LABEL hdt LINUX memdisk INITRD hdt.img
You can also use the gzipped floppy image, which will load faster:
LABEL hdt LINUX memdisk INITRD hdt.img.gz
Grub2
menuentry "HDT" {
linux16 /memdisk
initrd16 /hdt.img
}
Grub legacy
title Hardware Detection Tool kernel /memdisk initrd /hdt.img
Grub4dos
title Hardware Detection Tool map --mem /hdt.img (fd0) map --hook root (fd0) chainloader (fd0)+1
Grub4dos can emulate floppy, hard and CD/DVD drives itself. It doesn't need MEMDISK. If you want to use MEMDISK with Grub4dos, use the Grub legacy entry.
The bootable ISO
The 'make hdt.iso' call generates a bootable ISO image. This iso is pretty small (~1MB). This is pretty useful for some QEMU/KVM/VirtualBox/VMWare testing or testing HDT on a regular PC when Syslinux isn't available and you need to boot from CD.
Burn the ISO
Burn the ISO to a CD-R(W) or DVD-R(W). Don't burn the iso as regular file to the iso.
For Windows user, take a look at : How to successfully burn or write an ISO-image to CD.
Usage with qemu
A typical qemu call could be :
qemu -hda myhddimage.img -cdrom hdt.iso -boot d
Using iso image with different bootloaders
MEMDISK (part of the Syslinux package) can emulate a floppy drive, hard drive or CD drive and thus can boot the HDT ISO. Every bootloader that can boot linux kernel images is able to boot MEMDISK. You need to add MEMDISK of the Syslinux package to your boot media of course.
EXTLINUX, ISOLINUX, PXELINUX and SYSLINUX
Add the following entry to your extlinux.conf, isolinux.cfg, pxelinux.cfg/default or syslinux.cfg:
LABEL hdt LINUX memdisk INITRD hdt.iso APPEND iso
Grub2
menuentry "HDT" {
linux16 /memdisk iso
initrd16 /hdt.iso
}
Grub legacy
title Hardware Detection Tool kernel /memdisk iso initrd /hdt.iso
Grub4dos
title Hardware Detection Tool map --mem /hdt.iso (hd32) map --hook root (hd32) chainloader (hd32)
Grub4dos can emulate floppy, hard and CD/DVD drives itself. It doesn't need MEMDISK. If you want to use MEMDISK with Grub4dos, use the Grub legacy entry.
Using boot.kernel.org to start HDT
You can use HDT via http://boot.kernel.org/ project.
* Download the BKO floppy image and boot it via qemu :
qemu -fda gpxe.dsk -boot a
When the menu appears, select HDT from the list.
