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!