Grub4dos for GPT disk or USB-sticks ?
#1
Posted 26 August 2011 - 01:16 PM
I have been away for quite a while and could not follow latest research so this may be a stupid question ...
I am looking for a bootmanager/loader like grub4dos that can handle hardisks or USB-devices that use GPT partitioning.
Goal: create a USB-device with maybe 10 partitions and create a bootmenu to switch between them.
Plan B: use a regular MBR style USB-disk and then use a small diskimage of about 300 MBtotal size with maybe GPT - 3 partitions.
Then I would need to find a way to load this image into RAM and chainload it from Grub4Dos
Ideas or links welcome
thanks Ulli
#2
Posted 26 August 2011 - 02:49 PM
Hi
I have been away for quite a while and could not follow latest research so this may be a stupid question ...
I am looking for a bootmanager/loader like grub4dos that can handle hardisks or USB-devices that use GPT partitioning.
Goal: create a USB-device with maybe 10 partitions and create a bootmenu to switch between them.
Plan B: use a regular MBR style USB-disk and then use a small diskimage of about 300 MBtotal size with maybe GPT - 3 partitions.
Then I would need to find a way to load this image into RAM and chainload it from Grub4Dos
Ideas or links welcome
thanks Ulli
grub2 supports GPT.
You can do a hybrid MBR/GPT setup, most probably.
Read:
http://reboot.pro/11600/page__st__32
http://reboot.pro/15117/
http://reboot.pro/15158/
WHAT is the problem of having 10 partitions with "normal" MBR disks?
Besides that you can make logical partitions bootable allright, you can use also a "rotating" MBR Partition Table:
http://reboot.pro/7138/
Wonko
#3
Posted 30 August 2011 - 07:41 PM
thanks for your links
the OS that made me try GPT boot-sticks was ESXi 5 - now I found a way to let it run directly from a CD or from a fat-partition on a MBR-partitioned USB-stick
so all this GPT-stuff is no longer necessary
thanks anyways
Ulli
#4
Posted 06 September 2011 - 12:17 PM
#5
Posted 06 September 2011 - 01:04 PM
No, the developers will need to add the feature to the app, and this is not necessarily a soon-to-be-implemented or planned-for-the-immediate future feature/addition.Only other bootloader that I've found can do direct mapping and possibly deal with GPT partitions is Burg4DOS. Is there any way grub4dos can provide the same functionality?
What is the problem with burg4dos?
Wonko
#6
Posted 06 September 2011 - 01:16 PM
No, the developers will need to add the feature to the app, and this is not necessarily a soon-to-be-implemented or planned-for-the-immediate future feature/addition.
I use grub4dos to chainload into my floppy image then back out again. Of course it makes more sense to request that grub4dos could have this extra ability to map the floppy image on a GPT partition but it looks like my only choice is burg4dos. Burg4dos doesn't have a DOS binary so I would need to include two bootloaders to accomplish what I want. I'll need to evaluate how much extra space burg4dos needs and if it's excessive will need to give up on booting a floppy image instead referring affected users to boot USB sticks instead.
#7
Posted 06 September 2011 - 01:36 PM
Maybe you could combine WEE into the mix, as it is smaller than grub4dos:
http://reboot.pro/11751/
(but of course it depends on your booting sequence - which is not clear to me)
Just to disambiguate, are we talking of burg4dos:
http://reboot.pro/13282/page__st__16
http://sourceforge.n...jects/burg4dos/
or of burg4dos? :
http://reboot.pro/12474/page__st__6
http://code.google.c.../downloads/list
Wonko
#8
Posted 07 September 2011 - 03:05 AM
Maybe you could combine WEE into the mix, as it is smaller than grub4dos:
http://reboot.pro/11751/
(but of course it depends on your booting sequence - which is not clear to me)
Just to disambiguate, are we talking of burg4dos:
http://reboot.pro/13282/page__st__16
http://sourceforge.n...jects/burg4dos/
or of burg4dos? :
http://reboot.pro/12474/page__st__6
http://code.google.c.../downloads/list
Wonko
I am booting a floppy disk image from Linux (grub2), Win7 (bootmgr) or XP (ntldr). grub4dos does that very well unless the image is hosted on a GPT partition.. then it can't find it in which case I have to either find another bootloader to do it or ask my users to boot from a USB stick with the floppy image data on it.
Was interested in wee that you linked but the doco says it can't be used to boot via ntldr's boot.ini, so no go.
Yes.. burg4dos is what I was referring to. It's the only bootloader I've found besides grub4dos that can do direct mapping of non-contiguous floppy images. I need that since I load/save configuration data to the floppy image. burg4dos seems to support GPT too so it provides a lot of functionality. If it had a DOS binary for my second chainloading then I could completely replace grub4dos with burg4dos instead. Would be great if the author could compile a new version. I believe it's based off grub2 which is now at version 1.99.
#9
Posted 07 September 2011 - 07:01 AM
Perfect , the idea was to disambiguate: I listed TWO links BOTH leading to a project called burg4dos. WHICH of the two (or a third one) are we talking about?Yes.. burg4dos is what I was referring to. It's the only bootloader I've found besides grub4dos that can do direct mapping of non-contiguous floppy images.
I still do not see an explained boot sequence in the above. Maybe I am a bit tough.I am booting a floppy disk image from Linux (grub2), Win7 (bootmgr) or XP (ntldr). grub4dos does that very well unless the image is hosted on a GPT partition.
A boot sequence as I see it something like:
The above is an example and NOT an attempt to describe what you posted, which I do not understand.BIOS->Internal Hard disk MBR->PBR ofActive partiton->grub4dos->Floppy image->NTLDR
The grub4dos uses this menu .lst entry:title XP find --set-root /ntldr chainloader ntldr
WHAT device is booted?
WHAT is booted on it?
To WHAT is passed control?
etc. etc.
In order to (hopefully) give you a valid suggestion/idea, I need to understand in DETAIL WHAT you want to do and HOW you are currently doing it.
Wonko
#10
Posted 08 September 2011 - 04:10 AM
1. Boot the disk image using direct mapping, since I need to save some info to the disk image. This will be done via boot.ini (ntldr), BCD (bootmgr) or Linux grub2. Problem I've now got is this will not work with GPT partitions. Only burg4dos could do the direct mapping + boot the disk image from GPT. The other workaround for the GPT issue is to just get the user to boot from a USB stick rather than a disk image hosted off a partition.
:: Load disk image as floppy disk (fd0) :: This file must be in root directory!! # debug 0 is quiet operation debug 0 timeout 0 # Set location of image file set IMG=/eGPU/eGPU-Setup-10f.img # Set root to be found location of image file # The image can be found on *any* partition find --set-root %IMG% # Map image file as writable floppy drive (fd0) map %IMG% (fd0) map --hook root (fd0) chainloader (fd0)+1 rootnoverify
2. Do my pci-e fixups.
3. Chainload back out to the required OS using a method below. The first four work for BIOS boot. The last required for UEFI boot.
MBR
############################################################################# # menu.mbr - boot from Master Boot Record (MBR) # # Use 'grub4dos.Prompt' menu, type 'ls (hd[tab] to see drive mapping # # DRV var passed by grub4dos.bat: A=USB-FLOPPY/DISKIMAGE(fd0). C=USB-HDD(hd0) # ############################################################################# # Quiet operation debug 0\ntimeout 0 # Appears need the following line for highest compatibility across machines # If still see a A20-related chainloading halt then edit %DRV%:\fdconfig.sys # and change the himemx.exe /METHOD parameter as described in config.sys map --a20-keep-on=0 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # DO NOT EDIT THIS SECTION. DRV=boot drv. If it's C then swap real hdd(hd1) # as hd0 and real second hdd(hd2 - if it exists) as hdd1. #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # Cater for USB-HDD boot/clobbered USB controller if "%DRV%"=="C" map (hd1) (hd0) if "%DRV%"=="C" map (hd2) (hd1) if "%DRV%"=="C" map --rehook #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # User edittable section below #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #Boot MBR of first hard disk chainloader (hd0)+1 #OR boot MBR of second hard disk #chainloader (hd1)+1
XP
############################################################################# # menu.xp - boot using XP /ntldr # # Use 'grub4dos.Prompt' menu, type 'ls (hd[tab] to see drive mapping # # DRV var passed by grub4dos.bat: A=USB-FLOPPY/DISKIMAGE(fd0). C=USB-HDD(hd0) # ############################################################################# # Quiet operation debug 0\ntimeout 0 # Appears need the following line for highest compatibility across machines # If still see a A20-related chainloading halt then edit %DRV%:\fdconfig.sys # and change the himemx.exe /METHOD parameter as described in config.sys map --a20-keep-on=0 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # DO NOT EDIT THIS SECTION. DRV=boot drv. If it's C then swap real hdd(hd1) as # hd0 and set harddrive count=1 so the find doesn't use USB drive (clob sup) #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # Cater for USB-HDD boot/clobbered USB controller if "%DRV%"=="C" map (hd1) (hd0) if "%DRV%"=="C" map --harddrives=1 if "%DRV%"=="C" map --rehook #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # User edittable section below #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #Use find to set root to location of XP's /ntldr then chainload it. find --set-root --ignore-floppies --ignore-cd /ntldr chainloader /ntldr #OR chainload ntldr off a specific partition, eg:hd0,1 #chainloader (hd0,1)/ntldr
WIN7/VISTA
############################################################################# # menu.win - boot using VISTA/W7 /bootmgr # # Use 'grub4dos.Prompt' menu, type 'ls (hd[tab] to see drive mapping # # DRV var passed by grub4dos.bat: A=USB-FLOPPY/DISKIMAGE(fd0). C=USB-HDD(hd0) # ############################################################################# # Quiet operation debug 0\ntimeout 0 # Appears need the following line for highest compatibility across machines # If still see a A20-related chainloading halt then edit %DRV%:\fdconfig.sys # and change the himemx.exe /METHOD parameter as described in config.sys map --a20-keep-on=0 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # DO NOT EDIT THIS SECTION. DRV=boot drv. If it's C then swap real hdd(hd1) as # hd0 and set harddrive count=1 so the find doesn't use USB drive (clob sup) #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # Cater for USB-HDD boot/clobbered USB controller if "%DRV%"=="C" map (hd1) (hd0) if "%DRV%"=="C" map --harddrives=1 if "%DRV%"=="C" map --rehook #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # User edittable section below #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #Use find to set root to location of Win7/Vista's /bootmgr then chainload it. find --set-root --ignore-floppies --ignore-cd /bootmgr chainloader /bootmgr #OR chainload bootmgr off a specific partition, eg:hd0,1 #chainloader (hd0,1)/bootmgr
LINUX
############################################################################# # menu.lin - boot using Linux /boot/grub/core.img (grub/grub2) # # Use 'grub4dos.Prompt' menu, type 'ls (hd[tab] to see drive mapping # # DRV var passed by grub4dos.bat: A=USB-FLOPPY/DISKIMAGE(fd0). C=USB-HDD(hd0) # ############################################################################# # Quiet operation debug 0\ntimeout 0 # Appears need the following line for highest compatibility across machines # If still see a A20-related chainloading halt then edit %DRV%:\fdconfig.sys # and change the himemx.exe /METHOD parameter as described in config.sys map --a20-keep-on=0 #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # DO NOT EDIT THIS SECTION. DRV=boot drv. If it's C then swap real hdd(hd1) as # hd0 and set harddrive count=1 so the find doesn't use USB drive (clob sup) #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # Cater for USB-HDD boot/clobbered USB controller if "%DRV%"=="C" map (hd1) (hd0) if "%DRV%"=="C" map --harddrives=1 if "%DRV%"=="C" map --rehook #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: # User edittable section below #:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: #Use find to set root to location of /boot/grub/core.img file then boot it find --set-root --ignore-floppies --ignore-cd /boot/grub/core.img kernel /boot/grub/core.imgUEFI
############################################################################# # menu.uef - boot UEFI x64 Win7 by chainloading via Tianocore's UEFI-DUET # # See https://gitorious.org/tianocore_uefi_duet_builds/pages/Windows_x64_BIOS_to_UEFI # for more details. # # # # NOTE: due to requiring a floppy image with the UEFI framework, a USB # # install with a clobbered USB controller will fail to boot. # ############################################################################# # Quiet operation debug 0\ntimeout 0 # Appears need the following line for highest compatibility across machines # If still see a A20-related chainloading halt then edit %DRV%:\fdconfig.sys # and change the himemx.exe /METHOD parameter as described in config.sys map --a20-keep-on=0 # Set location of image file - this must be a contiguous file or else # chainloading will fail as can't map a non-contiguous file for read/write. set IMG=/uefi/Tiano_UDK_DUET_X64.img # Set root to be found location of image file find --set-root %IMG% # Map image file as writable floppy drive (fd0) map %IMG% (fd0) map --hook rootnoverify (fd0) map --floppies=1 chainloader (fd0)+1
Edited by nando4, 08 September 2011 - 04:12 AM.
#11
Posted 08 September 2011 - 09:11 AM
Only burg4dos could do ...
I'll try again, for the third (and last) time.
Is the burg4dos you are using the whatever you can get from here:
http://sourceforge.n...jects/burg4dos/
or is it the whatever you can get from here:
http://code.google.c.../downloads/list
Or more generally WHERE can I find the EXACT version of burg4dos you are using?
Wonko
#12
Posted 08 September 2011 - 10:26 AM
Or more generally WHERE can I find the EXACT version of burg4dos you are using?
This post says burg has direct floppy image mapping abilities like grub4dos, this post says This can be copied to help customize your C:\burg\burg.cfg file. They show how to boot various flavors of Linux from both MBR and GPT partitions. So the combination of features means it could be a candidate to try to massage to get my image booted off a GPT partition but I'm not keen on the package size to do it. Hence I've not tried to integrate my package with it.
I'm awaiting word to see if the syslinux folks can be enhanced to provide direct mapping functionality.
#13
Posted 08 September 2011 - 11:28 AM
Wonko
#14
Posted 09 September 2011 - 02:30 AM
0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users