%20para%20usar%20teclas%20modificadoras%3F.png)
Para esclarecer, estou querendo inicializar duas vezes o Windows e uma distribuição Linux. Já sei como configurar meu laptop para fazer isso. No entanto, não quero que o menu grub seja exibido na inicialização. Eu gostaria que ele inicializasse automaticamente o Windows por padrão, a menos que uma tecla modificadora fosse pressionada na inicialização (ctrl, por exemplo). Se a tecla modificadora for pressionada, a distribuição Linux será inicializada.
Isso é possível?
Responder1
Este tópico no AskUbuntuaborda um problema quase idêntico. Aparentemente, você pode ocultar a caixa de diálogo do grub e acessá-la pressionando shifte, caso contrário, deixar o sistema operacional padrão inicializar após o tempo definido por meio da GRUB_TIMEOUT
entrada em seu grub.cfg.
GRUB_DEFAULT= 2 #depends on which entry Windows is
hiddenmenu #this hides the menu
GRUB_TIMEOUT=3 #example for 3 seconds
Responder2
Conforme você escreve em seu comentário, isto é para uma nova instalação, então presumo que virá comgrub2.
Na verdade, sempre inicializar o Windows com o grub1 foi difícil na minha experiência. A adição de um novo kernel à lista de versões de kernel para seleção (por exemplo, após uma atualização do kernel do Linux), mudaria a posição da entrada do Windows. Isso causou um ponto codificado GRUB_DEFAULT
para outra coisa (na maioria das vezes o teste de memória inserido pelo grub installre entre a lista de kernels do Linux e a entrada do Windows na lista). Com o grub1, resolvi esse problema com um script que eliminava todos os três kernels, exceto os três mais recentes, mantendo assim a posição do Windows fixa.
Portanto, certifique-se de usar o grub2, pois ele torna as coisas mais fáceis devido a dois recursos:
- grub2 permitesubmenus, para que o valor de
GRUB_DEFAULT
não se torne inválido após uma atualização do kernel (que coloca os kernels antigos no submenu) - grub2 gera as entradas do menu atravésroteiros(
/etc/grub.d
no Ubuntu)
Recomendo fazer a alteração noroteirospara forçar o Windows a ser a primeira opção no menu: em /etc/grub.d
renomear 30_os-prober
(que gera a entrada do windows) para algo como 09_os-prober
. Este script é então executado antes, 10_linux
pois os scripts são executados classificados por nome de arquivo e a entrada do Windows estará sempre no topo. E o topo é o padrão se nada mais for especificado.
Execute update-grub
para criar o menu em /boot/grub
, para que ele sempre inicialize o Windows.
Quanto a não ter o menu para não ser mostrado você deseja usarGRUB_HIDDEN_TIMEOUT
e alguns outros em /etc/grub/default
:
# wait 5 seconds for a key-press before showing the menu
GRUB_HIDDEN_TIMEOUT=5
# do not show the countdown counter
GRUB_HIDDEN_TIMEOUT_QUIET=true
# after hidden timeout is done wait 0 seconds -> boot without menu
GRUB_TIMEOUT=0
A combinação acima espera 5 segundos sem saída (contagem regressiva) ou menu e então inicializa a primeira entrada. (Novamente: execute update-grub
depois de mudar isso).
Responder3
No Grub2:
set timeout=0
if keystatus --ctrl; then
set timeout=15
fi
Se ctrl for pressionado, o menu será exibido por 15 segundos antes de inicializar a entrada padrão; se ctrl não for pressionado, a entrada padrão será inicializada imediatamente, sem nenhum menu.
Para obter detalhes, consulte info grub
keystatus. Existem algumas ressalvas: pode não funcionar em todas as plataformas. Alternativamente a --ctrl, ele também suporta --alt e --shift, então você pode tentar se --ctrl não funcionar.
Alternativamente, você pode colocar o Grub em um pendrive. Assim, o Windows inicializaria diretamente quando não estivesse conectado. Você também pode colocar vários Live CDs e coisas como memtest ou freedos no pendrive. Coisa muito útil para ter na carteira :)