Link para reiniciar do Windows para o Ubuntu

10

Eu tenho o sistema de inicialização dupla padrão: Ubuntu e Windows. O Grub está configurado para iniciar o Windows por padrão.

Existe uma maneira de criar algum tipo de link no Windows, que:

  1. reiniciar o Windows
  2. inicialize no Ubuntu
Dmitriy Berkutov
fonte
A dúvida existe uma maneira
Tim
11
É possível, mas não via forma fácil .... não sei sobre capacidades deste: sourceforge.net/projects/grub2win/files experimentá-lo se você quer ou de.mcbf.net/david/grubchoosedefault e você 100 % precisam deste ext2fsd.com . Assim que você pode querer ler este linuxquestions.org/questions/linux-software-2/...
RiddleMeThis
11
@ Tim, onde é que há uma vontade (ou toneladas de dinheiro), há um caminho: D
Wilf

Respostas:

8

Você não precisa modificar /boot/grub/grub.cfgcomo Michal Hagara sugeriu. Isso pode quebrar o Ubuntu se você instalar um novo kernel e não atualizar o e:\home\user\Grubshift\ubuntudefault\grub.cfg.

Tudo que você precisa fazer é criar / copiar um arquivo /boot/grub/grubenvcom o seguinte conteúdo

# GRUB Environment Block
next_entry=2
###########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################

Onde next_entryestá a linha da próxima entrada do menu grub que deve ser iniciada na próxima vez (começando do zero). Então next_entry=2seria a terceira linha.

O Grub removerá automaticamente o valor após a inicialização, para a próxima vez que você inicializar novamente no sistema operacional padrão.

É assim que grub-rebootfunciona.

Germar
fonte
Esta é uma solução muito mais conveniente, obrigado!
Dmitriy Berkutov
Não sabia sobre essa funcionalidade:) ... Como você pode ver, eu já apontou, que mexer com grub.cfg não é o mais sábio ...
RiddleMeThis
tem certeza de que 987 vezes '#' é necessário? Eu acho que 462 vezes é suficiente:
Jounathaen 13/03
2

Aqui está o que eu tenho em mente:

  • http://www.ext2fsd.com/ (deve ser capaz de gravar na partição EXT, "montar" e atribuir letra na inicialização)
  • então eu prepararia o arquivo GRUB modificado, onde o Ubuntu é definido como SO padrão (este também seria armazenado na partição Linux)
  • Script do Windows BATCH (executado pelo atalho desejado) que:
    1. Backup do OLUB GRUB (Windows como padrão)
    2. copiar GRUB modificado (o padrão é Ubuntu) sobre OLD one (o padrão é Windows)
    3. Reinicie o PC
  • Script Linux BASH que modifica e atualiza o GRUB na inicialização (ou reinicialização) para restaurar o Windows como sistema operacional padrão

Posso estar completamente errado com essa abordagem, mas não consigo entender por que não deve funcionar.

EDITAR:

E também há: http://www.paragon-drivers.com/extfs-windows/ que eu nunca tentei.


PROGRESSO

1.Shortcut para reiniciar o Windows e inicializar o Ubuntu

OK, o lado negativo disso é que teremos que modificar o grub.cfg (/boot/grub/grub.cfg) diretamente (é desaconselhado - https://askubuntu.com/a/437341/402801), porque existe não há como executar a update-grubpartir do Windows ... se você puder viver com isso, leia mais.

  • Como mencionei antes, instale o Ext2Fsd , monte-o automaticamente e atribua uma letra na inicialização
  • Eu criei minha "pasta Backup" em /home/user/Grubshifttrês subdiretórios: backup (para fazer backup do /boot/grub/grub.cfg), ubuntudefault (para armazenar o grub.cfg com o Ubuntu como padrão), windowsdefault (você tem o idéia)

Após a instalação, o Ubuntu é definido como padrão, então copie-o grub.cfgpara o diretório desejado. Eu tenho a configuração "Windows como padrão" modificando o GRUB via grub-customizer (é mais seguro na minha opinião), depois disso copie o Windows grub.cfgpara o diretório desejado

Depois disso, abra o bloco de notas e insira:

copy e:\boot\grub\grub.cfg /y e:\home\user\Grubshift\backup
copy e:\home\user\Grubshift\ubuntudefault\grub.cfg /y e:\boot\grub
shutdown /r /t 0

/y- opção de copycomando, suprime a solicitação para confirmar que você deseja substituir um arquivo de destino existente

/r /t 0 - opções de desligamento, 1. significa reinicialização, 2. significa imediatamente, sem aparecer mensagens feias

Modifique o caminho de acordo !!!

  • Salve esse arquivo (usei UTF-8) e altere a extensão para *.bat
  • Criar atalho na área de trabalho para shift.bat, clique com o botão direito do mouse em shorctur -> propriedades -> guia de atalho -> Executar: minimizado (que eliminará o surgimento do CMD)

Eu tentei isso pelo menos 8 vezes, definindo o Windows como padrão com grub-customizer...

Não estou dizendo que é seguro, mas HEY !, estamos mexendo com o gerenciador de inicialização ... isso não é seguro

Quando está funcionando, podemos nos livrar completamente do menu GRUB, porque ele sempre inicializa no sistema operacional correto ...

RiddleMeThis
fonte
A lógica parece boa, infelizmente o ext2fsd não suporta totalmente o ext4.
Dmitriy Berkutov
11
Além disso, se o script melhorar (como se o Windows fizesse isso :), o computador não inicializa - é uma boa ideia. Um bom exemplo é se as corridas de script Linux na inicialização, mas o computador é desligado, enquanto a inicialização e apenas executar esse script, então ....
Wilf
0

Aqui está como eu defini minha configuração:

Para resumir: O sistema reinicia o padrão para a última atividade, reinicia do Windows para o Linux e vice-versa usando um script simples.

Configure o grub para sempre inicializar a última seleção selecionada:

No Linux:

  • digite GRUB_DEFAULT=savede GRUB_SAVEDEFAULT=trueem / etc / default / grub
  • atualizar a configuração usando sudo update-grub

Instale o driver extfs do Paragons

consulte http://www.paragon-drivers.com/extfs-windows/

Crie scripts de reinicialização:

Se / boot / grub / grubenv não existir, crie-o usando a resposta de Germar

Arquivo em lote para reinicialização do windows para linux:

@echo off
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /mount disk1 L:

:CheckForFile
IF EXIST "L:\boot\grub\grubenv" GOTO FoundIt
GOTO CheckForFile
:FoundIt

sed -i -e '/next_entry/c\next_entry=0' L:/boot/grub/grubenv
"C:\Program Files (x86)\Paragon Software\ExtFS for Windows\extmounter" /umount disk1 L:
echo press enter to reboot
pause
shutdown -r -t 00
  • substitua /mount disk1 L:por algo específico ao seu sistema. Você pode encontrar discos disponíveis usando o extmounter /listcomando e a letra da unidade. Além disso, L:já não deve ser utilizado.
  • salve como reboot-linux.bat
  • você pode clicar com o botão direito do mouse no bastão e selecionar run as administratorpara executá-lo

Script de shell para reinicialização do linux para o windows:

sudo sed -i -e '/next_entry/c\next_entry=2' /boot/grub/grubenv
sudo reboot
  • substitua next_entry=2por qualquer que seja a sua entrada do Windows.
  • salve como por exemplo ~/reboot_windowse marque como executável:chmod +x ~/reboot_windows
dominik andreas
fonte