Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

An useful thing with UEFI PXE booting is that

a) recent versions support HTTPS paths for bootfiles

b) iPXE.efi creates virtual ramdisk to which it can download files and execute them in UEFI environment - this can be UEFI shell or other tools that can run under UEFI. Unfortunately this ramdisk isn't available once UEFI Boot Services are stopped (i.e. past bootloader stage).



For b) I don't see anything in the ipxe documentation about a ramdisk? All the booting examples I've seen are using a kernel and initrd or modules etc. This is inconvenient if you just want to support booting from released disk images, because you've got to extract the files from the isos and there's no standard.

Worse, if the setup expected to mount the image once the kernel booted, that's not simple either.


Because the ramdisk provided by ipxe.efi can't be mounted by kernel, as it disappears once ExitBootServices is called early in kernel boot code.

However, booting linux using ipxe.efi involves downloading to the temporary ramdisk the kernel and initrd image(s), then booting it as normal uefi executable passing initrd image(s) as parameters. The UEFI "wrapper" used by kernel uses UEFI calls to copy contents of initrd into kernel-accessible memory before early boot code removes the temporary ramdisk.

But so long as you do not hit ExitBootServices(), ipxe.efi installs a simple filesystem driver that stores everything in memory and mounts an instance of it as "current directory" for all actions in your boot script.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: