Fixing grub_regions_claim not found on an iBook G4 with Gentoo
Getting an old PowerPC Mac to boot Linux is already a small victory. Getting it to boot reliably after a GRUB breakage is another matter entirely.
On my iBook G4 (PowerBook6,5) running Gentoo, GRUB suddenly failed with this error:
Loading Linux 6.1.12-gentoo ...
error: symbol 'grub_regions_claim' not found.
At first glance, this looks like a kernel problem. It is not. The kernel is never reached. The real issue is a GRUB version mismatch between the files on the Apple_Bootstrap partition and the GRUB modules on the Linux root filesystem.
This post documents the full recovery process: creating a Gentoo live USB for PowerPC, booting it on the iBook G4, chrooting into the installed system, and reinstalling GRUB correctly.
The symptom
The machine still showed the normal GRUB menu. Editing the boot entry looked possible, and the kernel line was visible. But immediately after selecting the kernel, GRUB aborted with:
error: symbol 'grub_regions_claim' not found.
That detail matters. If GRUB can show the menu but fails when trying to load the kernel, the failure is usually inside GRUB itself rather than in Linux.
What causes this
On NewWorld PowerPC Macs, GRUB is split across multiple locations:
- GRUB configuration and modules typically live on the Linux filesystem under
/boot/grub - Mac-specific boot files such as
BootXandgrub.elflive on the small Apple_Bootstrap partition, usually formatted as HFS
If those components come from different GRUB versions, symbol resolution can fail. That is what happened here.
In practice, this often occurs after:
- updating GRUB but not reinstalling it fully
- changing partitions or boot files manually
- restoring one partition from backup but not the other
The result is a partially updated GRUB installation.
Why editing the GRUB boot entry does not help
I first looked at the boot entry itself. It contained a normal-looking Linux line such as:
linux /boot/kernel-6.1.12-gentoo root=/dev/sda3 ro
That line was fine. The failure happened before the kernel could actually start. So changing kernel parameters would not fix anything.
The recovery strategy
The correct fix is:
- boot a Gentoo PowerPC live system
- mount the installed Gentoo root filesystem
- mount the Apple_Bootstrap partition separately
- chroot into the installed system
- reinstall GRUB for
powerpc-ieee1275 - regenerate
grub.cfg
Step 1: Write the Gentoo PowerPC live image to a USB stick
On another Linux machine, write the Gentoo PowerPC minimal ISO to a USB stick.
First identify the stick:
lsblk -d -o NAME,SIZE,MODEL
Then write the image to the whole device, not a partition:
sudo umount /dev/sdX* 2>/dev/null || true
sudo dd if=install-powerpc-minimal.iso of=/dev/sdX bs=4M conv=fsync status=progress
sync
Replace /dev/sdX with the actual USB device.
Step 2: Boot the USB stick on the iBook G4
On old PowerPC Macs, USB booting is often easiest through Open Firmware rather than the normal Apple boot picker.
Power on the iBook and immediately hold:
Command + Option + O + F
This opens Open Firmware.
Then probe the USB buses:
dev usb0 ls
dev usb1 ls
Once the stick appears as a disk node, try booting it with:
probe-usb boot usb0/disk:3,\\:tbxi
If that does not work, try the other bus:
probe-usb boot usb1/disk:3,\\:tbxi
If needed, also try partition :2 instead of :3.
Once the live environment starts, proceed with the repair.
Step 3: Identify the installed Gentoo root and Apple_Bootstrap partitions
Before mounting anything, inspect the disk layout:
mac-fdisk -l /dev/sda
or:
parted -l
On my system:
- the Gentoo root filesystem was
/dev/sda3 - the Apple_Bootstrap partition was
/dev/sda2
Do not assume those numbers blindly. Check your own partition table first.
Step 4: Mount the installed system
Mount the installed root partition:
mount /dev/sda3 /mnt/gentoo
Create a mount point for the Apple_Bootstrap partition:
mkdir -p /mnt/gentoo/boot/macppc
Then mount the bootstrap partition as HFS:
mount -t hfs /dev/sda2 /mnt/gentoo/boot/macppc
This is important. Do not just mount everything under /boot and hope for the best. The PowerPC boot files must go to the actual HFS bootstrap partition.
Step 5: Prepare the chroot
Mount the pseudo-filesystems:
mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
Then enter the installed system:
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
Step 6: Reinstall GRUB properly for PowerPC
Now reinstall GRUB with the correct target and Mac PPC directory:
grub-install --target=powerpc-ieee1275 --macppc-directory=/boot/macppc /dev/sda2
Then regenerate the configuration:
grub-mkconfig -o /boot/grub/grub.cfg
Finally:
sync
At this point, the files on the Apple_Bootstrap partition and the GRUB modules under /boot/grub should be consistent again.
Step 7: Reboot
Exit the chroot:
exit
Unmount everything:
umount -R /mnt/gentoo
Then reboot:
reboot
If the problem was the expected GRUB mismatch, the machine should now boot normally again.
What if the Apple_Bootstrap partition refuses to mount cleanly?
If the HFS bootstrap partition is damaged or only mounts read-only, repair it first from the live environment:
fsck.hfs /dev/sda2
Then repeat the mount and reinstall steps.
The full repair sequence
For convenience, here is the whole recovery procedure in one block:
mount /dev/sda3 /mnt/gentoo
mkdir -p /mnt/gentoo/boot/macppc
mount -t hfs /dev/sda2 /mnt/gentoo/boot/macppc
mount -t proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
source /etc/profile
export PS1="(chroot) $PS1"
grub-install --target=powerpc-ieee1275 --macppc-directory=/boot/macppc /dev/sda2
grub-mkconfig -o /boot/grub/grub.cfg
sync
exit
umount -R /mnt/gentoo
reboot
Lessons learned
There are a few useful takeaways from this repair:
1. A GRUB symbol error is usually a GRUB problem
If GRUB complains about a missing symbol, the kernel is often innocent.
2. PowerPC Macs have a split boot setup
On these machines, /boot/grub alone is not the whole story. The Apple_Bootstrap partition matters just as much.
3. USB booting old Macs is easier through Open Firmware
The classic Apple boot selector is not always the most reliable path for PowerPC Linux installers.
4. Always verify the real partition layout
On old systems, assumptions about /dev/sda2 and /dev/sda3 can easily be wrong.
Final thoughts
The error message looked obscure, but the fix turned out to be straightforward once the architecture-specific boot layout was understood. The key insight was that this was not a Linux kernel problem at all. It was a stale or mismatched GRUB installation on a PowerPC Mac.
After reinstalling GRUB properly onto the Apple_Bootstrap partition, the iBook G4 booted again without issue.
Old PowerPC machines are fragile in ways modern systems are not, but they are also surprisingly recoverable once you understand how their boot chain is assembled.