Доброго времени суток! В данной статье мы расскажем, как обновить nanobsd инсталляцию pfSense версии 2.3.4 на полный релиз новой pfSense версии 2.4.0. Важно! Данная статья относится только к 64-битным инсталляциям pfSense. Владельцы 32-битных инсталляций на устройствах семейства ALIX более не будут получать номерных обновлений pfSense (последняя актуальная 32-бит версия - pfSense 2.3.4), но еще в течение года будут получать обновления определений безопасности и найденных уязвимостей системы.
Мы же проведем этот мануал на платформе APU. Итак, поехали:
1. Проверяем с какого раздела грузится наш роутер.
- Заходим в Diagnostics > NanoBSD
- Находим Bootup Slice
- Запоминаем имя диска. Это несколько символов перед 's1' или 's2' (напр. ada0, da0, sda0 итп.). Далее в тексте мануала будет использоваться 'XXXs1' или 'XXXs2', Вам нужно будет подставлять имя своего диска вместо XXX.
- Если Bootup Slice заканчивается на s1, то переходим сразу к следующему разделу мануала.
- Если Bootup Slice заканчивается на s2, это значит, что ОС грузится со второго раздела диска. Меняем это с помощью следующих шагов:
- Нажимаем Duplicate XXXs2 -> XXXs1
- Нажимаем Switch Slice для изменения раздела загрузки на XXXs1
- Перезагружаем устройство через Diagnostics > Reboot.
2. Меняем репозиторий обновлений.
- Переходим в Sysyem > Update, вкладка Update Settings
- Выбираем Next Major Version (2.4) из списка Branch
- Сохраняем Save
3. Меняем название для пакета обновления
- Подключаемся к устройству через SSH
- Выбираем пункт 8
- Выполняем следующие команды:
pkg set -y -o security/pfSense-base-nanobsd:security/pfSense-base pfSense-base-nanobsd pkg set -y -n pfSense-base-nanobsd:pfSense-base pfSense-base-nanobsd_ 4. Меняем платформу
- Меняем тип платформы, выполнив команду в shell
echo pfSense > /etc/platform_ 5. Меняем конфигурацию файловой системы
На этом этапе второй и конфигурационный разделы должны быть удалены, а первый раздел займет все место хранилища. Все команды выполняются в shell через ssh.
sed -i .bkp -e 's/ro,sync/rw/' /etc/fstab_ gpart delete -i 2 XXX
_
- Подготавливаем файловую систему, чтобы она разрослась на весь диск после ребута
touch /root/force_growfs
_
- Перемещаем конфигурационный раздел на основной
mkdir -p /mnt/cf
sed -i '' -e 's,[[:blank:]]/cf, /mnt/cf,' /etc/fstab
umount -f /cf
mount /mnt/cf
cp -Rp /mnt/cf/* /cf
sync; sync
umount -f /mnt/cf
_
- Удаляем конфигурационный раздел
gpart delete -i 3 XXX
_
sed -i -e '//mnt/cf/d' /etc/fstab
_
- Убеждаемся, что первый раздел активен и является загрузочным
gpart set -a active -i 1 /dev/XXX boot0cfg -s 1 /dev/XXX
_6. Запускаем обновление
Обновление так же запускаем, подключившись по ssh к устройству и выбрав 13й пункт меню.
7. Использование оперативной памяти для снижения циклов записи на основном хранилище
- Переходим в System > Advanced, вкладка Miscellaneous
- Отмечаем Use RAM disks
- Настраиваем размер временных директорий /tmp и /var в соответствии с размером оперативной памяти устройства