Deseja que o Windows inicialize em vez do Grub

0

Então quando eu ligo meu computador, o Grub resgata. Eu finalmente descobri como entrar no Windows, mas agora eu quero pular a etapa de inserir as informações no Grub para entrar no Windows. Como eu faço o boot do Windows antes do Grub?

    
por C.s. 02.08.2012 / 00:20

1 resposta

4

Você provavelmente não vai querer pular o grub e inicializar direto para o Windows - isso vai impedir você de inicializar no linux. Em vez disso, você deseja tornar o Windows a entrada de inicialização padrão.

O seguinte funciona no debian (e derivados como o Ubuntu). O procedimento é conceitualmente semelhante, mas difere significativamente nos detalhes de RH / Centos e outras distros.

  • apt-get install os-prober (um pacote que adiciona suporte ao grub para detectar outros sistemas operacionais e adicioná-los ao menu grub)

  • edite /etc/default/grub para que tenha:

    GRUB_DEFAULT=saved  
    GRUB_SAVEDEFAULT=true  

Opcionalmente, defina GRUB_TIMEOUT=5 ou = 10 para que você tenha tempo suficiente para escolher uma entrada no menu.

Exclua ou comente todas as linhas que mencionam HIDDEN , como GRUB_HIDDEN_TIMEOUT - o Ubuntu gosta de ocultar o menu do grub por algum motivo.

Isso irá configurar o grub de forma que o que você selecionar no menu se torne o padrão até que você selecione outra coisa.

  • execute update-grub

  • da próxima vez que você inicializar, escolha o Windows. Agora será a opção padrão.

Você também pode usar grub-set-default como root na linha de comando do linux para selecionar manualmente qual entrada do menu grub será o padrão. por exemplo. Se o Windows for a quinta entrada do menu na lista, então grub-set-default 5 fará com que seja o padrão.

Você pode listar as entradas do menu grub com um simples grep como:

egrep 'submenu|menuentry' /boot/grub/grub.cfg | cat -n

ou algo um pouco mais chique como:

sed -r -n -e '/submenu|menuentry/{s/(["'\'']) .*//;p}'

Atenção: a numeração torna-se complicada se houver algum submenu do grub. Um simples grep | cat -n não irá obter a numeração correta, você terá que escrever um script para analisar o arquivo grub.cfg. Nesse caso, é mais fácil usar grub-set-default com o nome completo da entrada do menu, em vez de um número.

por exemplo. dado o seguinte,

# sed -r -n -e '/submenu|menuentry/{s/(["'\'']) .*//;p}' /boot/grub/grub.cfg | cat -n
     1  menuentry 'Ubuntu, with Linux 3.2.0-27-virtual'
     2  menuentry 'Ubuntu, with Linux 3.2.0-27-virtual (recovery mode)'
     3  submenu "Previous Linux versions"
     4  menuentry 'Ubuntu, with Linux 3.2.0-24-virtual'
     5  menuentry 'Ubuntu, with Linux 3.2.0-24-virtual (recovery mode)'
     6  menuentry "Memory test (memtest86+)"
     7  menuentry "Memory test (memtest86+, serial console 115200)"

grub-set-default 4 não funciona porque a numeração é distorcida pelo fato de estar em um submenu. Use grub-set-default 'Ubuntu, with Linux 3.2.0-24-virtual' em vez disso.

Existe também um comando grub-reboot que define a entrada para inicialização somente para a próxima reinicialização - depois disso, ela reverte para o padrão anterior. Isso é útil para, por exemplo, testar um novo kernel.

    
por 02.08.2012 / 01:04