My first foray into the world of GRUB4DOS. Experimenting in VirtualBox, to try and create an .iso with oscdimg that boots Windows PE 2.1 using GRUB4DOS.
I followed diddy's Guide - Using grldr as no-emulation bootsector on CD/DVD, and this worked:
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o grldr.iso iso_root
... except my first and only entry in menu.lst was:
title pe21 chainloader \BOOTMGR
It failed to load, so I fumbled around and discovered that changing entry 'BOOTMGR' in the menu.list to lower case solved the problem. Fantastic!
That's all done for mkisofs. My oscdimg comes from WAIK for Vista SP1 and Server 2008. There is a bit of a guide here. But more can be found in the cmd-line help (oscdimg -help boot).
From the help:
b This option is used to specify the file that will be written in the
boot sector(s) of the disk. Example: -bc:\location\cdboot.bin
p This option specifies the value to use for the Platform ID in the
El Torito catalog. The default is 0x00 to represent the x86
platform. 0xEF represents an EFI-based system
e This option means not to use floppy disk emulation in the El Torito
t Specifies the El Torito load segment. If not specified, defaults to
This specifies a multi-boot image with the default image having an x86 boot
sector that launches the ETFSBOOT.com bootcode, and a secondary EFI boot
image that launches ESPBootFile when booted
This refers to multi-boot entries. However, it seems to work for a single-boot entry, and appears to be the only possibility of getting close to the second (alternative) mkisofs command in the Guide:
mkisofs -R -b grldr -no-emul-boot -boot-load-seg 0x1000 -o bootable.iso iso_root
oscdimg.exe -n -bootdata:1#bgrldr,e,t0x1000 iso_root grldr.iso
The 'oscdimg ... -bootdata:1# ... t0x1000 ...' looks very similar to 'mkisofs ... -boot-load-seg 0x1000 ...'.
Anyway, the above oscdimg command took me all the way to the grub cmd-line. No menu list! Why?
From the cmd-line - using the handy [TAB] feature with 'chainloader /', I saw that this time 'BOOTMGR' filename was in uppercase. I chainloaded it from the cmd-line and it booted. Great! 'MENU.LST' filename was also uppercase.
oscdimg.exe -n -d -bootdata:1#bgrldr,e,t0x1000 iso_root grldr.iso
... adding -d to allow lowercase filenames.
So this one brought up the menu list! Amazing!
From the grub cmd-line, 'chainloader /', [TAB], I see that this time 'bootmgr' filename is in lower case. So, after editing the menu.lst appropriately, I tried to boot/chainload bootmgr from the menu.
Black screen with white writing:
Windows failed to start........
Info: An error occured while attempting to read the boot configuration data.
Why not use tried-and-tested mkisofs? Why does a mountaineer climb a mountain?
Any ideas how to make this oscdimg go smoothly?