Fazer o grub manter sua inicialização padrão sob as atualizações do kernel

11

Eu faço o boot duplo da minha máquina e quero que o padrão seja inicializado no Windows para que sempre que eu reiniciar a máquina remotamente da minha casa, ela possa voltar ao Windows (em vez do Ubuntu).

O problema é que toda vez que o Ubuntu atualiza o kernel, eu tenho que reiniciar o item de inicialização padrão do grub de volta ao Windows. Isso ocorre porque o carregador de menu grub usa posições, ou seja, 6 para o sistema operacional padrão inicializar. E quando o Ubuntu instala um novo kernel, ele muda essa ordem.

Eu estou procurando uma maneira de configurar o grub para lembrar seu item de inicialização padrão sob as atualizações do kernel.

    
por reprogrammer 30.01.2010 / 20:52

2 respostas

9

Grub 1 (Ubuntu 9.04 e anterior)

Acho que a maneira mais fácil de fazer isso é mover a entrada de inicialização do Windows acima das entradas do Ubuntu em /boot/grub/menu.lst . Por padrão, o arquivo de configuração do Grub é apresentado assim:

  1. opções básicas
  2. configuração do kernel auto-magic debian (incluindo utilitários como memtest86 + por padrão)
  3. outros sistemas operacionais detectados

A seção 2 é demarcada por essas linhas no arquivo de configuração:

### BEGIN AUTOMAGIC KERNELS LIST
(lots of stuff here)
### END DEBIAN AUTOMAGIC KERNELS LIST

As entradas para sistemas operacionais autodetectados (por exemplo, Windows) são colocadas após esta seção. Quando você instala um novo kernel, a seção 2 é a única seção que é alterada. Então, movendo o sistema operacional autodetectado para algum lugar antes , a linha BEGIN irá colocá-lo onde o número de entrada não irá mudar quando um novo kernel for instalado.

Grub 2 (Ubuntu 9.10 e posterior)

Com o Grub2, todo o arquivo de configuração é criado novamente a qualquer momento em que update-grub é executado, portanto, a edição de /boot/grub/grub.cfg não será uma correção definitiva. Como esse arquivo é gerado é manipulado pelos arquivos /etc/default/grub e os scripts em /etc/grub.d/* . Assim, modificamos a configuração modificando os arquivos que controlam seções individuais do arquivo de configuração e, em seguida, executando update-grub novamente.

Meu /etc/grub.d inclui esses arquivos:

  • 00_header
  • 05_debian_theme
  • 10_hurd
  • 10_linux
  • 20_memtest86 +
  • 21_memtest86
  • 30_os-prober
  • 40_custom

Estes são shellscripts que são executados na ordem para gerar o arquivo de configuração. A entrada de inicialização do Windows é gerada por 30_os-prober , que é executado após as entradas de inicialização do linux são geradas em 10_linux . Portanto, basta renomear 30_os-prober para algo menor que 10 e executar novamente o update-grub

mv /etc/grub.d/30_os-prober /etc/grub.d/09_os-prober
update-grub

Agora, a entrada do Windows deve ser a primeira entrada, e você pode definir isso como a entrada de inicialização padrão ( GRUB_DEFAULT= ) em /etc/default/grub .

    
por 30.01.2010 / 21:08
2

Siga as instruções no meu blog aqui a utilizar o bootloader limpo do Windows para o seu trabalho. Eu uso agora, e quando eu inicio o PC, eu tenho duas opções:

Windows Vista Ubuntu 10.04

Não há outra desordem. Você pode definir muitas opções diferentes para isso também. Se eu não pressionar nada por 5 segundos, o Windows será inicializado.

Boa sorte.

    
por 25.08.2010 / 13:03