I don't see a big problem with MBR installations.
You would overwrite the GRUB code in MBR with the one from Arch and load Arch's grub.cfg
instead of Ubuntu's. Both ideally should be in /boot/grub/grub.cfg
on their respective root partitions, so that every OS has it's own grub.cfg
that it can maintain independently. To jump to the configuration of the other OS, you could include the following code (replace 848acb77-de99-4288-a62b-2bf9d7fbd643
and hd0,gpt2
with appropriate values for the other root filesystem) into /etc/grub.d/40_custom
or what ever mechanism Arch uses and run the script responsible for updating grub.cfg (update-grub
in Ubuntu):
menuentry 'Custom Title' {
search.fs_uuid 848acb77-de99-4288-a62b-2bf9d7fbd643 root hd0,gpt2
set prefix=($root)'/boot/grub'
configfile $prefix/grub.cfg
}
Of course you shouldn't mix architectures like i386/ia32 with x64/amd64 or x64/amd64 with x64-efi/amd64-efi. Speaking of EFI, with EFI it's even simpler, as every bootloader should use it's own directory to not overwrite each other anymore.
On MBR installations you should make sure that only one system is able to update the MBR, see odfred's answer on how to do that. But it shouldn't be much of an issue when you can jump from one config to the other.