Ubuntu 17.10 на Acer Cloudbook 14 ao1-431

Вместо того, чтобы рассказывать вам, как это сделать, я расскажу вам, что вы не должны этого делать.

TL; DR - Не изменяйте свой скрипт. Вместо этого настройте свой файловый менеджер или выясните, почему ваши пользователи случайно запускают его.

EDIT: Кажется, вы считаете свой сценарий как-то особенным, как будто общие настройки недостаточно хороши, и ваш скрипт нуждается в специальном подтверждении от Пользователь. Двойной щелчок по нему TL; DR - Не изменяйте свой скрипт. Вместо этого настройте свой файловый менеджер или выясните, почему ваши пользователи случайно запускают его. подтверждение. Если вы обнаружите, что ваши пользователи запускают его случайно, тогда вам нужно выяснить, почему они это делают и решить это. Тогда ваша реальная проблема заключается не в том, как требовать подтверждения, а в том, как предотвратить случайное использование ваших пользователей.

По тому, как вы раскрываете свою проблему, кажется, что вы ожидаете, что ваша программа (сценарий) будет запущена путем навигации где находится файл, а затем щелкнуть по нему из диспетчера файлов. Подумайте обо всех других программах в вашей системе. Как много вы начинаете? Вы переходите к /usr/local/bin при запуске firefox? Конечно, нет. Вы нажимаете на нее в меню приложений. (gnome tweak - скрипт python, может быть, это лучший пример)

Надеюсь, вы не будете нажимать на него из меню приложений случайно. Поэтому ваша проблема заключается в том, как заставить вас запускать скрипт вместо использования диспетчера файлов. Для этого выполните следующие действия:

поместите сценарий из других файлов, где пользователь может случайно щелкнуть по нему (типичное место - /usr/local/bin/ для системной установки или ~/.local/bin/ для установки пользователем), создайте файл записи рабочего стола (прочтите стандартные спецификации). Вот минимальный случай:
[Desktop Entry]
Name=Your script name
Exec=path/for/your/script
Icon=path/for/your/icon/can/be/svg
Terminal=false
Type=Application
и засуньте его в /usr/local/share/applications/your-script.xml или ~/.local/share/your-script.xml. Наконец запустите update-desktop-database.

Поскольку вы дважды щелкаете по скрипту, это подтверждается его файловым менеджером. Это не значит, что сценарий должен подтвердить, должен ли он работать. Примите это к крайности. Можете ли вы представить себе, насколько смешно было бы, что каждый раз, когда вы вызывали какую-либо программу, которую вы должны были подтвердить?

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

Действительно, Nautilus (менеджер файлов Gnome) уже по умолчанию попросит вас подтвердить, хотите ли вы выполнить сценарий (или просто открыть его в текстовом редакторе).

И, конечно, это поведение настраивается, предоставляя пользователю возможность отключить его (запись примечания на not ).

Так что не добавляйте раздражающее диалоговое окно подтверждения в ваш скрипт. Настройте свой файловый менеджер правильно. И пусть ваши пользователи делают то же самое.

0
задан 31 October 2017 в 19:06

2 ответа

Попробуйте загрузиться на аварийный диск Ubuntu, откройте окно терминала и выполните следующую команду:

sudo efibootmgr -o 0005,2001,2002,2003

Обратите внимание, что значения здесь для вашей системы, как показано на выходе efibootmgr в выходном файле Boot Repair. В частности, я добавил параметр ubuntu (Boot0005, следовательно 0005) в начало списка порядков загрузки.

Когда вы перезагружаетесь, GRUB должен появиться, и вы должны иметь возможность загрузки; ваш на многих компьютерах есть дефектные EFI, которые не позволят этому работать. Если у вас по-прежнему возникают проблемы, вам придется использовать исправление или обходное решение, например:

Сбросить параметры встроенного ПО до их значений по умолчанию. Иногда данные NVRAM повреждаются и сбрасываются параметры прошивки на их значения по умолчанию будут достаточно ясно, что проблема исчезнет. Вам нужно будет покрутиться в своей утилите настройки прошивки, чтобы найти подходящую опцию. Обратите внимание, однако, что запись ubuntu в списке заказов на загрузку скорее всего исчезнет, ​​поэтому вам может потребоваться добавить ее вручную или запустить Boot Repair, чтобы полностью переустановить GRUB. Обновите свою прошивку. Если вам повезет, производитель вашего компьютера, возможно, выпустил обновление прошивки (возможно, называемое «обновлением BIOS» на своем сайте), которое устраняет эту проблему. Вы можете попробовать установить его, а затем попытаться снова установить порядок загрузки. Иногда это уничтожит параметры загрузки, как и предыдущее исправление, поэтому вам может потребоваться вручную добавить параметр загрузки или запустить Boot Repair. Верните свой дефектный компьютер для возврата денег. Если ни один из предыдущих вариантов не помогает, и если компьютер достаточно новый, я рекомендую вернуть его в магазин для возврата. У изготовителей были ГОДЫ, чтобы исправить эту самую основную ошибку, поэтому я не могу рекомендовать давать ваши деньги производителю, который не исправил эту проблему. Конечно, у вас может не быть возможности вернуть сломанный компьютер для возврата, если вы купили его месяцами или годами назад, поэтому ... Скопируйте GRUB в резервную позицию - компьютеры на базе EFI должны загрузиться с резервного имени файла, EFI/BOOT/bootx64.efi (без учета регистра) в системном разделе EFI (ESP), если никакая другая загрузочная запись не действительна. Таким образом, вы можете скопировать GRUB (или Shim, если активна активная загрузка) в это место, чтобы заставить загрузку работать. Для этого смонтируйте ESP где-то удобно в аварийной системе, скопируйте EFI/ubuntu в этой точке монтирования в EFI/BOOT в той же точке монтирования и переименуйте EFI/BOOT/shimx64.efi в EFI/BOOT/bootx64.efi. (Вместо этого вы можете переименовать grubx64.efi в bootx64.efi, если вы уверены, что загружаетесь с отключенной защищенной загрузкой.) Это должно заставить систему загружаться, но последующие обновления GRUB или Shim не будут установлены надлежащим образом, если вы не вручную повторите этот шаг. Используйте fbx64.efi - Программа fallback.efi / fbx64.efi предназначена для помощи в вашей ситуации. Если эта программа установлена ​​с использованием резервного имени файла, она будет искать файлы .CSV в подкаталогах EFI и, если они будут найдены, прочитает их содержимое и будет использовать их для воссоздания соответствующих загрузочных записей и переноса их на вверху порядка загрузки. Shim также запустит соответствующий файл fbx64.efi, если он присутствует, поэтому вы можете скопировать shimx64.efi в EFI/BOOT/bootx64.efi и поместить fbx64.efi в EFI/BOOT, чтобы он работал с включенной защищенной загрузкой. Настройка этого вручную - это больнее, чем копирование GRUB в резервное имя файла, но в некоторых отношениях это немного более чистое решение. IIRC, Ubuntu 17.10 следует установить это автоматически, но на вашем исправлении Boot Repair недостаточно данных, чтобы убедиться, что это так в вашей системе. (К сожалению, Boot Repair не имеет надлежащей поддержки для дисков NVMe.)
0
ответ дан 18 July 2018 в 04:13

Попробуйте загрузиться на аварийный диск Ubuntu, откройте окно терминала и выполните следующую команду:

sudo efibootmgr -o 0005,2001,2002,2003

Обратите внимание, что значения здесь для вашей системы, как показано на выходе efibootmgr в выходном файле Boot Repair. В частности, я добавил параметр ubuntu (Boot0005, следовательно 0005) в начало списка порядков загрузки.

Когда вы перезагружаетесь, GRUB должен появиться, и вы должны иметь возможность загрузки; ваш на многих компьютерах есть дефектные EFI, которые не позволят этому работать. Если у вас по-прежнему возникают проблемы, вам придется использовать исправление или обходное решение, например:

Сбросить параметры встроенного ПО до их значений по умолчанию. Иногда данные NVRAM повреждаются и сбрасываются параметры прошивки на их значения по умолчанию будут достаточно ясно, что проблема исчезнет. Вам нужно будет покрутиться в своей утилите настройки прошивки, чтобы найти подходящую опцию. Обратите внимание, однако, что запись ubuntu в списке заказов на загрузку скорее всего исчезнет, ​​поэтому вам может потребоваться добавить ее вручную или запустить Boot Repair, чтобы полностью переустановить GRUB. Обновите свою прошивку. Если вам повезет, производитель вашего компьютера, возможно, выпустил обновление прошивки (возможно, называемое «обновлением BIOS» на своем сайте), которое устраняет эту проблему. Вы можете попробовать установить его, а затем попытаться снова установить порядок загрузки. Иногда это уничтожит параметры загрузки, как и предыдущее исправление, поэтому вам может потребоваться вручную добавить параметр загрузки или запустить Boot Repair. Верните свой дефектный компьютер для возврата денег. Если ни один из предыдущих вариантов не помогает, и если компьютер достаточно новый, я рекомендую вернуть его в магазин для возврата. У изготовителей были ГОДЫ, чтобы исправить эту самую основную ошибку, поэтому я не могу рекомендовать давать ваши деньги производителю, который не исправил эту проблему. Конечно, у вас может не быть возможности вернуть сломанный компьютер для возврата, если вы купили его месяцами или годами назад, поэтому ... Скопируйте GRUB в резервную позицию - компьютеры на базе EFI должны загрузиться с резервного имени файла, EFI/BOOT/bootx64.efi (без учета регистра) в системном разделе EFI (ESP), если никакая другая загрузочная запись не действительна. Таким образом, вы можете скопировать GRUB (или Shim, если активна активная загрузка) в это место, чтобы заставить загрузку работать. Для этого смонтируйте ESP где-то удобно в аварийной системе, скопируйте EFI/ubuntu в этой точке монтирования в EFI/BOOT в той же точке монтирования и переименуйте EFI/BOOT/shimx64.efi в EFI/BOOT/bootx64.efi. (Вместо этого вы можете переименовать grubx64.efi в bootx64.efi, если вы уверены, что загружаетесь с отключенной защищенной загрузкой.) Это должно заставить систему загружаться, но последующие обновления GRUB или Shim не будут установлены надлежащим образом, если вы не вручную повторите этот шаг. Используйте fbx64.efi - Программа fallback.efi / fbx64.efi предназначена для помощи в вашей ситуации. Если эта программа установлена ​​с использованием резервного имени файла, она будет искать файлы .CSV в подкаталогах EFI и, если они будут найдены, прочитает их содержимое и будет использовать их для воссоздания соответствующих загрузочных записей и переноса их на вверху порядка загрузки. Shim также запустит соответствующий файл fbx64.efi, если он присутствует, поэтому вы можете скопировать shimx64.efi в EFI/BOOT/bootx64.efi и поместить fbx64.efi в EFI/BOOT, чтобы он работал с включенной защищенной загрузкой. Настройка этого вручную - это больнее, чем копирование GRUB в резервное имя файла, но в некоторых отношениях это немного более чистое решение. IIRC, Ubuntu 17.10 следует установить это автоматически, но на вашем исправлении Boot Repair недостаточно данных, чтобы убедиться, что это так в вашей системе. (К сожалению, Boot Repair не имеет надлежащей поддержки для дисков NVMe.)
0
ответ дан 24 July 2018 в 18:02
  • 1
    Не могли бы вы объяснить команду, тем более, что ссылки пасты истекли? – Old Badman Grey 11 December 2017 в 05:41

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

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