Error: attempting to read or write outside of partition after grub install

Context

I made some changes to my /etc/defaults/grub file, then ran
mikinitcpio -P , update-grub, and reboot.

The Issue

On boot, the message error: attempt to read or write outside of partition repeats down the screen. The system then boots normally without me doing anything. (No grub rescue prompt, no other error messages, all partitions are mounted correctly)

I have tried

  • Reverting the changes I made and rerunning grub-install and grub-mkconfig.
  • Restoring /boot from a backup.

Neither had any effect.

…it’s /etc/default/grub
not:
/etc/defaults/grub
probably a typo

What changes did you make?

What is currently there can be shown with:
grep GRUB_CMDLINE_LINUX_DEFAULT /etc/default/grub



doesn’t grub-install need some parameters?
It is also a command used to reinstall the grub boot loader (likely not needed at all).
It’s not the same or even similar as update-grub

… as does
grub-mkconfig

It usually is:
grub-mkconfig -o /boot/grub/grub.cfg

So:
you did multiple things - hopefully the shell history (or your memory) contains all of them, in order …

Not necessarily, no. If run from within the installed system, it’ll pick up the correct parameters all by itself. :wink:

Which filesystem is used for the boot partition? xfs is known to have this issue …

1 Like

…it’s /etc/default/grub
not:
/etc/defaults/grub
probably a typo

Yes, my mistake.

Currently it looks like this
GRUB_CMDLINE_LINUX_DEFAULT="udev.log_priority=3"

It is also a command used to reinstall the grub boot loader (likely not needed at all).

After failing for an hour to understand what was wrong I hoped that reinstalling would fix it. Obviously I don’t understand how grub works.

Apologies for not including the parameters. They were
grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=Manjaro
and
grub-mkconfig -o /boot/grub/grub.cfg

Which filesystem is used for the boot partition? xfs is known to have this issue …

The EFI partition is FAT32, the root partition (including /boot) is xfs.
But it seemed to be working fine beforehand, and it didn’t happen following an update.

As @philm said, grub has a long history of not working well with xfs — then it works, and then it doesn’t. So you’ve got three options…

  1. Reinstall your system and reformat your root filesystem as ext4.

  2. Create an extra ext4 partition — its size will depend on how many kernels you intend to keep around, but about 512 MiB should be enough for at least two kernels — and mount that as /boot. You will need to move all of the contents of your existing /boot onto this new partition and reinstall grub, of course — hint: mount the new partition at /mnt for copying/moving over the stuff from your existing /boot, then unmount it, remount it as /boot, and add a record for it in your /etc/fstab.

  3. Switch to systemd-boot instead of grub. This will require you to copy your kernels over into /boot/efi.

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.