summaryrefslogtreecommitdiff
path: root/memdisk/memdisk.doc
blob: e7a79e71814002cf28873878795a7fe459d845ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
$Id$
[This documentation is rather crufty at the moment.]

MEMDISK is meant to allow booting legacy operating systems via PXE,
and as a workaround for BIOSes where ISOLINUX image support doesn't
work.

MEMDISK simulates a disk by claiming a chunk of high memory for the
disk and a (very small - 2K typical) chunk of low (DOS) memory for the
driver itself, then hooking the INT 13h (disk driver) and INT 15h
(memory query) BIOS interrupts.

To use it, type on the SYSLINUX command line:

memdisk initrd=diskimg.img

... where diskimg.img is the disk image you want to boot from.

[Obviously, the memdisk binary as well as your disk image file need to
be present in the boot image directory.]

... or add to your syslinux.cfg/pxelinux.cfg/isolinux.cfg something like:

label dos
    kernel memdisk
    append initrd=dosboot.img

Note the following:

a) The disk image should *not* be compressed.

b) If the disk image is one of the following sizes, it's assumed to be a
floppy image:

     368,640 bytes -  360K floppy
     737,280 bytes -  720K floppy
   1,222,800 bytes - 1200K floppy
   1,474,560 bytes - 1440K floppy
   2,949,120 bytes - 2880K floppy

For any other size, the image is assumed to be a hard disk image, and
should typically have an MBR and a partition table.  The disk C/H/S
geometry is determined by examining the partition table, so the entire
image should be partitioned for proper operation.

You can also specify the geometry manually with the following command
line options (currently untested):

   c=<number>	Specify number of cylinders (max 1024[*])
   h=<number>	Specify number of heads (max 256[*])
   s=<number>	Specify number of sectors (max 63)
   floppy	The image is a floppy image
   harddisk	The image is a hard disk image


[*] MS-DOS only allows max 255 heads, and only allows 255 cylinders
    on floppy disks.

If you want to recompile it from sources, you will need to make sure that
you have a fairly recent binutils installed.  I have been using the
binutils-2.11.90.0.8-9 RPM from RedHat.