[Bug 1892290] Re: PXE load Focal initrd.img-5.4.0-42-generic always timeout
xinliang
1892290 at bugs.launchpad.net
Tue Sep 22 07:50:08 UTC 2020
Similar bug: https://bugzilla.redhat.com/show_bug.cgi?id=1869987
I've tried boot by cmdline, looks the same issue.
grub> linux vmlinuz-5.4.0-47-generic
grub> echo $?
0
grub> initrd initrd.img-5.4.0-47-generic
error: timeout reading `initrd.img-5.4.0-47-generic'.
grub> echo $?
28
It looks like it is caused by Commit 781b3e5efc3 (tftp: Do not use priority queue) .
And bellow upstream commit can fix it.
commit a6838bbc6726ad624bd2b94991f690b8e9d23c69
Author: Javier Martinez Canillas <javierm at redhat.com>
Date: Thu Sep 10 17:17:57 2020 +0200
tftp: Roll-over block counter to prevent data packets timeouts
Commit 781b3e5efc3 (tftp: Do not use priority queue) caused a regression
when fetching files over TFTP whose size is bigger than 65535 * block size.
grub> linux /images/pxeboot/vmlinuz
grub> echo $?
0
grub> initrd /images/pxeboot/initrd.img
error: timeout reading '/images/pxeboot/initrd.img'.
grub> echo $?
28
It is caused by the block number counter being a 16-bit field, which leads
to a maximum file size of ((1 << 16) - 1) * block size. Because GRUB sets
the block size to 1024 octets (by using the TFTP Blocksize Option from RFC
2348 [0]), the maximum file size that can be transferred is 67107840 bytes.
The TFTP PROTOCOL (REVISION 2) RFC 1350 [1] does not mention what a client
should do when a file size is bigger than the maximum, but most TFTP hosts
support the block number counter to be rolled over. That is, acking a data
packet with a block number of 0 is taken as if the 65356th block was acked.
It was working before because the block counter roll-over was happening due
an overflow. But that got fixed by the mentioned commit, which led to the
regression when attempting to fetch files larger than the maximum size.
To allow TFTP file transfers of unlimited size again, re-introduce a block
counter roll-over so the data packets are acked preventing the timeouts.
[0]: https://tools.ietf.org/html/rfc2348
[1]: https://tools.ietf.org/html/rfc1350
Fixes: 781b3e5efc3 (tftp: Do not use priority queue)
Suggested-by: Peter Jones <pjones at redhat.com>
Signed-off-by: Javier Martinez Canillas <javierm at redhat.com>
Reviewed-by: Daniel Kiper <daniel.kiper at oracle.com>
** Bug watch added: Red Hat Bugzilla #1869987
https://bugzilla.redhat.com/show_bug.cgi?id=1869987
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/1892290
Title:
PXE load Focal initrd.img-5.4.0-42-generic always timeout
Status in grub2 package in Ubuntu:
Confirmed
Status in initramfs-tools package in Ubuntu:
Confirmed
Bug description:
PXE booting Focal initrd always gets a timeout, but PXE booting Bionic initrd works
error: timeout reading `initrd.img-5.4.0-42-generic'.
grub.cfg
--------
menuentry "boot_iscsi" {
linux vmlinuz-5.4.0-42-generic ...
initrd initrd.img-5.4.0-42-generic
}
grub, kernel and initrd get from Focal boot dir
$ cp /usr/lib/grub/arm64-efi-signed/grubnetaa64.efi.signed ~/tftproot/grubaa64.efi
$ cp /boot/vmlinuz-5.4.0-42-generic ~/tftproot/
$ cp /boot/initrd.img-5.4.0-42-generic ~/tftproot/
hardware
--------
Real aarch64 server or qemu-system-aarch64 machine
software
--------
$ apt search grub-efi-arm64
Sorting... Done
Full Text Search... Done
grub-efi-arm64/focal-updates,focal-security,now 2.04-1ubuntu26.2 arm64 [installed]
GRand Unified Bootloader, version 2 (ARM64 UEFI version)
grub-efi-arm64-bin/focal-updates,focal-security,now 2.04-1ubuntu26.2 arm64 [installed,automatic]
GRand Unified Bootloader, version 2 (ARM64 UEFI modules)
grub-efi-arm64-dbg/focal-updates,focal-security 2.04-1ubuntu26.2 arm64
GRand Unified Bootloader, version 2 (ARM64 UEFI debug files)
grub-efi-arm64-signed/focal-updates,focal-security,now 1.142.4+2.04-1ubuntu26.2 arm64 [installed]
GRand Unified Bootloader, version 2 (EFI-ARM64 version, signed)
grub-efi-arm64-signed-template/focal-updates,focal-security 2.04-1ubuntu26.2 arm64
GRand Unified Bootloader, version 2 (ARM64 UEFI signing template)
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04 LTS
Release: 20.04
Codename: focal
$ uname -a
Linux j12-d05-07 5.4.0-42-generic #1 SMP Tue Jul 7 02:48:00 GMT 2020 aarch64 aarch64 aarch64 GNU/Linux
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1892290/+subscriptions
More information about the foundations-bugs
mailing list