Problems making grub4dos DVD with mkisofs
#1
Posted 19 October 2009 - 03:32 AM
If I build the ISO with:
cdimage.exe -lDVD -t01/01/2006,12:00:00 -bI:\tech\AIODVD\BOOT\grldr -h -n -o -m I:\tech\AIODVD I:\tech\AIODVD.iso
then when I test it in VMware, Grub4DOS loads but can't find the menu.lst that's in the root.
So I followed the advice here:
http://diddy.boot-la.../install_cd.htm
and tried:
mkisofs -R -b grldr -no-emul-boot -boot-load-size 4 -o AIODVD.iso AIODVD
which does produce an ISO that boots Grub4DOS and loads my menu.lst. However, it also produces a lot of messages at the start of the build such as:
Using SYSTEM000 for ./rr_moved/SYSTEM (SYSTEM)
Using GDIPLUS001 for ./rr_moved/gdiplus (GDIPLUS)
Using WINDOWS002 for ./rr_moved/WINDOWS (WINDOWS)
Using GDIPLUS002 for ./rr_moved/GDIPLUS (GDIPLUS)
Using RETAIL000 for ./rr_moved/RETAIL (RETAIL)
Using RETAIL001 for ./rr_moved/RETAIL (RETAIL)
and the ISO has a RR_MOVED folder with lots of sub-folders, which is just wrong! After digging around, I worked out that adding -iso-level 4 sorts that one out but as I don't really know my way around mkisofs very well, I just wanted to ask if there's anything else that I need to add.
#2
Posted 19 October 2009 - 07:13 AM
and the ISO has a RR_MOVED folder with lots of sub-folders, which is just wrong! After digging around, I worked out that adding -iso-level 4 sorts that one out but as I don't really know my way around mkisofs very well, I just wanted to ask if there's anything else that I need to add.
Yes, mkisofs is a complex app, and making a "PE enabled" CD/DVD is a bit complex in itself.
The command line you used, even with the (needed) -iso-level 4 addition may still be missing some parts.
See here:
http://www.boot-land...?showtopic=5967
If it's a multiboot thing with duplicates files, you may need a version of mkisofs with the -duplicates-once switch, this one should have it:
http://www.wolfgang-...0-win32-bin.zip
jaclaz
#3
Posted 19 October 2009 - 12:55 PM
Thanks for the link to the thread, that should help me work out which switches I need.
Thanks for pointing out I need a version of mkisofs as well. I saw that -duplicates-once switch in a PE project script but didn't know the standard mkisofs didn't support it, so would have wasted some time trying to figure out why that wasn't working!
#4
Posted 20 October 2009 - 12:33 AM
Rather annoyingly, mkisofs only seems to allow you to use a file in the root of the source folder for the -b switch, whereas cdimage allows you to specify a path to anywhere, so I ended up using that more whilst I was experimenting with different boot loaders. It also seems to be somewhat faster as well.
I was getting a "Please insert the disk labeled Windows XP Home Edition Service Pack 3 CD into Drive A:" error when trying to run the XP Home install. It turned out that the file win51ic.SP3 needs to be uppercase, even though it looks exactly like that on the original CD.
When I made the cdshell ISO, it worked because I wasn't using the -d switch, which means that all filenames were forced into uppercase. However, when making the GRUB ISO, I had to use that switch otherwise menu.lst was changed to MENU.LST and GRUB couldn't find it.
The solution was to manually change WIN51IC.SP3 to uppercase and then I could use the -d switch to prevent menu.lst being changed. The command that seems to be working is:
cdimage.exe -lDVD -bI:\tech\AIODVD\BOOT\grldr -e -h -d -n -o -m I:\tech\AIODVD I:\tech\AIODVD.iso
cdimage does have some joliet switches -j1 and -j2, but they can't be used at the same time as -d or -n (allows long filenames). Hopefully not using them won't cause any problems.
Now that I've found the problem, the following seems to work for mkisofs:
mkisofs -v -R -l -iso-level 4 -J -joliet-long -duplicates-once -b grldr -no-emul-boot -boot-load-size 4 -o AIODVD.iso AIODVD
By the way jaclaz, the version of mkisofs you linked to doesn't support the -duplicates-once switch, but the version I already had (mkisofs 2.01-bootcd.ru (i686-pc-mingw32) does.
#5
Posted 20 October 2009 - 08:38 AM
This one works:
http://smithii.com/f...otcd.ru-w32.zip
A quick workaround for grub4dos is to edit the "embedded menu.lst" to point to MENU.LST instead of menu.lst, some reference:
http://diddy.boot-la...es/embedded.htm
http://www.boot-land...?...=8634&st=13
http://www.boot-land...?...c=6775&st=5
http://www.boot-land...?...=7231&st=25
or use the RockRidge extension (-r):
http://www.boot-land...?showtopic=6803
More loosely, there are reasons why I use these commands on a PE CD:
http://www.boot-land...?...c=5967&st=2
jaclaz
#6
Posted 28 October 2009 - 01:00 AM
mkisofs wants you to use a unix style path for your boot loader. ie /ISOLINUX/isolinux.bin or /GRUB/grldr.bin or /BOOT/whatever.bin.mkisofs only seems to allow you to use a file in the root of the source folder for the -b switch
Cheers
#7
Posted 28 October 2009 - 09:37 PM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users