Можно ли запустить скрипт "запуска" при загрузке в однопользовательском режиме? Мне нужно иметь возможность загрузиться в однопользовательском режиме, запустить мой скрипт, а затем перезагрузиться в многопользовательском режиме без какого-либо вмешательства человека.
Я провел кучу исследований и не могу найти ничего, что было бы ясно по теме, хотя, конечно, я мог бы заменить что-то еще, что работает, с оболочкой, которая также запускает мой скрипт, но я бы предпочел сделать это в каким-то официальным способом. В идеале решение будет работать во FreeBSD 6 и выше, но я готов принимать только новые версии, если их просто нет в старых версиях.
РЕДАКТИРОВАТЬ: В ответ на комментарии я на самом деле хочу сделать две вещи, обе из которых, вероятно, возможны без однопользовательского режима, но гораздо проще контролировать все переменные в однопользовательском режиме, если это вообще возможно:
Увеличьте файловую систему в установке vmware (я успешно использовал эти инструкции вручную).
Обнулить свободное пространство во всех файловых системах (в данном случае это необходимо для подготовки виртуальной машины к экспорту). Опять же, мне для этого не нужен однопользовательский режим, но это упростит задачу.
Конечно, это не совсем проблемы с виртуальными машинами, а вещи, которые я хотел бы делать в целом. Тот факт, что эти системы принадлежат VMware, не особенно важен, и я не хотел сбивать людей с толку, запутывая их этим фактом (некоторые люди, кажется, немного сходят с ума, когда упоминается виртуализация, но в большинстве случаев это не имеет значения).
EDIT2: Независимо от моих текущих причин, если у кого-то есть предложения о том, как это сделать (даже взломы, если нет официальных способов), отправьте их в качестве ответа.
В однопользовательском режиме FreeBSD не выполняется ничего, кроме того, что вы вводите для «оболочки» в командной строке. Вы можете написать что-то, что выполняло бы то, что вам нужно, в простом старом bourne и заставить его выполнить это, но для этого по-прежнему требуется, чтобы вы вводили что-то в CLI. Вы потенциально можете взломать / sbin / init и предоставить эту строку для автозапуска в однопользовательском режиме.
/usr/src/sbin/init/init.c Начиная со строки 629, функция single_user () - это то, что вы хотите изменить, в частности, значение 'shell' и раздел, в котором она запрашивает ее в интерактивном режиме.