BIOS EDD utilities

Overview

mkeddlinks is a simple utility which creates symlinks for the BIOS INT 13 devices present at the time the system booted. For example:

[root@dolphin /]# mkeddlinks
[root@dolphin /]# ls -l /dev/bd*
lrwxrwxrwx  1 root root 3 Sep  7 04:07 /dev/bda -> hda
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bda1 -> hda1
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bda2 -> hda2
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bda5 -> hda5
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bda6 -> hda6
lrwxrwxrwx  1 root root 3 Sep  7 04:07 /dev/bdb -> hdc
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bdb1 -> hdc1
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bdb2 -> hdc2
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bdb5 -> hdc5
lrwxrwxrwx  1 root root 4 Sep  7 04:07 /dev/bdb6 -> hdc6

It is designed to be incorporated into initial ramdisk images (initrds) and to be run immediately before the root filesystem is mounted. The mount command can then use e.g. /dev/bda1 in order to mount the first partition from whichever device the system booted from, without needing to know where this device is currently attached.

Downloading

Internals

mkeddlinks uses the information provided by the “edd” module in 2.6 kernels via the /sys/firmware/edd directory. It reads the “mbr_signature” file of each INT 13 device found via this directory, and matches it against the signature of all disks in the system (found via /proc/partitions). When a match is found, symlinks are created for the disk device and all partitions within the disk.

Contact

Please ask any questions on the etherboot-discuss mailing list at etherboot-discuss@lists.sourceforge.net