Grub é o gerenciador de boot preferencial do Linux, e é instalado por default pelo Ubuntu, entre outros. Meu desktop em casa tem Ubuntu e Windows instalados, e o Windows é o sistema operacional default, de forma que minha esposa não tem que fazer nada para bootar o Windows.
Configurar o sistema operacional default não foi particularmente fácil. Existem montes de informação na internet sobre como escolher o sistema operacional default, a maior parte das quais se refere à versão anterior do grub. Sobre a nova versão, não muita coisa.
No fim das contas eu usei o Startup Manager do Ubuntu para configurar isso. A propósito, alguém poderia me explicar porque você usa o Startup Manager para escolher que OS você vai bootar, e o Bootup Manager para escolher que processos vão ser iniciados? Bem, voltando ao assunto...
Isso funcionou legal até o dia que eu fiz um upgrade do Ubuntu, quando então uma nova entrada foi criada, o que trocou a posição relativa do Windows no boot. Isso foi desagradável, então resolvi me aprofundar no assunto.
A configuração usada pelo Ubuntu durante o boot está em /boot/grub, em particular /boot/grub/grub.cfg. Mas você não deve editar esse arquivo diretamente -- ele é gerado automaticamente a partir dos scripts localizados em /etc/grub, mais a configuração em /etc/default/grub. Normalmente, é esse último arquivo que você deve alterar.
Para trocar o sistema operacional default você deve editar o arquivo /etc/default/grub, alterar o parâmetro GRUB_DEFAULT, e então rodar update-grub. O Startup Manager faz tudo isso para você, mas há uma coisa que o Startup Manager não faz...
O truque é o seguinte. O parâmetro GRUB_DEFAULT é normalmente configurado como um número, indicando a posição relativa do sistema que você quer bootar no menu, mas ele também pode ser configurado como um nome! Para ver o nome dos sistemas no menu você pode executar "grep menuentry /boot/grub/grub.cfg" -- os nomes são as strings entre apóstrofos ou aspas logo após "menuentry". Por exemplo:
$ grep menuentry /boot/grub/grub.cfg
menuentry 'Ubuntu, with Linux 2.6.38-11-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-11-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-10-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-10-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
menuentry "Memory test (memtest86+)" {
menuentry "Memory test (memtest86+, serial console 115200)" {
Isso também mostra porque o Startup Manager usa posição relativa ao invés de um nome: de forma que a última versão do Linux seja sempre a default. Para mim isso parece uma escolha ruim para qualquer coisa exceto a primeira entrada.
De qualquer forma, tudo que você precisa fazer é editar /etc/default/grub, alterar a configuração GRUB_DEFAULT, de forma que ela indique o sistema operacional default de sua escolha, e então rodar update-grub.
De qualquer forma, tudo que você precisa fazer é editar /etc/default/grub, alterar a configuração GRUB_DEFAULT, de forma que ela indique o sistema operacional default de sua escolha, e então rodar update-grub.