[syslinux] using pxelinux for booting of a any local disk

san rad srrjra at gmail.com
Mon Jan 30 17:44:20 PST 2006


On 1/29/06, H. Peter Anvin <hpa at zytor.com> wrote:
>
> san jr wrote:
> >>
> > I am confused about the relationship between pxlinux, syslinux and
> extlinux
>
> SYSLINUX is a package which contains SYSLINUX (which probably should be
> renamed FATLINUX), PXELINUX, ISOLINUX, and EXTLINUX, as well as MEMDISK
> and the com32 utilities.
>
> > Naive question:
> >   How do you tell the pxelinux config to use extlinux instead of
> syslinux?
> >    (recall I would like to use pxe to control how a client is booted.)
>
> Use chain.c32 to load extlinux from a partition.
>
>         -hpa
>

(sorry I hit send on the last email by mistake before completing the email,
please ignore it)


So I got a few things to work for using chain.c32 to boot off any disk
 But have some questions that may help me clarify a few  things:

Experiment 1
  a)  Installed windows 98 on a disk (disk 1)
  b) Copied the disk to a second disk (disk 2) using disk-to-disk copy
  c) Booted each of them locally (by modifying bios boot seq) and created
     a file on each disk so I could distinguish them

When I tried to use chain.c32 to boot from hd0 or hd1 it ALWAYS booted from
the first disk (hd0). I think the reason is that because when I copied the
disk,
the MBR on the first disk got copied and it points to HD0 (a guess on my
part here- I originaly thought MBRs can only point to a partition on the
disk on which the MBR lives).

Experiment 2:
  Took the system from Experiment 1 and installed Linux on the disk 2
(the one that originally had a copy of the windows 98).
  Now when I booted using chain.c32 to boot from hd0, it boot Linux from
disk 2 (yes disk 2) and when i asked chain.c32 to boot from hd1 it booted
from the first disk. Odd (opposite of what I expected - I checked the bios
setting for the disk order - they were correct)!

 I think the reason is that when Linux got installed on disk 2 (hdb) , it
modified the MBR of disk 1. SO when bios boots from hd0's MBR it passes
control to Grub in disk 2 which then boots Linux.
Remember that disk2 was copied from disk 1 originally and so its MBR
is probably pointing to boot off disk1. (This is a guess on my part).

So does chain.c32 merely pass control to the MBR rather then to the loader
inside the partition?

Is there a way for me to get chain.c32 to pass control to the loader inside
the partition so that the user installing the OS on a multiple disks does
not have to go through the trouble of getting all the MBRS to be correct.
(BTW is there a easy way to fix MBRs to that disk 1 MBR point to disk 1
and disk2's MBR to point to disk 2.)

BTW I got chain.c32 to boot Linux off what I believe is ext2 partition
(without using extlinux) I think this is because it passes control to grub.



More information about the Syslinux mailing list