In article gIy68SAOfTA7EwBO@tcs02.demon.co.uk, Martin Liddle martin@tcs02.demon.co.uk writes
In article 200105151140.NAA09220@goedel.fjf.gnu.de, Frank Heckenbach frank@g-n-u.de writes
Martin Liddle wrote:
Does anybody have a code fragment to read the boot sector of a PC running Linux (Red Hat 6.2 if it matters)?
Linux by itself does not use a boot sector. It can be loaded by various boot loaders like LILO, grub or loadlin. While the latter one is a Dos executable, the former two contain their own boot sectors. You may want to look into their source code (C, of course) to find out more.
I think my terminology may be faulty. What I am after is the Master Boot Record (MBR) which I think will be present on a PC, almost irrespective of the operating system. I have downloaded the source for grub but there is a lot to plough through. I just hoped somebody had done it before.
To answer my own question, I finally managed to start to think and came up with this, which seems to do what I want:
Var InBuffer: Array[0..511] of Byte; InFile:File;
Reset(InFile,'/dev/hda',512); Blockread(Infile,InBuffer,1);