Os sistemas operacionais às vezes redefinem o programa de inicialização padrão, principalmente se atualizarem os carregadores de inicialização padrão. Não há realmente nenhuma maneira de impedir que isso aconteça, então você deve simplesmente saber como corrigir o problema quando ele ocorre. No Linux, isso é feito usando o programa efibootmgr . No OS X, isso é feito por meio de bless . Veja aqui para mais sobre efibootmgr .
Se este malabarismo está acontecendo toda vez que você reiniciar, então algo está seriamente errado. Se o Ubuntu está redefinindo o GRUB como o padrão a cada reinicialização, então, pessoalmente, eu o removeria - mas eu não sou fã do GRUB (o suficiente para que eu formei o rEFIt para fazer o rEFInd em vez de lidar com o GRUB). Suponho que você também poderia ligar para o efibootmgr em script de desligamento, mas que corre o risco de se desconectar da realidade e causar problemas, então eu estaria relutante em fazer isso.
EDITAR:
Sim, alterar a variável BootOrder (por meio da opção -o para efibootmgr ), como você sugere, é apropriado. Você pode excluir a entrada do OpenSUSE com:
sudo efibootmgr -b 0 -B
Pode haver arquivos OpenSUSE instalados que você possa excluir usando rm - probably sudo rm -r /boot/efi/EFI/opensuse do Ubuntu. (Esses arquivos não devem causar nenhum dano, mas podem ser confusos ou serem acidentalmente reativados no futuro.) Você pode remover o Ubuntu GRUB de maneira semelhante, embora possa ser reinstalado se / quando o Ubuntu atualiza no futuro. Além disso, mantê-lo como um método de backup de inicialização pode fazer sentido.
Se você deixar o GRUB do Ubuntu instalado, mas não quiser vê-lo no menu do rEFInd, você pode usar dont_scan_dirs ou dont_scan_files in refind.conf (provavelmente /boot/efi/EFI/refind/refind.conf do Ubuntu) para ocultar a entrada do GRUB. / p>