Link para reiniciar do Windows para o Ubuntu

8

Eu tenho um sistema de boot duplo 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. reinicie o Windows
  2. inicializa no Ubuntu
por Dmitriy Berkutov 11.06.2015 / 17:45

3 respostas

5

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

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

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

Onde next_entry é 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=2 seria a 3ª linha.

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

É assim que grub-reboot funciona.

    
por Germar 12.06.2015 / 01:22
2

Aqui está o que tenho em mente:

  • link (ele deve ser capaz de gravar em partições EXT, "montar" e atribuir letras no boot)
  • então eu prepararia o arquivo GRUB modificado, onde o Ubuntu é definido como o SO padrão (este também seria armazenado na partição Linux)
  • Script Windows BATCH (executado pelo atalho desejado) que:
    1. Fazer backup do GRUB antigo (Windows como padrão)
    2. copie o GRUB modificado (o padrão é o Ubuntu) para o anterior (o padrão é o Windows)
    3. Reiniciar o PC
  • Script Linux BASH que modifica e atualiza o GRUB na inicialização (ou reinicialização) para definir o Windows como sistema operacional padrão

Eu posso estar completamente errado com essa abordagem, mas não consigo ver por que ela não deve funcionar.

EDITAR:

E também há: link 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 (é recomendado contra - link não há como executar update-grub do Windows ... se você pode viver com essa leitura mais adiante.

  • Como mencionei antes, instale o Ext2Fsd , monte-o automaticamente e atribua letras na inicialização
  • Eu criei minha "pasta de backup" em /home/user/Grubshift com 3 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 a ideia)

Após a instalação, o Ubuntu é definido como padrão, então copie grub.cfg para o diretório desejado. Eu tenho o "Windows como padrão" config modificando o GRUB via grub-customizer (é mais seguro na minha opinião), depois disso copie o Windows grub.cfg para o seu 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 do comando copy , suprime a solicitação para confirmar que você deseja sobrescrever um arquivo de destino existente

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

Modifique o caminho de acordo !!!

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

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

Eu não estou dizendo que é seguro, mas HEY !, estamos mexendo com o bootloader ... isso não é seguro

Quando estiver funcionando, podemos nos livrar do menu GRUB completamente, porque ele sempre será inicializado no SO correto ...

    
por RiddleMeThis 11.06.2015 / 19:13
0

Veja como configurei minha configuração:

Para resumir: o sistema reinicializa por padrão para o último ativo, reinicia do Windows para o Linux e vice-versa usando um script simples.

Configurar o grub para sempre inicializar pela última vez:

Sob o linux:

  • insira GRUB_DEFAULT=saved e GRUB_SAVEDEFAULT=true em / etc / default / grub
  • atualizar configuração usando sudo update-grub

Instalar o driver Extags da Paragons

veja link

Criar scripts de reinicialização:

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

Arquivo em lote para reinicialização do Windows para o 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 do seu sistema. Você pode encontrar discos disponíveis usando o comando extmounter /list e a letra da unidade. Além disso, L: não deve ser usado.
  • salve como, por exemplo, %código%
  • você pode clicar com o botão direito do mouse em bat e selecionar reboot-linux.bat para 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 run as administrator pela entrada do Windows.
  • salve como, por exemplo, next_entry=2 e marque como executável: ~/reboot_windows
por dominik andreas 12.01.2018 / 16:19