Add cachy os to grub on 100Mb Efi-partition

I have an older Dell workstation that I mainly use as a server, on which I have installed various operating systems. Since the first operating system installed was Windows 10, the EFI partition is only 100 MB in size. So far, the following systems can be booted via grub (from Tumbleweed):
Ubuntu server
Ubuntu desktop
Fedora Desktop
Opensuse Tumbleweed
Debian with Proxmox
I have now also installed Chachy OS and created a separate EFI partition for it with a size of 1 GB (as recommended). Unfortunately, the grub of Cachy OS, like all other installed distros, does not recognize Tumbleweed. I then tried to update grub with the Yast-bootloader-program, despite the 100 MB efi partition on which Tumbleweed’s grub is located already being 2/3 full. This worked without any errors, and there is an entry for cachy os in the grub menu, but it cannot be booted. Error message:
“error: …/…/grub-core/fs/btrfs.c:2159:file ‘/boot/vmlinuz-linux-cachyos’ not found.”
My question is, is this due to insufficient storage space on the Efi partition (the yast bootloader program did not report any errors), or is there another cause? In the former case, I would simply copy the contents of the old Efi-partition to the new (1GB) partition!

I might add that chachy os boots fine from it’s own (1GB) efi-partition!

On one of my on PCs with only TW configured with grub2-x86_64-efi using the ESP, and no encryption or secure boot, I count 506,864 bytes consumed by the 3 files in BOOT and 1 in opensusetw on /boot/efi/EFI/, or 495k, about 0.15% of the total 320M space on my ESP. If your Cachy OS is also sticking to a minimal set of needs, it should need about the same increase above what you have there now, or about 0.5% of your total 100M ESP space.

Not found to me suggests the filesystem on which vmlinuz-linuz-cachyos lives is inaccessible to your TW Grub configuration, not that there is any lack of filesystem space issue. I would look for either a required insmod absence, or the filesystem’s location not being correctly specified.

Cachy not recognizing TW is probably simple failure to support read of the BTRFS filesystem where TW lives. Is Cachy on EXT4 or some other filesystem besides BTRFS?

You could build your own Cachy stanza to boot from TW Grub in TW’s /etc/grub.d/40_custom as a workaround until an optimal solution to neither recognizing the other is found. Rather than building from scratch, copy one from Cachy’s grub.cfg, possibly editing a bit depending on what it contains.

ESP size is irrelevant. Show openSUSE generated grub.cfg and your other’s OS native grub.cfg. Also, boot into this OS and show the output of

findmnt --real -u

The grub.cfg will likely be too big for pasting here, upload to https://paste.opensuse.org/

I uploaded the "grub.cfg"s to:

Created by: Micha
Title: grub.cfg_tw

and

Created by: Micha
Title: grub.cfg_cachy

Output “findmnt --real -u”:

❯ findmnt --real -u
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sdc8[/@] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=256,subvol=/@
├─/srv /dev/sdc8[/@srv] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=259,subvol=/@srv
├─/var/tmp /dev/sdc8[/@tmp] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=261,subvol=/@tmp
├─/home /dev/sdc8[/@home] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=257,subvol=/@home
├─/var/cache /dev/sdc8[/@cache] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=260,subvol=/@cache
├─/root /dev/sdc8[/@root] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=258,subvol=/@root
├─/boot/efi /dev/sdc9 vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro
└─/var/log /dev/sdc8[/@log] btrfs rw,noatime,compress=zstd:3,ssd,space_cache=v2,commit=120,subvolid=262,subvol=/@log

Cachy is on btrfs!

There are no uploads to openSUSE paste. You need to remove the checkmark in the “private” box and post the URLs to the pastes here.

grub.cfg_cachy

grub.cfg_tw

Cachy:

        linux   /@/boot/vmlinuz-linux-cachyos root=UUID=d9772455-fbbd-4a00-a91d-d5d7a4393174 rw rootflags=subvol=@  nowatchdog nvme_load=YES zswap.enabled=0 splash loglevel=3

openSUSE:

        linux /boot/vmlinuz-linux-cachyos root=UUID=d9772455-fbbd-4a00-a91d-d5d7a4393174 rw rootflags=subvol=@ nowatchdog nvme_load=YES zswap.enabled=0 splash loglevel=3

This is a bug in the openSUSE os-prober handling of btrfs. You should open bug report.

Please always use preformatted text when posting computer output. Your post is near to unreadable (fortunately, this information was not important this time).

Yes, thanks, I added the “/@” to every entry “/boot/vmlinuz…” of cachy os and now it is working!

I now opened a (my first) bug report. Hopefully my explanation was not to short!

https://bugzilla.opensuse.org/show_bug.cgi?id=1250686

Oh, sorry, I forgot to post the link, and thanks to everyone for the help!

You don’t need that much disk space for the ESP (EFI System Partition). Here is mine with only openSUSE Slowroll on it:

[sh @ meteor] ~ 5 % df -h /boot/efi
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p1  511M  5.8M  506M   2% /boot/efi

Expect similar disk space requirements for each additional Linux system. As you see, even the 512 MB that I allocated for the ESP was much too generous.

1 Like