Booting a PE based ISO image 

http://www.911cd.net/forums//index.php?showtopic=17923

After reading some very interesting stuff about grub, memdisk, isolinux, bootable disk images and so on, I understand that it is possible to boot eg knoppix from iso file using grub commands to load the kernel and to load the iso file from a device.

My question is can I load each and every ISO (that contains an OS)…?

Short answer
NO
Long answer
Yes, but there are different ways for each OS that is on the .iso, and some limitations apply.

For XP/PE based, yes, it should be possible, by using the direct loading capability of GRUB4DOS to load PELDR or whatever the SETUPLDR.BIN is named to and using the Windows 2003 Server files to boot through ramdisk.

Some details are here:

How to get a boot menu before loading BartPE
http://www.911cd.net/forums//index.php?showtopic=16980

Bart PE + boot Menu on ThumbDrive
http://www.911cd.net/forums//index.php?showtopic=17425

Please note that GRUB4DOS and Linux GRUB are not the SAME program, though they have common roots and code.

Also read these: http://z3.invisionfree.com/Boot_Land/index…p;showtopic=155 http://www.boot-land.net/forums/index.php?showtopic=14

jaclaz

documented on: Jul 26 2006

Booting a PE based ISO image 

> I have a bootsect.bin on my disk, is that the same as SETUPLDR.BIN?

No, bootsect.bin is a copy of a bootsector, i.e. a 512 byte file.

SETUPLDR.BIN is the loader of the setup, and consequently of PE based systems, you can find a copy of it in the /I386 directory of your original source XP cd.

The particular version of SETUPLDR.BIN that ships with Server 2003 SP1 has additional capabilities, between which the capability to access an .iso file, copying it to a ramdisk, then booting from it, you will also need another feile from Win2003 SP1, called RAMDISK.SYS, check this

bootsect.bin being a copy of a bootsector has hardcoded inside it the geometry of the partition from which it was copied, so it is not a "portable" solution (unless you copy it to an IDENTICAL partition), and you have to recreate it each time, the advantage of GRUB4DOS/GRLDR is that it can load directly SETUPLDR.BIN, without using bootsect.bin, however the procedure to build a correct peboot.bin is described in cdob post right here http://www.911cd.net/forums//index.php?showtopic=14164&st=20

if you use the above method, SETUPLDR.BIN must be in the root directory of the drive and be renamed to PELDR.

Of course using the ramdisk to boot has some limitations, given by the SIZE of the .iso file and AMOUNT of memory on the PC.

jaclaz

documented on: Jul 26 2006

Booting a PE based ISO image 

Basically, you need to find a way (it depends from tools you may or you may not have at your disposal) to modify the .iso adding in folder \i386\system32\ (if the structure of the ERD .iso is that) the ramdisk.sys file from Server 2003 SP1.

The procedure to extract the file is described in this thread: http://www.911cd.net/forums/index.php?showtopic=10806

Then supposing that you have (and already bootable, working, etc. on your hard disk root folder the "normal" NT bootfiles:

NTLDR
NTDETECT.COM
BOOT.INI

You have to add to it:

  1. The .iso file, let's say that it's name is ERDNT.ISO
  2. The GRLDR file from GRUB4DOS: http://grub4dos.jot.com/WikiHome
  3. The SETUPLDR.BIN from Win2003 SP1
  4. A file named WINNT.SIF with this contents:

    [SetupData]
    BootDevice = "ramdisk(0)"
    BootPath = "\I386\SYSTEM32\"
    OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd /rdpath=ERDNT.ISO"
  5. A file named menu.lst with this contents:

    # This is a basic menu.lst file for GRUB4DOS
    # Following is the timeout for the default choice
    # By not pressing any key during the timeout, the default will be chosen
    timeout 10
    # Following is the menu item that will default
    default 0
    # This reflects the "normal" behaviour of a PC
    # i.e. booting the first partition of first harddisk
    # By setting it as default with timeout 10 seconds (see above)
    # We try to replicate somehow the "Press any key to boot from CD..." message
    # of Microsoft Install CDs, this way if no key is pressed, as an example for
    # unattended installs, the system will boot "normally" even if CD is inserted
    # of course if the "any" you press is [ENTER] system will boot from this entry
    title Boot Hard Disk MBR on (hd0,0)
    chainloader (hd0,0)+1
    rootnoverify (hd0)
    title NTLDR
    # This entry simply tries to load a NT/Win2K/XP/2003
    # system ALREADY on your hard disk using the NTLDR/NTDETECT.COM
    # and boot.ini on the CD
    find --set-root /NTLDR
    chainloader /NTLDR
    title SETUPLDR.BIN
    # This entry simply tries to directly load a PE system
    # from SETUPLDR.BIN in the root directory
    find --set-root /SETUPLDR.BIN
    chainloader /SETUPLDR.BIN
  6. Then you need to edit BOOT.INI adding at the end of it this line:

    C:\GRLDR="GRUB"

Please remember that GRUB4DOS use CaSe SeNsItIvE names!

It is recommended that you check the names of the involved files by issuing a DIR command in a command prompt window.

> And if i can boot from ISO, are there any limitations?

As said limitations are given by size of image and amount of RAM installed on the PC, you need RAM > (amount of RAM used by the .iso file when booted directly from CD + size of .iso file).

If I recall correctly the ERD .iso I used was less than 200 Mb, so, a machine with 512 Mb would be more than sufficient, probably a 256 Mb one would be a little "tight", a 128 Mb one is a "NO WAY".

jaclaz

P.S. The board "wraps around" some lines of the posted code the lines above that begin with: (in WINNT.SIF): OsLoadOptions = (in menu.lst): By not pressing We try to replicate of Microsoft Install unattended installs # of course if the "any" are really one line with the following one