A maneira mais fácil é com o Grub

A maneira mais fácil é com o Grub

Eu tenho uma configuração de inicialização dupla:

  1. Ubuntu 16.04LTS
  2. janelas

Atualmente, quando quero passar rebootdo Ubuntu para o Windows, uso grub-rebooto número apropriado como argumento. Isso funciona bem.

No entanto, às vezes o Windows precisa ser reinicializado para que um determinado programa possa ser instalado ou atualizado e eu tenho que selecionar manualmente a entrada correta do menu de inicialização do grub. Existe uma maneira semelhante (na interface do Windows) de informar ao grub qual entrada inicializar?

Suponho que o grub-rebootcomando passe o argumento para um arquivo que, por sua vez, é lido pelo grub upon reboot.

editar (em relação à minha resposta selecionada): Atualmente estou pensando em montar a unidade ext4 que contém/boot e criar scripts para a edição. isso possivelmente demorará um pouco, já que estou fazendo isso no meu tempo livre, além do meu trabalho não técnico de 40 horas por semana. ^^

Responder1

A maneira mais fácil é com o Grub

É complicado controlar grubno Windows. É necessário um aplicativo de terceiros para acessar o Ubuntu a partir do Windows e alguns hackers. No entanto, na parte superior desta postagem:Como alterar a ordem em minhas distros de inicialização dupla, você pode configurar gruba reinicialização automática para a última opção do menu. Portanto, quando você inicializar inicialmente com o Windows e ele acordar às 2 da manhã para executar as atualizações, grubrecarregará o Windows para que possa concluir as atualizações normalmente.

Quando você reinicia manualmente e escolhe o Ubuntu em grubtodas as suas próximas reinicializações, carrega automaticamente o Ubuntu. Este recurso funciona igualmente bem se você tiver bugs no kernel atual e quiser grubreinicializar automaticamente para uma versão mais antiga do kernel selecionada.

Como fazer com que o Grub repita a última seleção de inicialização

Isso é bastante simples. Usando sudopoderes, edite /etc/default/grube altere o seguinte:

#GRUB_DEFAULT=0 # Rather than option #1, we'll always default to last boot choice.
GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true

A primeira linha você estará comentando e logo abaixo dela insira as próximas duas linhas.

Salve o arquivo e digite no terminal:

sudo update-grub

Linha de comando do Ubuntu para reiniciar no Windows

Atualmente você usa algo assim:

sudo grub-reboot x # Where x is Windows zero-based grub menu number
sudo reboot now

A partir deste Stack Exchange modificadorespondervocê pode usar o padrão do grub para reiniciar no Windows. Copie este código em seu ~/.bashrcarquivo:

function reboot-to-windows {
    WINDOWS_TITLE=`grep -i "^menuentry 'Windows" /boot/grub/grub.cfg|head -n 1|cut -d"'" -f2`
    sudo grub-set-default "$WINDOWS_TITLE"
    sudo reboot
}
  • Salve o ~/.bashrcarquivo com a nova reboot-to-windowsfunção.
  • Feche sua sessão de terminal atual.
  • Abra uma nova sessão de terminal para que as alterações ~/.bashrcsejam carregadas.
  • Você pode digitar : ~/.bashrcpara recarregá-lo na sessão de terminal existente, mas algumas pessoas não recomendam fazer isso.

Para reinicializar no Windows a partir da linha de comando, use:

reboot-to-windows

Se o Windows reiniciar automaticamente quando você não estiver olhando, o Windows será reiniciado. Isso permite que as atualizações automáticas do Windows sejam processadas normalmente em vários ciclos de reinicialização que o Windows às vezes usa.

Responder2

Você pode replicar o que grub-rebootfaz. É apenas um script que eventualmente chama:

grub-editenv /boot/grub/grubenv set next_entry="Windows"

Onde Windowsestá o nome da sua entrada no menu grub. Pode não ser isso

Eu corri isso. Tudo o que ele faz é next_entry=Windowsinserir /boot/grub/grubenv. Na linha 2. Então, se for apenas um arquivo, em um sistema de arquivos,você pode fazer exatamente a mesma coisa no Windows. É um problema do Windows para resolver, mas aqui está uma visão geral de alto nível:

  • Monte o disco onde reside a inicialização. Esta é provavelmente a parte mais difícil porque provavelmente é ext4.Essepode ajudar, mas não é inconcebível que você precise do Linux rodando com o Windows para editá-lo.

    Como aponta Muru, não precisa ser tão difícil.Você pode mover /bootpara sua própria partição FAT32. Isso torna trivial a montagem no Windows.

  • Insira next_entry=Windows(ou qualquer outra coisa) no arquivo após o comentário, antes dos hashes.

  • Desmontar.
  • Reinício.

Fazendo um script dissono Windowsestá bem fora da minha zona de conforto e não é exatamente o que fazemos aqui. Mas isso deve ser tudo que você precisa fazer.

Responder3

grub-set-defaultdeve fazer o mesmo que grub-reboot, mas tornar a configuração permanente. Isso não é exatamente da interface do Windows, como você pediu, mas talvez funcione para você.

Responder4

Você não disse qual versão do Windows ou se está no UEFI.

Se você estiver usando uma inicialização UEFI adequada (e não uma inicialização herdada), é possível inicializar temporariamente na entrada de inicialização UEFI do Windows. No Linux, isso pode ser feito usando ferramentas como efibootmgr. No Windows, eu pessoalmente usoFácil UEFI. É gratuito para uso pessoal e GUI, mas não para uso corporativo ou CLI. Não posso garantir sua segurança. Também parece ser um pouco lento, mas parece funcionar

Na minha própria configuração, que usa Arch Linux (kernel EFI shim, sem GRUB) e Windows 10, é assim que fica, depois de escolher "Gerenciar opção de inicialização EFI" na tela inicial:

Imagem mostrando a opção de inicialização única

Se você estiver usando inicialização UEFI, deverá ver algo semelhante para Windows, além de uma única entrada para Ubuntu (que carrega o GRUB), além de algumas outras opções específicas do dispositivo. A opção de inicialização única pode então ser usada para configurar a inicialização na entrada de inicialização UEFI do Windows uma vez e, em seguida, retornar ao GRUB na inicialização depois disso. Depois de definir isso, você reinicia normalmente.

informação relacionada