Has anyone been successful at booting WinPE 3.0, or any version, over HTTP using GPXE? If so, how was it done?
GPXE Boot WinPE 3.0 Over HTTP
Started by
a178235
, Nov 24 2009 07:25 PM
6 replies to this topic
#1
Posted 24 November 2009 - 07:25 PM
#2
Posted 24 November 2009 - 07:38 PM
Over HTTP or FTP/TFTP?Has anyone been successful at booting WinPE 3.0, or any version, over HTTP using GPXE? If so, how was it done?
Main discussions about the latter are here:
http://www.boot-land...hp?showforum=58
jaclaz
#3
Posted 24 November 2009 - 07:40 PM
Over HTTP only.
#4
Posted 13 December 2009 - 02:40 PM
I like to divide boot scenarios into three classes:
Assuming the question results in the "OS in RAM" class, you could accomplish it thusly:
Note that in the above scenario, you most likely need roughly twice the RAM of the HDD image. This is because the image is loaded into RAM once as the RAM disk for the INT 13h booting stage. Then the PE image within that HDD image (and which most likely makes up the bulk of the HDD image) is loaded from the RAM disk into RAM, meaning more RAM used.
Note that instead of an HDD image, you could use an .ISO as long as you can verify that the system operates with the "CD" removed, to verify it as an "OS in RAM" running environment.
Note that if you incorporate a driver such as FiraDisk or WinVBlock into the PE, you might be able to avoid the redundant RAM usage mentioned above. In this scenario, the PE should be prepared a little differently. The PE should require the underlying HDD to be available while booted versus loading a .WIM file to RAM.
I hope to incorporate HTTPDisk into WinVBlock some day, by the way. That would be "OS via network" class.
- Sha0
- OS in RAM
- OS via network
- File-based protocol (SMB, NFS, HTTP, etc.)
- Block device-based protocol (iSCSI, AoE, ImDisk's devio, HTTPDisk, etc.)
- OS on local media (
boringtraditional)
Assuming the question results in the "OS in RAM" class, you could accomplish it thusly:
- Prepare an HDD image which itself loads the PE into RAM
- Ensure that this PE can function properly without the underlying HDD (unmount any of the HDD partitions while running). This demonstrates a truly "OS in RAM" environment.
- DD the HDD image as a file on your web-server (IIS might not be the best choice; I think it has some size restrictions)
- Use gPXE to download the HDD image
gPXE>initrd http://webserver/winpe3.hdd
- Use gPXE to download either MEMDISK or GRUB4DOS
gPXE>kernel http://webserver/memdisk raw
ORgPXE>kernel http://webserver/grub.exe --config-file="map (rd) (hd0); map --hook; root (hd0,0); chainloader +1; boot"
- Boot MEMDISK or GRUB4DOS. The HDD image will boot and load the PE into RAM.
gPXE>boot
Note that in the above scenario, you most likely need roughly twice the RAM of the HDD image. This is because the image is loaded into RAM once as the RAM disk for the INT 13h booting stage. Then the PE image within that HDD image (and which most likely makes up the bulk of the HDD image) is loaded from the RAM disk into RAM, meaning more RAM used.
Note that instead of an HDD image, you could use an .ISO as long as you can verify that the system operates with the "CD" removed, to verify it as an "OS in RAM" running environment.
Note that if you incorporate a driver such as FiraDisk or WinVBlock into the PE, you might be able to avoid the redundant RAM usage mentioned above. In this scenario, the PE should be prepared a little differently. The PE should require the underlying HDD to be available while booted versus loading a .WIM file to RAM.
I hope to incorporate HTTPDisk into WinVBlock some day, by the way. That would be "OS via network" class.
- Sha0
#5
Posted 13 December 2009 - 03:06 PM
Very, VERY good explanation/classification!
Would I be allowed to go one step beyond?
Like in:
http://en.wikipedia..../KISS_principle
NON-simple things should be preferred ONLY if there are REASONS for them, and of course for the FUN of them.
Here is a nice related thread:
http://sanbarrow.com...opic.php?p=6888
jaclaz
Would I be allowed to go one step beyond?
Like in:
- OS on local media (
boringtraditional BUT almost foolproof and easier)
http://en.wikipedia..../KISS_principle
NON-simple things should be preferred ONLY if there are REASONS for them, and of course for the FUN of them.
Here is a nice related thread:
http://sanbarrow.com...opic.php?p=6888
jaclaz
#6
Posted 12 March 2010 - 11:13 AM
Thank You for this explanation.Assuming the question results in the "OS in RAM" class, you could accomplish it thusly:
- Prepare an HDD image which itself loads the PE into RAM
- Ensure that this PE can function properly without the underlying HDD (unmount any of the HDD partitions while running). This demonstrates a truly "OS in RAM" environment.
- DD the HDD image as a file on your web-server (IIS might not be the best choice; I think it has some size restrictions)
- Use gPXE to download the HDD image
gPXE>initrd http://webserver/winpe3.hdd- Use gPXE to download either MEMDISK or GRUB4DOS
gPXE>kernel http://webserver/memdisk rawORgPXE>kernel http://webserver/grub.exe --config-file="map (rd) (hd0); map --hook; root (hd0,0); chainloader +1; boot"- Boot MEMDISK or GRUB4DOS. The HDD image will boot and load the PE into RAM.
gPXE>boot
Note that in the above scenario, you most likely need roughly twice the RAM of the HDD image. This is because the image is loaded into RAM once as the RAM disk for the INT 13h booting stage. Then the PE image within that HDD image (and which most likely makes up the bulk of the HDD image) is loaded from the RAM disk into RAM, meaning more RAM used.
Note that instead of an HDD image, you could use an .ISO as long as you can verify that the system operates with the "CD" removed, to verify it as an "OS in RAM" running environment.
Note that if you incorporate a driver such as FiraDisk or WinVBlock into the PE, you might be able to avoid the redundant RAM usage mentioned above. In this scenario, the PE should be prepared a little differently. The PE should require the underlying HDD to be available while booted versus loading a .WIM file to RAM.
I hope to incorporate HTTPDisk into WinVBlock some day, by the way. That would be "OS via network" class.
- Sha0
I have played around with this scenario, however it is not working for me.
Iam using: gpxe from Sysprep 3.85 and grub.exe 0.4.4 from http://download.gna.org/grub4dos/
I have a Vista PE wim boot-image inside an .ISO file.
For my bootable usb stick the command is the following to boot up the image without problems:
title Deployment Center (RAM)
find --set-root /DC.iso
map --mem /DC.iso (hd32)
map --hook
root (hd32)
chainloader (hd32)
After converting it to the pxe server (using gpxe from Syslinux 3.85) the command in the pxelinux.cfg/default is as following:
LABEL -
MENU LABEL : Deployment Server (Test)
initrd http://172.100.100.1/IMAGES/DC.ISO
kernel grub.exe --config-file="map (rd) (hd0); map --hook; root (hd0,0); chainloader +1; boot"
This results in downloading the DC.iso fine but then just sitting in the command prompt of grub, without giving any error messages.
Btw. downloading the kernel via http:// is not possible here. After starting the boot menu entry in gpxe menu it just returns to menu, like nothing happens.
I played around with config-file parameters for grub, adapted those one from my usb stick. This resulted in trying to boot the image but then just restarting without giving any error message.
Can anybody help me?
#7
Posted 12 March 2010 - 03:00 PM
Im still working on it without the success im looking for.
For testing purposes I switched from gpxe to grldr as pxe boot manager.
I have created menu.1st/default config menu as following:
title Deployment Center
map --mem (pd)/BOOT/IMAGES/DC.ISO (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot
Well, its working like a charme, proofing me that the iso image is just fine for booting over pxe/lan. The problem again now is, that grub command map --mem is downloading the iso via tftp, which is taking 10 more times then http.
I could live with grldr as pxe boot manager, if anybody has an idea how to transfer the iso via http. But I would still prefer doing it via gpxe as pxe boot manager as Sha0 described in his example.
For testing purposes I switched from gpxe to grldr as pxe boot manager.
I have created menu.1st/default config menu as following:
title Deployment Center
map --mem (pd)/BOOT/IMAGES/DC.ISO (hd32)
map --hook
root (hd32)
chainloader (hd32)
boot
Well, its working like a charme, proofing me that the iso image is just fine for booting over pxe/lan. The problem again now is, that grub command map --mem is downloading the iso via tftp, which is taking 10 more times then http.
I could live with grldr as pxe boot manager, if anybody has an idea how to transfer the iso via http. But I would still prefer doing it via gpxe as pxe boot manager as Sha0 described in his example.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users