Como posso criar um atalho entre o Ubuntu 16 e o Windows 10 em um dualboot? [duplicado]

1

Estou procurando um atalho de um clique para efetuar logout, reiniciar e inicializar no sistema operacional oposto. A única informação que encontrei online é entre o Windows e o Windows e não tenho a certeza se é diferente.

    
por Largobone 19.03.2018 / 18:03

1 resposta

0

NOTA: Esta resposta foi um trabalho em andamento.

Isso pode ser feito. Não tenho certeza de qual Ambiente de Desktop você está executando, mas as etapas devem estar relativamente próximas do mesmo. Essas etapas criarão um script que você pode executar a partir da linha de comando e também um iniciador de área de trabalho que pode ser iniciado clicando nele. De qualquer forma, é melhor pedir uma senha antes que a reinicialização aconteça.

A primeira coisa é criar um script que contenha os comandos baseados em minha outra resposta aqui usando grub-reboot as ele define a entrada de inicialização padrão para o GRUB, somente para a próxima inicialização. A razão para isso é que não há edição do arquivo /etc/default/grub ou do arquivo /boot/grub/grub.cfg .

Eu chamei meu script win_reboot.bsh , mas antes de adicionar o conteúdo ao script, execute sudo os-prober para obter um nome mais preciso do Windows 10, caso haja várias entradas, como em sistemas OEM com recuperação , etc.

Eu não uso GPT ou rodado em um sistema OEM, então eu só tenho uma entrada.

terrance@terrance-ubuntu:~$ sudo os-prober
/dev/sdh1:Windows 10 (loader):Windows:chain

Anote o nome do Windows entre os dois pontos : . Nós vamos usar o Windows 10 (loader) . O awk terá um problema com caracteres especiais como ()/ , por isso teremos que escapar daqueles com \ like Windows 10 \(loader\) . Vamos usar essa linha porque será mais preciso se houver várias entradas no os-prober que é executado antes que grub-update grave um novo arquivo /boot/grub/grub.cfg .

Para isso, também vamos usar o comando pkexec , que já deve estar instalado. o gksu está obsoleto .

Conteúdo do script:

#!/bin/bash

if [ ${UID} != 0 ]; then
    echo "Please run as 'sudo $0'"
    exit 1
fi

grub-reboot "$(awk -F"'" '/Windows 10 \(loader\)/ {print $2}' /boot/grub/grub.cfg)"
reboot

Esse script pesquisará o arquivo grub.cfg e obterá o nome completo do Windows 10 (loader) boot. Eu fiz a linha para manipular as alterações se um grub-update for executado no futuro e alterar o nome dessa linha. A razão para isso é que, se você adicionar um disco rígido ou deixar uma unidade USB no sistema que não seja inicializável durante a inicialização, a designação da unidade poderá ser alterada. Você pode ver uma linha que se lê como Windows 10 (loader) (on /dev/sdh1) em outro grub-update muda para Windows 10 (loader) (on /dev/sdg1) . Ainda bem que essas entradas realmente dependem do UUID da partição e não do nome na entrada do grub.

Em seguida, torne o script executável:

sudo chmod +x win_reboot.bsh

Agora, se você executá-lo a partir da linha de comando sem o sudo, ele deve ficar assim:

terrance@terrance-ubuntu:~/scripts$ ./win_reboot.bsh 
Please run as 'sudo ./win_reboot.bsh'

Crie um atalho para o novo script. Espero que, quando você clicar com o botão direito do mouse em sua área de trabalho, que Create Launcher seja uma das opções. Estou executando Xfce4 como minha área de trabalho. Eu acho que você poderia criar um lançador com base no comentário postado por Andrew Shum , pois ele ainda deve funcionar, desde que aponte para o script win_reboot.bsh.

Edit: Eu mudei o lançador aqui com base nos comentários que recebi abaixo. sudo -H não funciona no comando de um ativador, a menos que você tenha configurado a opção Executar no Terminal. Outra coisa a ser observada é que este ativador está chamando um script da CLI e não um aplicativo da GUI .

Você pode criar um arquivo na sua pasta ~/Desktop chamada Boot to Windows 10.desktop e adicionar o seguinte a ele:

[Desktop Entry]
Version=1.0
Type=Application
Name=Boot to Windows 10
Comment=Reboot System to Windows 10
Exec=pkexec /home/terrance/scripts/win_reboot.bsh
Icon=web-microsoft
Path=
Terminal=false
StartupNotify=false

Lembre-se de alterar a linha Exec= para corresponder ao local do seu arquivo.

Então,quandovocêabriroatalho,veráalgosemelhanteparadigitarsuasenhacomoSuperusuário:

Espero que isso ajude!

    
por Terrance 20.03.2018 / 00:54