[ipxe-devel] initrd corruption since commit ef038491858cb51f8aa17b1f6e50444d2e627413
Michael Brown
mcb30 at ipxe.org
Sat Apr 26 00:07:07 UTC 2025
On 25/04/2025 22:12, Sven Dreyer via ipxe-devel wrote:
> Now it doesn't boot because the initrd seems corrupted:
> Initramfs unpacking failed: invalid magic at start of compressed archive
>
> Comparable problems apply to wimboot 2.8.0 trying to boot a Windows PE
> 10.0-26100 x86_64:
> Unexpected output length 0x0 (expected 0x8000)
> Could not patch WIM boot.wim
>
> Setup is:
> - x86_64 on BIOS (not UEFI)
> - PXE boot configured
> - Integrated PXE loads ipxe.pxe (self compiled from git master)
> - iPXE loads script
> - script for Debian nfsroot loads both initrd and kernel via nfs:// uri
> and boots kernel with append parameters
> - script for Windows PE loads wimboot 2.8.0 and further windows files
> over HTTP
>
> What I noticed is:
> - The problem occurs with ipxe.pxe, undionly.kpxe and undionly.kkpxe
> - When switching to UEFI (and using ipxe.efi), the problem does NOT occur
> - A git bisect reveals that ef038491858cb51f8aa17b1f6e50444d2e627413 is
> the first bad commit.
> - Before commit ef038491858cb51f8aa17b1f6e50444d2e627413, everything
> works for me.
>
> Is there anything I can do to track this problem down?
I'm unable to reproduce your problem, sorry. But since you have a
bisection result: try starting from commit b65f67d44 (i.e. the previous
commit, which you say works for you), and add in one change at a time
from commit ef0384918. For example, start by adding the first changed
line in bzimage.c:
/* Calculate lowest usable address */
- bottom = userptr_add ( bzimg->pm_kernel, bzimg->pm_sz );
+ bottom = ( bzimg->pm_kernel + bzimg->pm_sz );
Test after each changed line, and see which changed line introduces your
issue.
Thanks,
Michael
More information about the ipxe-devel
mailing list