Как создать ярлык между Ubuntu 16 и Windows 10 на двойной загрузке? [dубликат]

У этого вопроса уже есть ответ здесь: Как перезагрузиться в Windows из Ubuntu? 8 ответов

Я ищу ярлык с одним нажатием для выхода из системы, перезагрузки и загрузки в другой операционной системе. Единственная информация, которую я нашел в Интернете, находится между Windows и Windows, и я не уверен, что она другая.

1
задан 19 March 2018 в 21:03

2 ответа

ПРИМЕЧАНИЕ. Этот ответ был продолжен.

Это можно сделать. Я не уверен, что Desktop Environment вы работаете, но шаги должны быть относительно близки к тому же. Эти шаги создадут сценарий, который вы можете запустить из командной строки, а также панель запуска, которую можно запустить, щелкнув по ней. В любом случае, лучше всего попросить пароль перед перезагрузкой.

Прежде всего, нужно создать скрипт, который будет содержать команды, основанные на моем другом ответе здесь, используя grub-reboot, поскольку он устанавливает загрузочная запись по умолчанию для GRUB, для следующей загрузки. Причина этого в том, что редактирование файла /etc/default/grub или файла /boot/grub/grub.cfg отсутствует.

Я вызвал свой скрипт win_reboot.bsh, но перед добавлением содержимого в скрипт запустите sudo os-prober, чтобы получить более точное имя Windows 10, если в нем будет несколько записей, например, в OEM-системы с восстановлением и т. Д.

Я не использую GPT или не запускаюсь в OEM-системе, поэтому у меня есть только одна запись.

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

Обратите внимание на имя Windows между двоеточия :. Мы будем использовать Windows 10 (loader). awk действительно будет иметь проблемы со специальными символами, такими как ()/, поэтому нам придется избегать тех, у кого есть \, как Windows 10 \(loader\). Мы будем использовать эту строку, потому что она будет более точной, если в os-prober есть несколько записей, которые выполняются до того, как grub-update записывает новый файл /boot/grub/grub.cfg.

Для этого мы также собирается использовать команду pkexec, которая должна быть уже установлена. мой другой ответ здесь .

ПРИМЕЧАНИЕ:

#!/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

Этот скрипт будет искать файл grub.cfg и получить полное имя загрузки Windows 10 (loader). Я сделал строку для обработки изменений, если grub-update выполняется в будущем и изменяет имя этой строки. Причина этого в том, что если вы добавите жесткий диск или оставите USB-накопитель в системе, который не загружается при загрузке, обозначение диска может измениться. Вы могли видеть строку, которая читается как Windows 10 (loader) (on /dev/sdh1), а затем на другой grub-update она изменяется на Windows 10 (loader) (on /dev/sdg1). Хорошо, что эти записи на самом деле полагаются на UUID раздела, а не на имя в записи grub.

Затем сделайте исполняемый файл сценария:

sudo chmod +x win_reboot.bsh

Теперь, если вы запускаете его из командной строки без sudo, он должен выглядеть так:

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

Создать ярлык для нового скрипта. Надеюсь, что когда вы щелкните правой кнопкой мыши на своем рабочем столе, это Create Launcher является одним из вариантов. Я запускаю Xfce4 в качестве рабочего стола. Я думаю, вы могли бы создать пусковую установку на основе комментария, размещенного Andrew Shum, поскольку он все равно должен работать до тех пор, пока он указывает на скрипт win_reboot.bsh.

Редактировать: я изменил программу запуска здесь на основе комментариев Я получил ниже. sudo -H не работает в команде запуска, если вы не установили опцию «Выполнить в терминале». Еще одна вещь, чтобы отметить, что эта программа запускает вызов CLI-скрипта, а не GUI-приложения.

Вы можете создать файл в папке ~/Desktop с именем Boot to Windows 10.desktop и добавить к нему следующее: [ ! d21] [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

Не забудьте изменить строку Exec= в соответствии с вашим расположением файла.

комментарий, отправленный Andrew Shum

Then когда вы запустите ярлык, вы увидите что-то подобное, чтобы ввести свой пароль в качестве Суперпользователя:

Надеюсь, что это поможет!

0
ответ дан 17 July 2018 в 18:30

ПРИМЕЧАНИЕ. Этот ответ был продолжен.

Это можно сделать. Я не уверен, что Desktop Environment вы работаете, но шаги должны быть относительно близки к тому же. Эти шаги создадут сценарий, который вы можете запустить из командной строки, а также панель запуска, которую можно запустить, щелкнув по ней. В любом случае, лучше всего попросить пароль перед перезагрузкой.

Прежде всего, нужно создать скрипт, который будет содержать команды, основанные на моем другом ответе здесь, используя grub-reboot, поскольку он устанавливает загрузочная запись по умолчанию для GRUB, для следующей загрузки. Причина этого в том, что редактирование файла /etc/default/grub или файла /boot/grub/grub.cfg отсутствует.

Я вызвал свой скрипт win_reboot.bsh, но перед добавлением содержимого в скрипт запустите sudo os-prober, чтобы получить более точное имя Windows 10, если в нем будет несколько записей, например, в OEM-системы с восстановлением и т. Д.

Я не использую GPT или не запускаюсь в OEM-системе, поэтому у меня есть только одна запись.

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

Обратите внимание на имя Windows между двоеточия :. Мы будем использовать Windows 10 (loader). awk действительно будет иметь проблемы со специальными символами, такими как ()/, поэтому нам придется избегать тех, у кого есть \, как Windows 10 \(loader\). Мы будем использовать эту строку, потому что она будет более точной, если в os-prober есть несколько записей, которые выполняются до того, как grub-update записывает новый файл /boot/grub/grub.cfg.

Для этого мы также собирается использовать команду pkexec, которая должна быть уже установлена. мой другой ответ здесь .

ПРИМЕЧАНИЕ:

#!/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

Этот скрипт будет искать файл grub.cfg и получить полное имя загрузки Windows 10 (loader). Я сделал строку для обработки изменений, если grub-update выполняется в будущем и изменяет имя этой строки. Причина этого в том, что если вы добавите жесткий диск или оставите USB-накопитель в системе, который не загружается при загрузке, обозначение диска может измениться. Вы могли видеть строку, которая читается как Windows 10 (loader) (on /dev/sdh1), а затем на другой grub-update она изменяется на Windows 10 (loader) (on /dev/sdg1). Хорошо, что эти записи на самом деле полагаются на UUID раздела, а не на имя в записи grub.

Затем сделайте исполняемый файл сценария:

sudo chmod +x win_reboot.bsh

Теперь, если вы запускаете его из командной строки без sudo, он должен выглядеть так:

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

Создать ярлык для нового скрипта. Надеюсь, что когда вы щелкните правой кнопкой мыши на своем рабочем столе, это Create Launcher является одним из вариантов. Я запускаю Xfce4 в качестве рабочего стола. Я думаю, вы могли бы создать пусковую установку на основе комментария, размещенного Andrew Shum, поскольку он все равно должен работать до тех пор, пока он указывает на скрипт win_reboot.bsh.

Редактировать: я изменил программу запуска здесь на основе комментариев Я получил ниже. sudo -H не работает в команде запуска, если вы не установили опцию «Выполнить в терминале». Еще одна вещь, чтобы отметить, что эта программа запускает вызов CLI-скрипта, а не GUI-приложения.

Вы можете создать файл в папке ~/Desktop с именем Boot to Windows 10.desktop и добавить к нему следующее: [ ! d21] [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

Не забудьте изменить строку Exec= в соответствии с вашим расположением файла.

комментарий, отправленный Andrew Shum

Then когда вы запустите ярлык, вы увидите что-то подобное, чтобы ввести свой пароль в качестве Суперпользователя:

Надеюсь, что это поможет!

0
ответ дан 23 July 2018 в 19:18
  • 1
    Вероятно, это не будет проблемой для Largobone, но похоже, что это конкретное решение столкнется с проблемами, если есть несколько записей для «Windows 10». Например, мой компьютер на работе был настроен с помощью Windows 7 от IT и каким-то образом получил 3 (возможно, 4) отдельных изображения; все обнаруженные Grub, но только одна на самом деле настроена. Кроме того, если вы собираетесь создать пусковую установку, не следует «gksudo». вместо этого использовать? – Andrew Shum 21 March 2018 в 13:37
  • 2
    @AndrewShum Обновлено на основе вашего комментария. – Terrance 21 March 2018 в 17:46
  • 3
    Я думал, что gksudo обесценился для запуска GUI-приложений. И вы не должны просто использовать sudo, текущий рекомендуемый метод - sudo -H #, который сохраняет / home как местоположение файлов. см. askubuntu.com/questions/11760/… – oldfred 21 March 2018 в 17:54
  • 4
    @oldfred Вы правы. Однако это всего лишь призыв к скрипту, а не к графическому интерфейсу. Мне нужно изменить свое изображение и отредактировать этот ответ еще раз, чтобы использовать pkexec. [F2] на этом этапе является спорным, потому что я тестировал оба способа, и они работают нормально. – Terrance 21 March 2018 в 18:15
  • 5
    @oldfred Спасибо, что поделились этой информацией. То же самое с su vs gksu и обязательно ли это влияет на более старые ОС? Специальная должность, которая упоминала об этом, была особенно около 17 и выше. – Andrew Shum 21 March 2018 в 21:45

Другие вопросы по тегам:

Похожие вопросы: