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.