Раздел Ubuntu загружается в gnu grub после шифрования с помощью Veracrypt

Задайте PATHявно.

Если вы делаете это из своего сценария, вы можете добавить к текущей настройке $PATH, тогда вы будете уважать все, что там есть, и просто добавите то, что вы хотите убедиться, что оно не пропало:

#!/bin/bash
PATH=$PATH:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin
...

Возможно, было бы более уместно установить PATHв конфигурации crontab (вы можете установить там переменные окружения ), поскольку, по сути, вы работаете над недостатком самого cron, так что, возможно, исправление его в cron имело бы больше смысла, чем изменение вашего скрипта.

Если вы установите его в cron, вам нужно будет завершить настройку PATH, так как вы не можете оттуда ссылаться на его текущее значение:

# my user's crontab
PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin:/usr/local/sbin

0 2 * * * /usr/local/bin/my2amjob.sh

(Вам может понадобиться немного другой порядок каталогов, в зависимости от того, устанавливали ли некоторые из ваших систем или вы сами «переопределения» для более простых версий, установленных в каталогах, которые перечислены ниже в $PATH, но проверьте, что в настоящее время установлено в ваших системах. и посмотрите, сможете ли вы примирить это.)

Надеюсь, это решит вашу проблему.

Should system-wide PATH ever change, I might need to manually update all those lines.

Честно говоря, я бы не слишком беспокоился об этом. Ваши дистрибутивы всегда будут устанавливать свои двоичные файлы в /usr/bin, /usr/sbin, /binили /sbin, поэтому вы всегда сможете получить к ним доступ без каких-либо изменений пути. Дистрибутивы давно поняли, что обновление $PATHдля включения новых каталогов — это кошмар, поэтому они избегали этого, вместо этого добавляя символические ссылки или скрипты-оболочки в основные каталоги bin.

Для программного обеспечения, которое вы устанавливаете самостоятельно и которое рекомендует обновить $PATH, я бы рекомендовал делать то же самое, создавая символические ссылки или скрипты-оболочки в /usr/local/binи избегая изменений в $PATH, если это возможно.


В дистрибутивах Linux также предпринимаются некоторые шаги, чтобы сделать эти различия $PATHпроблемой прошлого.

Во-первых, это/usrпопытка слияния , которая превращает /binв символическую ссылку на /usr/binи /sbinв символическую ссылку на /usr/sbin.Все двоичные файлы устанавливаются под/usr(проще для упаковщиков ), но скрипты, которые по-прежнему ссылаются на них через какой-то абсолютный путь, например /bin/mytoolили /sbin/mytool, будут продолжать работать через символические ссылки. Это было принято дистрибутивами, такими как Fedora и ArchLinux, а другие дистрибутивы, такие как Debian и Ubuntu, в настоящее время проходят этапы внедрения.

ArchLinux, похоже, пошел еще дальше и объединил sbinи binвместе . Таким образом, в современном ArchLinux, где было принято слияние, вы можете обратиться к двоичному файлу по любому из четырех возможных абсолютных путей, и вы их найдете. Остается посмотреть, примут ли другие дистрибутивы это второе слияние.


Наконец, вы можете рассмотреть более современные альтернативы cron. Cron имеет довольно много особенностей, таких как пустая среда, с которой вы работаете, а также использование электронной почты для вывода команды (вместо использования системы ведения журнала )и неудобного экранирования командной строки.

Вы упомянули Ubuntu и ArchLinux, обе из них поддерживают системные таймеры, встроенные -без необходимости установки каких-либо пакетов.

Вы можете проверить вики ArchLinux, где есть отличные статьи о том, как их использовать. В частности, вы можете захотеть проверить , используя systemd Timers в качестве замены cron , который имеет специальные рецепты, которые могут быть очень полезны для вашего конкретного случая использования.

1
11.01.2020, 01:04
2 ответа

Я настроил в BIOS параметры двойной загрузки (в моем случае Поддержка устаревшего режима загрузки ). Из GRUB введите «выход» и выберите диспетчер загрузки Ubuntu в меню параметров загрузки на следующем экране. Мне удалось успешно загрузить Ubuntu.

-2
28.01.2020, 02:12

Что касается шифрования системных томов, Veracrypt может шифровать только системы Windows, работающие в режиме загрузки BIOS. Ссылка на документацию

К сожалению, поскольку файлы, которые Grub использует для загрузки операционных систем Ubuntu и Windows, хранятся в теперь зашифрованном разделе Ubuntu, вам придется выполнить шаги для восстановления загрузочной записи Windows, как описано здесь:Инструкции по восстановлению загрузки Windows . Как только это будет сделано, вы можете использовать Veracrypt из Windows для расшифровки вашего раздела Ubuntu.

После расшифровки вам нужно будет переустановить загрузчик Grub, чтобы снова загрузиться в Ubuntu. Самый простой способ сделать это — загрузиться с установочного носителя Ubuntu, а затем выполнить шаги здесь , чтобы восстановить и переустановить grub в загрузочную запись вашей системы.

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

0
28.01.2020, 02:12

Теги

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