Апгрейд nas4free с 10.x на 10.3, Finch chroot, ПОСЛЕ апгрейда хоста

Jul 27, 2016 22:47

Разработчик Finch предлагает два варианта апгрейда. Один - полностью после апгрейда хоста, другой - частично до, частично после. По мне так проще делать одним куском - тогда работы "до" отпадают. ВНИМАНИЕ процесс небыстрый, у меня занял ~2 часа

Поехали - Finch chroot
1. Заходим в chroot

nas4free // root~$ finch chroot

2. пишет - пора апгрейдиться

* The FreeBSD kernel on the host system: FreeBSD-amd64-10.3-RELEASE
* Version of FreeBSD installed on finch: FreeBSD-amd64-10.2-RELEASE

3. подставляем желаемую новую версию (нам её сказали в предложении апгрейдиться чуть выше), переопределяем временно имя версии, чтобы дало апгрейдиться, запускаем апдейт - это надолго, порядка часа.

nas4free // root^> new_release="10.3-RELEASE"
nas4free // root^> uname_override on
nas4free // root^> freebsd-update -r "$new_release" upgrade

Думает, потом сразу задаёт вопрос о нестандартном ядре nas4free

WARNING: This system is running a "nas4free-x64" kernel, which is not a
kernel configuration distributed as part of FreeBSD 10.2-RELEASE.
This kernel will not be updated: you MUST update the kernel manually
before running "/usr/sbin/freebsd-update install".

The following components of FreeBSD seem to be installed:
kernel/generic src/src world/base world/doc world/games world/lib32

The following components of FreeBSD do not seem to be installed:

Does this look reasonable (y/n)? y

Это нормально, Жмём y
...ждём...
Через несколько минут начинает выяснять, какие нужны патчи
10...20...30...
У меня было 40.000 с хвостом. Так как на экране что-то происходит, беспокойства не вызывает. Я как раз смотрел кино с этого смого NAS через Plex на этом самом finch, иногда поглядывая на экран. Займитесь чем-то подобным.

4. Разобравшись что патчить, начинает качать. Терпение, терпение

Applying patches... done.
Fetching 11257 files... done.
Attempting to automatically merge changes in files... done.

5. Один-единственный файл система не смогла объединить автоматически - старый и новый файл hosts
The following file could not be merged automatically: /etc/hosts
Press Enter to edit this file in nano and resolve the conflicts
manually...

Просит это сделать ручками и открывает в nano следующий текст
[Объединение файлов hosts]
<<<<<<< current version
::1 localhost localhost.local
127.0.0.1 localhost localhost.local
192.168.1.34 nas4free.local nas4free
=======
# $FreeBSD: releng/10.1/etc/hosts 109997 2003-01-28 21:29:23Z dbaker $
#
# Host Database
#
# This file should contain the addresses and aliases for local hosts that
# share this file. Replace 'my.domain' below with the domainname of your
# machine.
#
# In the presence of the domain name service or NIS, this file may
# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
#
#
::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain
#
# Imaginary network.
#10.0.0.2 myname.my.domain myname
#10.0.0.3 myfriend.my.domain myfriend
#
# According to RFC 1918, you can use the following IP networks for
# private nets which will never be connected to the Internet:
#
# 10.0.0.0 - 10.255.255.255
# 172.16.0.0 - 172.31.255.255
# 192.168.0.0 - 192.168.255.255
#
# In case you want to be able to connect to the Internet, you need
# real official assigned numbers. Do not try to invent your own network
# numbers but instead get one from your network provider (if any) or
# from your regional registry (ARIN, APNIC, LACNIC, RIPE NCC, or AfriNIC.)
#
>>>>>>> 10.1-RELEASE


К счастью здесь строки, начинающиеся с # - комментарии. Я посмотрел на те, что без знака комментария и решил, что три строки вначале, а именно
::1 localhost localhost.local
127.0.0.1 localhost localhost.local
192.168.1.34 nas4free.local nas4free

- соответствуют моим пожеланиям. Да, у меня задан домен local и nas называется nas4free с IP 192.168.1.34 Эти строки я не трогал. У вас они могут быть чуть другими.
А вот две строки-аналога в середине текста, а именно
::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain

Выглядят как шаблон общего вида. Их я закомментировал, добавив в начале #, то есть
#::1 localhost localhost.my.domain
#127.0.0.1 localhost localhost.my.domain

Теперь выходим из nano с сохранением (жмём Ctrl-X, затем Y). Процесс продолжается.

Дальше у меня спросил разрешить конфликт с rc.shutdown, причём система сама справилась, просила утвердить сделаное. При апгрейде с 10.3 до 11.0 было больше предложений утвердить сделанное - все утвердил.

6. Минут через 10-15 систему можно побеспокоить, нажав Enter. В ответ выплёвывает либо пустые строки с ~ в начале, после этих строк END. Тогда снова ждём. Либо с более осмысленным текстом - именами неких файлов. Тогда процесс подходит к концу и можно с интервалом минуту-другую предлагать заканчивать, набирая

:q

Не знаю, может и можно не набирать - но руки-то чешутся :)

Нам предлагают установь скачанное - что и делаем.
To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
nas4free // root^> /usr/sbin/freebsd-update install

7. процесс скачки патчей заканчивается предложением закончить их установку после замены ядра и ребута.

Installing updates...
Kernel updates have been installed. Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.

Но ребут не нужен, ядро и так уже новое. Просто отключаем сделанную с 3 пункте маскировку сего факта.
nas4free // root^> uname_override off

8. И завершаем установку апдейтов. Видно, что ниже будут предупреждения о возможных ошибках. Разработчик рекомендует их игнорировать.
nas4free // root^> freebsd-update install
Installing updates...

Installing updates...ln: ///.cshrc: No such file or directory

Completing this upgrade requires removing old shared object files.
Please rebuild all installed 3rd party software (e.g., programs
installed from the ports tree) and then run "/usr/sbin/freebsd-update install"
again to finish installing updates.

9. Видим предложение системы пересобрать весь софт, установленный через дерево портов и ещё раз запустить апдейт.

И разработчик также рекомендует принудительный ребилд установленных портов. Так и делаем

nas4free // root^> portmaster -f

Система нам сообщает

===>>> No /usr/ports//root exists, and no information
===>>> about /root can be found in /usr/ports/MOVED

pkg: Warning: Major OS version upgrade detected. Running "pkg-static install -f pkg" recommended
===>>> No valid installed port, or port directory given
===>>> Try portmaster --help

То есть у меня портов нет - и славно. Перестраивать нечего. Если у вас иначе - действуйте как выше рекомендовала система.

10. А у меня она хочет обновить менеджер пакетов, что и делаем
nas4free // root^> pkg-static install -f pkg

На все вопросы - соглашаемся.
Затем
nas4free // root^> pkg update
nas4free // root^> pkg upgrade

На все вопросы - соглашаемся.

11. Обновляем  qjail
nas4free // root^> qjail update -b
Прим. qjail stop если ругается на запущенные клетки

По этой команде qjail убивает старый мир и копирует из chroot. Занимает секунды.

В конце qjail сообщает что надо апгрейдить версии конфигов - так и делаю

qjail update -u
Прим для апгрейда на 11.0 команда оказалась излишней - но не повредит, если ошибочно введёте.

12. Убиваем возможные остатки старого финча
nas4free // root^> rm -rf /var/distfiles/finch

14. Записываем текущую версию финча
echo "FreeBSD-`uname -m`-`uname -r | cut -d- -f1-2`" > "/var/db/finch/installed"

15. Выходим из chroot
exit

16. Перезапускаем finch

nas4free // root~$ finch stop
Stopping finch.
Stopping cron.
Waiting for PIDS: 3622.
Stopping plexmediaserver.
Waiting for PIDS: 3606, 3606.
Cleaning up leftover child processes.
Waiting for PIDS: 3860, 3860.
nas4free // root~$ finch start
Starting finch.
Jail successfully started  owncloud
Jail successfully started  tm
Starting plexmediaserver.
Starting cron.

17. Проверяю Plex - работает

БИНГО!

chroot, nas, nas4free

Previous post Next post
Up