Estou procurando uma maneira de reiniciar o Windows a partir do Ubuntu em um sistema de inicialização dupla 10.10 / Vista. O caso de uso específico é que eu gostaria de poder ssh na minha instância do Ubuntu em execução e emitir um comando que iniciará uma reinicialização diretamente no Windows.
Encontrei um post promissor , mas o script que ele sugere não está funcionando:
#!/bin/bash
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
sudo grub-reboot $MENU_NUMBER
sudo reboot
man grub-reboot
não ajuda muito, mas parece estar me levando na direção certa:
defina a entrada de inicialização padrão para o GRUB, apenas para a próxima inicialização
WINDOWS_ENTRY=`grep menuentry /boot/grub/grub.cfg | grep --line-number Windows`
MENU_NUMBER=$(( `echo $WINDOWS_ENTRY | sed -e "s/:.*//"` - 1 ))
echo $MENU_NUMBER
Isso retorna o valor esperado, mas, na reinicialização, a primeira entrada do menu ainda é destacada. Alguma idéia de por que isso não está funcionando ou sugestões para outras soluções?
sudo reboot now
deve reiniciar a máquina no primeiro item da lista grub.Respostas:
Você precisa editar seu grub primeiro.
Procure a linha GRUB_DEFAULT = 0 e modifique-a para GRUB_DEFAULT = salva
Atualize seu grub usando o seguinte comando.
Agora crie um arquivo de script,
Em seguida, adicione essas linhas.
Torne o script executável.
E agora você pode executar este script do terminal para reiniciar no Windows.
Ou você pode executar o seguinte comando no seu terminal
Onde X é a posição de entrada do menu do sistema operacional em que você deseja reiniciar no menu GRUB. (Começando com 0 como a primeira entrada)
Por exemplo:
sudo grub-reboot 5
fonte
grep -i 'windows' /boot/grub/grub.cfg|cut -d"'" -f2
Sudo grub-reboot "$ WINDOWS_TITLE" sudo reinicializaçãoExiste um comando grub apenas para isso, é
grub-reboot
.Parece funcionar apenas quando você tem o grub configurado para começar com a última entrada salva. Portanto, se você ainda não o fez, modifique
/etc/default/grub
e definaatualize o arquivo de configuração do grub:
A partir de agora, em cada inicialização o grub iniciará a última entrada usada.
Agora, se você deseja definir com antecedência o que deve ser o sistema para inicializar na próxima vez, use
onde
ENTRY
poderia ser um número relativo a uma entrada de menu (numerada a partir de 0) ou um título exato da entrada de menu, por exemploEste comando pode ser facilmente disponibilizado como iniciador
mas não sei como isso pode ser integrado ao menu do sistema.
Você pode obter o título da entrada do menu disponível com
fonte
GRUB_DEFAULT=saved
, isso atrapalharia sua configuração. O grub-reinicialização faz é escrevernext_entry=ENTRY
para/boot/grub/grubenv
. Isso não ésaved_entry=ENTRY
. A próxima reinicialização será boa, lê o grubnext_entry
. As seguintes botas podem falhar se nenhuma entrada for salva comosaved-entry=ENTRY
no grubenv.Eu acho que encontrei uma maneira ainda melhor para pessoas que querem o mesmo enquanto localmente no seu PC sem ssh.
Uma solução para reiniciar em um sistema específico escolhido por meio de um lançador de unidade foi lançada no webupd8. Consulte http://www.webupd8.org/2011/05/custom-unity-launcher-to-reboot-in.html
Eu sei que não é exatamente disso que se trata a pergunta, mas, caso alguém tenha uma pergunta semelhante mais tarde, isso pode ser útil.
fonte
Tanto quanto eu entendi, isso não será exatamente o que você quer, mas acho bem próximo. Basta seguir o artigo do link webupdate .
fonte
Então, para mim, o melhor foi criar o seguinte script com o
grub-reboot
comandofonte
As informações de todos foram úteis para mim, mas no final ainda não consegui alterar o padrão do grub e reiniciar com um clique. Depois de mexer por 2 horas, descubro este programa, que é exatamente a mesma coisa que todos estamos tentando criar e, em 5 minutos, estou reiniciando o Windows. Obrigado a todos, aqui está o link do trapaceiro para aqueles que também desistem. http://www.webupd8.org/2013/01/unity-reboot-launcher-to-quickly-reboot.html
fonte
Não tenho certeza se isso 100% também funcionará no ubuntu, mas uma vez eu fiz isso funcionar em uma máquina centos
basicamente você terá que dizer ao grub qual id # do grub.conf deve ser executado a seguir. O ID # pode ser encontrado por
portanto, no meu caso, isso geraria, por exemplo, "4-1", pois a quarta entrada no meu grub.conf contém o texto "Windows". (Substitua isso pelo nome da entrada real (também parcialmente) que você deseja usar. Em seguida, você pode alimentá-lo para o grub, como:
e na próxima reinicialização, ele deve inicializar automaticamente a entrada para a qual você pediu.
tudo isso pode ser montado em um script como o seguinte:
o script determinará automaticamente qual entrada do seu grub.conf corresponde ao texto "Windows", alimentará o grub para informar o que deve ser carregado na próxima inicialização e reiniciará o seu PC.
para uma GUI, você pode, por exemplo, adicionar um ícone de atalho à área de trabalho para obter isso.
fonte
Simplesmente edite
/boot/grub/grub.cfg
e altere a entrada padrão para apontar para a entrada que você deseja inicializar. O valor pode ser o número ordinal da entrada (começando do zero para a primeira) ou você pode colocar o título completo da entrada que deseja entre aspas.fonte
boot.cfg
, ele será restaurado a cada manual ou automáticoupdate-grub
. O usuário deve modificar/etc/default/grub
.