Hi everyone,
I’m having trouble booting ChromeOS using the Brunch framework on my Fedora 40. I’ve compiled Brunch and created a GRUB entry based on the official instructions, but when I try to boot via grub, I get the following errors:
error: …/…/grub-core/commands/search.c:315 no such device: /chromeos.img.
error: …/…/grub-core/fs/fshelp.c:257:file : /chromeos.img. not found
error: …/…/grub-core/net/net.c:1557:disk : loop, 7. not found
error: …/…/grub-core/loader/i386/efi/linux.c:258: you need to load kernel first
I have used brunch and booted without problems on ubuntu. My assumption is that the problem lies with how fedora and ubuntu handle grub configuration.
Here’s my current setup:
Distribution: Fedora 40
Boot Mode: UEFI (Secure Boot disabled)
ChromeOS Image: Located on /dev/nvme0n1p5 partition (NTFS)
Here’s the GRUB entry I’m using (identical to the entry that boots fine on Ubuntu):
[Grub Entry]
menuentry "ChromeOS" --class "brunch" {
rmmod tpm
img_path=/chromeos.img
img_uuid=b2ef7075-15d4-467c-bb19-0873017066ce
search --no-floppy --set=root --file \$img_path
loopback loop \$img_path
source (loop,12)/efi/boot/settings.cfg
if [ -z \$verbose ] -o [ \$verbose -eq 0 ]; then
linux (loop,7)\$kernel boot=local noresume noswap loglevel=7 options=\$options chromeos_bootsplash=\$chromeos_bootsplash \$cmdline_params \
cros_secure cros_debug img_uuid=\$img_uuid img_path=\$img_path \
console= vt.global_cursor_default=0 brunch_bootsplash=\$brunch_bootsplash quiet
else
linux (loop,7)\$kernel boot=local noresume noswap loglevel=7 options=\$options chromeos_bootsplash=\$chromeos_bootsplash \$cmdline_params \
cros_secure cros_debug img_uuid=\$img_uuid img_path=\$img_path
fi
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}
menuentry "Brunch settings" --class "brunch-settings" {
rmmod tpm
img_path=/chromeos.img
img_uuid=b2ef7075-15d4-467c-bb19-0873017066ce
search --no-floppy --set=root --file \$img_path
loopback loop \$img_path
source (loop,12)/efi/boot/settings.cfg
linux (loop,7)/kernel boot=local noresume noswap loglevel=7 options= chromeos_bootsplash= edit_brunch_config=1 \
cros_secure cros_debug img_uuid=\$img_uuid img_path=\$img_path
initrd (loop,7)/lib/firmware/amd-ucode.img (loop,7)/lib/firmware/intel-ucode.img (loop,7)/initramfs.img
}
Output of blkid on the relevant partition:
/dev/nvme0n1p5: LABEL=“CrOS” BLOCK_SIZE=“512” UUID=“53EE73A548FA975A” TYPE=“ntfs” PARTLABEL=“Basic data partition” PARTUUID=“b2ef7075-15d4-467c-bb19-0873017066ce”
Things I’ve Tried:
Verified the chromeos.img file exists at the correct location (/dev/nvme0n1p5/chromeos.img).
Double-checked that the img_uuid in my GRUB entry matches the PARTUUID from blkid.
Re-generated the GRUB configuration after making changes.
Checked for loopback device creation using losetup -a.
I’d really appreciate any help or suggestions on how to get Brunch working on my Fedora system. Thanks in advance!