Jump to content

[How To] Multi-boot DVD Guide


Recommended Posts

Understanding The Boot Process

- CD Shell lets you choose which XXXX.DAT boot sector to access (located on the DVD root)

But what makes the DVD boot from CD Shell? Is it just the loader.bin in /BOOT that causes this or is it something else?

Once you turn ON your PC, when the DVD player starts to read the DVD, the very first bits it reads are those who tell the PC whether this is a bootable DVD or not. Once the PC "knows" that it's handling with a bootable DVD, asks you if you want to boot from it and if you "Press any key to boot from DVD" it starts of by reading the next bits. Those bits are CD Shell's binarys for the software that will run the menu. Call it the "operating system" in wich the menu will be launched. Once inside the menu it's up to the user to select the XXXX.DAT boot sector to be launched. When it does, all the bits in the RAM clear out and the selected boot sector will load the same way CD Shell's "operating system" did, as if it where an original windows DVD, acting as the new "operating system" for all the operations that will take place from that time on.

Edited by andregcasal
Link to comment
Share on other sites


Once you turn ON your PC, when the DVD player starts to read the DVD, the very first bits it reads are those who tell the PC whether this is a bootable DVD or not. Once the PC "knows" that it's handling with a bootable DVD, asks you if you want to boot from it and if you "Press any key to boot from DVD" it starts of by reading the next bits. Those bits are CD Shell's binarys
Yes, I knew all that, but what binaries are they, how does the booting PC know it should read those, where is this set?
Link to comment
Share on other sites

but what binaries are they, how does the booting PC know it should read those, where is this set?
The BIOS read sector 17 of last session.

“El Torito” Bootable CD-ROM Format Specification http://www.phoenix.com/NR/rdonlyres/98D321.../specscdrom.pdf

This “Boot Record” must reside at sector 11 (17 decimal) in the last session on the CD. The Boot Record contains an absolute pointer to the Boot Catalog.

Given cdshell: the Boot Catalog contain a pointer to another sector. This sector contain data from loader.bin.

Link to comment
Share on other sites

This “Boot Record” must reside at sector 11 (17 decimal) in the last session on the CD. The Boot Record contains an absolute pointer to the Boot Catalog.

Given cdshell: the Boot Catalog contain a pointer to another sector. This sector contain data from loader.bin.

So, I think this means you need to burn cdshell's loader.bin to that sector (as that sector of 2048 bytes), and that loader.bin sector on the iso tells the machine to check the folder /BOOT for the next step? Really strange, but this information on cdshell is not easy to find, so thanks for the Torito pointer. I can only find this http://cdshell.org/doc/loader.html but without examples.

By the way, the links to cdshell in most guides are wrong, it's at http://cdshell.org/ now.

Edited by meowing
Link to comment
Share on other sites

My best guess: When you are creating the ISO file, the batch command start cdimage.exe -lDVD -t01/01/2006,12:00:00 -b\DVD\BOOT\loader.bin -h -n -o -m \DVD C:\AIODVD.iso imprints the loader.bin into the corresponding section of the ISO. This loader.bin actually comes with CDImage itself, so it's not related to CD Shell. Think of the loader.bin file as the binary code that tells the machine (where) to start loading stuff from the DVD. What happens next is that the machine starts to load the CD Shell "operating system" wich in turn launches the menu. The loader.bin file is the same for pretty much any DVD, except DVD's with secure data.

Edited by andregcasal
Link to comment
Share on other sites

So, I think this means you need to burn cdshell's

loader.bin to that sector

No, loader.bin is not located at sector 17. Read the CD boot specs again.
and that loader.bin sector on the iso tells the machine to check the folder /BOOT for the next step?

Loader.bin load cdshell main application: cdsh.bin.

By the way: cdshell is not developed since 2005.

Link to comment
Share on other sites

This loader.bin actually comes with CDImage itself, so it's not related to CD Shell.
CD Shell contain a loader.bin. It's recommended to use this loader for CD Shell.
BTW, is there any leading open source booter around?
What's a leading booter?

There are two open source booter developed currently:

grub4dos and syslinux.

Link to comment
Share on other sites

What's a leading booter?

Leading stads for leadership, the leader, the best, the most used. grub4dos must do the job. Thank you.

Yes, grub4dos is also used by the MultibootISOMaker: http://www.911cd.net/forums//index.php?showtopic=23375 but I have no idea (as of yet) how to set that up for a menu to run XP x64 setupldr.bin files.. if you find a decent example, please post it here.
Link to comment
Share on other sites

General grub4dos informations: integrated help file

http://grub4dos.sourceforge.net/wiki/index...ub4dos_tutorial

http://diddy.boot-land.net/grub4dos/Grub4dos.htm

Grub4dos can chainload setupldr.bin: no need for a boot sector file.

Grub4dos was enhanced recently, 14th Nov 2009: http://nufans.net/grub4dos/tinybit/

Editing in RAM is possible now.

title Loading XP install - plain /I386/SETUPLDR.BIN
chainloader /I386/SETUPLDR.BIN

title Windows XP Home\n Windows XP Home - multi boot - unattended
map --mem /XHO1/SETUPLDR.BIN (rd)
cat --locate=i386 --replace=XHO1 (rd)+1
chainloader (rd)+1
root ()

title Windows XP Home\n Windows XP Home - multi boot - attended
map --mem /XHO1/SETUPLDR.BIN (rd)
cat --locate=i386 --replace=XHO1 (rd)+1
cat --locate=WINNT.SIF --replace=WINNT.OFF (rd)+1
chainloader (rd)+1
root ()

title Windows XP Home System Builder\n Windows XP Home - multi boot - mass storage drivers floppy image
map --mem /INST/F6FLOPPY.IMA (fd0)
map --mem /INST/F6FLOPPY.IMA (fd1)
map --hook
map --mem /XHO1/SETUPLDR.BIN (rd)
cat --locate=i386 --replace=XHO1 (rd)+1
chainloader (rd)+1
root ()

title Windows XP PRO 64 SP2 - multi boot
map --mem /XP64/I386/SETUPLDR.BIN (rd)
#checksum: geitonaki http://www.msfn.org/board/index.php?showtopic=58410
write --offset=0x2060 (rd)+1 \xEB\x1A
#cdob SetupSourcePath="\XP64\"; BootPath=\XP64\AMD64\
#http://www.msfn.org/board/index.php?s=&showtopic=126480&view=findpost&p=814566
cat --locate="\\i386\\ntdetect" --replace="\\XP64\\ntdetect.com" (rd)+1
cat --locate="amd64\\" --replace="XP64\\\x00" (rd)+1
cat --locate="AMD64\\" --replace="XP64\\\x00" (rd)+1
cat --locate="\\AMD64" --replace="\\XP64\x00" (rd)+1
cat --locate=I386 --replace=XP64 (rd)+1
chainloader (rd)+1
root ()

@meowing

Yes 0x00 is importand, space won't work.

Link to comment
Share on other sites

  • 3 months later...

DEAR SIR,

YOUR - Download geitonaki's SFX file LINK IS NOT WRKING AND [How To] Multi-boot DVD Guide (Updated)LINK IS NOT WORKING PLEASE ME THE SFX FILE AND UPDATED GUIDE...

Link to comment
Share on other sites

DEAR SIR,

YOUR - Download geitonaki's SFX file LINK IS NOT WRKING AND [How To] Multi-boot DVD Guide(Updated) LINK IS NOT WORKING PLEASE ME THE SFX FILE AND UPDATED GUIDE...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...