"Premature end of file - amd-ucode.img"

We had that issue as well with newer ISOs: start_image() returned 0x8000000000000001 (#2) · Issues · Release plan / Calamares · GitLab
Also, when using bees this can happen: GRUB: Extent not found after running bees · Issue #249 · Zygo/bees · GitHub

we can partly also blame grub and calamares for that on new ISOs. BTRFS support in grub is still partly a mess …

I think it could at least partly be caused by the use of zstd compression — or, indeed, any compression at all — on the initramfs when /boot is on a btrfs filesystem, given that btrfs is commonly already used with compression of its own.

The double compression — and especially so if two different algorithms are used — will create sparse files, which grub cannot handle.

I cannot replicate the issue — or at least, not at the moment — because I’m on an all-Intel system, and even though I do have /boot on btrfs, I am using cat en lieu of compression in /etc/mkinitcpio.conf. :point_down:

# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
#COMPRESSION="zstd"
COMPRESSION=cat
1 Like

ISOs with linux612 are fine, those with linux615 broken. So far only on ISOs using grub and calamares.

But that’s all of them, isn’t it? All of our ISOs use calamares for installing, and they all have grub as the default boot loader.

I don’t know too much about how calamares works — it’s written in Python, isn’t it? — but if it creates the initramfs with compression, then that could be the cause.

May I suggest reverting to ext4 as default file system ?

2 Likes

For that matter, one could also have a small ext4 partition for /boot while keeping btrfs for the rest, although I’m not sure how well that would work with timeshift, snapper and friends.

I myself do have a separate /boot partition, but it’s btrfs as well, and I don’t use snapshots. I use timeshift in rsync mode, with the backups stored on a physically separate medium — a spinning HDD.

That wont fix the matter that btrfs is broken and the ISO is not able to install it

No - but at least there won’t be a lot of users using defaults which may fails…

I recall musing whether making BTRFS the default might have been a little premature, generally; but, I think there’s a more obvious option;

1 Like

It’s not just the ISOs, apparently… :point_down:

1 Like

This could indicate that decompression is failing.

Test:

  • Generate initramdisk with 6.12 and boot with 6.15
  • Generate initramdisk with 6.15 and boot with 6.12
  • Generate initramdisk with cat (to avoid trying to compress twice)

Then you have a useful indication of whether the problem is with compression or decompression.

A simple workaround may be using cat (This may be the reason why some people (like me) don’t have problems whith booting 6.15) :footprints:
As can be seen, it’s really useful to have more than one kernel installed, and one of them LTS.

Please see also:

2 Likes