Есть такая очень полезная утилита nextboot. Это очень хорошая программа, которая позволяет загрузится с другим ядром ОДИН раз. Если сервер будет перезагружен — снова загрузится наша старая система. Настроек в ней не так много.
Примечание:
Для zfs (если загрузочный раздел расположен на zpool) существует соответствующая команда zfsbootcfg (доступна, начиная с 11.1)
Что бы ею воспользоваться, создаём файл /boot/nextboot.conf такого содержания:
nextboot_enable="YES"
kernel="kernel.new"
vfs.root.mountfrom="ufs:/dev/ad0s1a"
или можно ввести такую команду:
#nextboot -D && nextboot -o vfs.root.mountfrom=ufs:/dev/ad0s1a -k kernel.new
где ключ -D сбрасывает конфигурацию nextboot, если она уже была. -o vfs.root.mountfrom указывает, где находится корневой раздел. Естественно, вместо ad0s1a должен быть указан ваш диск\раздел, а -k — путь к ядру относительно /boot/.
На самом деле команда создаёт тот самый файл и просто наполняет его нужными параметрами.
Подробнее можно прочесть в man nextboot
Примечание.
Начиная с версии 10.1 в загрузчике появилась возможность выбора загружаемого ядра (цифра 5), поэтому nextboot уже начинает терять смысл для новых версий FreeBSD.
Замечал, что если сервер выключить некорректно, то файл nextboot не удаляется после первой попытки загрузится. Как результат, получаем незагружаемую ОС, если что-то пойдет не так.
Опубликовано с разрешения редакции журнала RootUA и газеты FOSS News