[syslinux] ISOLinux Windows / linux Install DVD

Ryan McLean ryanm at accelrys.com
Fri Dec 1 02:09:04 PST 2006


>>IIRC the string "i386" is hard coded in the Windows boot loader and a
>>few other places (I think Winnt.sif and possibly one more place). If
>>you want to have multiple versions of windows files and/or a
>>non-standard name, you would need to make a copy of the Windows boot
>>loader (see BartPE's website for more info) and use a Hex Editor to
>>replace i386 with some other 4 letters and change winnt.sif and
>>possible one other file similarly.
>>
>>Question is what do you want to do with windows boot files? Boot into
>>a recovery console alone. Boot into a (almost) full fledged windows
>>right off the DVD? If the later you are better off installing BartPE
>>(http://www.nu2.nu/pebuilder/) on the DVD.


I basically want to make a DVD that will allow my users to select from 
ISOLinux several different installs.
        1. Boot from HDD
        2. Manual install of Redhat 4.3
        3. ATA install of redhat 4.3
        4. SCSI install of redhat 4.3
        5. Install windows XP Pro SP2


>>If you want to be able to install Windows only from your DVD, you need
>>the contents of the whole CD. The only case where you would want a
>>subset of files from the CD is if you only want the recovery console
>>or want to install windows but using the files on a network share.
>>
>>Somebody else more familiar with Windows installation, can
>>confirm/correct my statement.
>>
>>- Murali

As you have guessed the linux and boot from hdd was easy to do.. Its just 
windows that is acting up as par usual.

I have extracted the boot sector from the windows boot CD and changed I386 
to PRO1 as per this guide: http://flyakite.msfn.org/
I have also modified "setupldr.bin" to point to PRO1 instead of I386 and 
"txtsetup.sif" to point to the new location on the disk for the files.


If i use memdisk and initrd=/PRO1/setupldr.bin 
I get teh following output:

----------------------

e820: 0000000000000000 000000000009f800 1
e820: 000000000009f800 0000000000000800 2
e820: 00000000000dc000 0000000000024000 2
e820: 0000000000100000 000000001fdf0000 1
e820: 000000001fef0000 000000000000c000 3
e820: 000000001fefc000 0000000000004000 4
e820: 000000001ff00000 0000000000100000 1
e820: 000000001ec00000 0000000000010000 2
e820: 00000000fee00000 0000000000001000 2
e820: 00000000fffe0000 0000000000020000 2
Ramdisk at 0x1fe90000, length 0x0003f8b0
command line: initrd=/PRO1/setupldr.bin BOOT_IMAGE=memdisk
MEMDISK: Image has fractional end sector
MEMDISK: Image seems to have fractional end cylinder
Disk is hard disk 0, 254 K, C/H/S = 0/248/61
Total Size needed = 1986 bytes, allocating 2K
Old dos memory at 0x9f00  (map says 0x9f800), loading at 0x9f000
1588: 0xffff  15E801: 0x3c00  0x1ee9
INT 13 08: Success, count = 2, BPT = 0000:0000
old: int13 = ebea40e6   int15 = f000f859
new: int13 = 9f000008    int15 = 9f000290
Loading boot sector... booting...

-----------------------

then it hangs.

if i use the boot sector i extracted (modified and unmodifed (obv with 
files in correct location depending on boot sector)) then i get the 
following:

----------------------

e820: 0000000000000000 000000000009f800 1
e820: 000000000009f800 0000000000000800 2
e820: 00000000000dc000 0000000000024000 2
e820: 0000000000100000 000000001fdf0000 1
e820: 000000001fef0000 000000000000c000 3
e820: 000000001fefc000 0000000000004000 4
e820: 000000001ff00000 0000000000100000 1
e820: 000000001ec00000 0000000000010000 2
e820: 00000000fee00000 0000000000001000 2
e820: 00000000fffe0000 0000000000020000 2
Ramdisk at 0x1fecf000, length 0x00000800
command line: initrd=/PRO1.DAT BOOT_IMAGE=memdisk
MEMDISK: Image seems to have fractional end cylinder
Disk is hard disk 0, 2 K, C/H/S = 0/112/54
Total Size needed = 1977 bytes, allocating 2K
Old dos memory at 0x9f800  (map says 0x9f800), loading at 0x9f000
1588: 0xffff  15E801: 0x3c00  0x1eec
INT 13 08: Success, count = 2, BPT = 0000:0000
old: int13 = ebea40e6   int15 = f000f859
new: int13 = 9f000008    int15 = 9f000290
Loading boot sector... booting...
CDBOOT: Cannot boot from CD - Code 5
CDBOOT: Cannot boot from CD - Code 5
CDBOOT: Cannot boot from CD - Code 5
...
...
-----------------------

Unfortunalty noone seems to know what the error code 5 means..
Although it has been suggested that modifying the boot sector incorrectly 
can cause this, i have discounted that as i have used the original and got 
the same error..

As per the aticle above i could go the other way and use their method 
which would allow me to boot isolinux as the secondary loader but in my 
opinion this is over complicating  the whole project (although i will use 
it as a last resort). I would like to use ISOLinux for the whole job as a) 
it is easy to use and straight forward to modify for future additions etc 
and  b) i want to learn what is happening at this level.

Out of curiosity would it be possible for someone to code a module (or 
even add a windows option to syslinux) that would allow isolinux to boot a 
windows install without having to fiddle with windows boot sectors. imo 
this should be simple (for someone who understands this stuff (ie not me 
:) ) ) to do as the boot sector just seems to call the bootfix.bin then 
setupldr.bin in the i386 folder. The setupldr.bin then calls the 
txtsetup.sif for all the other locations etc.  Obviously people would 
still have to modify their own setupldr to point to new locations if 
applicable as modifying it is probably illegal. But an option that was 
able to kickstart it all would be very useful..


Regards,


Ryan McLean


More information about the Syslinux mailing list