nas4free FreeBSD 11 апргейд - одержание "The update metadata is correctly signed, but failed..."

Nov 11, 2016 22:27

Как я писал в предыдущем посте, уткнулся в проблемку с апгрейдом на nas4free chroot и jail до текщей версии FreeBSD 11.0-RELEASE. Удалось преодолеть.

Finch chroot.

Апгрейд 10.3-> 11.0 проводится практически так же как было описано для 10.x -> 10.3

C важным НО. Если сразу дать команды
nas4free11test // root^> new_release="11.0-RELEASE"
nas4free11test // root^> uname_override on
nas4free11test // root^> freebsd-update -r "$new_release" upgrade

- то вываливается с сообщением, вынесенным в заголовок. Полный выхлоп
[под катом]nas4free11test // root^> new_release="11.0-RELEASE"
nas4free11test // root^> uname_override on
nas4free11test // root^> freebsd-update -r "$new_release" upgrade
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching public key from update4.freebsd.org... done.
Fetching metadata signature for 10.3-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.

WARNING: This system is running a "nas4free-x64" kernel, which is not a
kernel configuration distributed as part of FreeBSD 10.3-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/lib32

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

Does this look reasonable (y/n)? y

Fetching metadata signature for 11.0-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata patches. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.

The update metadata is correctly signed, but
failed an integrity check.
Cowardly refusing to proceed any further.


Решение нагуглилось и состоит в том, что сперва софт в chroot надо апдейтить до последней версии 10.3, как и описано во FreeBSD Handbook.

# freebsd-update fetch
# freebsd-update install

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

По результатам Plex в chroot сохраняет работоспособность.

Jails aka клетки.

Здесь хитрее. Разработчик, alexey123 предусмотрел механизм для мажорного апгрейда клеток. В вариантах до и после апгрейда хост системы. Но во всех вариантах я получил отлуп, заканчивающийся знакомым

The update metadata is correctly signed, but
failed an integrity check.
Cowardly refusing to proceed any further.

Апдейт до самой свежей версии 10.3 софта клетки не помог.

Была надежда, что, если его сделать изнутри клетки руками
# freebsd-update fetch
# freebsd-update install

то TheBrig сможет апгрейд сделать. С одной стороны, при ручном апдейте якобы уже обновлённой клетки что-то качалось и патчилось (аргумент в пользу гипотезы, что в TheBrig требуется что-то подправить напильником). Корявый и долгий, но выход нашёлся. Изнутри клетки сработала та же команда, которой обновлял chroot
freebsd-update -r 11.0-RELEASE upgrade

Существенно добавляет трудоёмкости этому варианту то, что придётся снимать chflags у тех компонентов, которые надо заменять. На всякий случай приведу список. (NB К сожалению, в хосте nas4free freebsd-update нет, выпилен. Так что по науке, из хоста не апдейтить.)

[на что ругается с chflags]root@plex:/ # /usr/sbin/freebsd-update install
src component not installed, skipped
Installing updates...chflags: ///bin/rcp: Operation not permitted
chflags: ///lib/libc.so.7: Operation not permitted
chflags: ///lib/libcrypt.so.5: Operation not permitted
chflags: ///lib/libthr.so.3: Operation not permitted
chflags: ///libexec/ld-elf.so.1: Operation not permitted
chflags: ///libexec/ld-elf32.so.1: Operation not permitted
chflags: ///sbin/init: Operation not permitted
chflags: ///usr/bin/chfn: Operation not permitted
chflags: ///usr/bin/chpass: Operation not permitted
chflags: ///usr/bin/chsh: Operation not permitted
chflags: ///usr/bin/crontab: Operation not permitted
chflags: ///usr/bin/login: Operation not permitted
chflags: ///usr/bin/opieinfo: Operation not permitted
chflags: ///usr/bin/opiepasswd: Operation not permitted
chflags: ///usr/bin/passwd: Operation not permitted
chflags: ///usr/bin/rlogin: Operation not permitted
chflags: ///usr/bin/rsh: Operation not permitted
chflags: ///usr/bin/su: Operation not permitted
chflags: ///usr/bin/ypchfn: Operation not permitted
chflags: ///usr/bin/ypchpass: Operation not permitted
chflags: ///usr/bin/ypchsh: Operation not permitted
chflags: ///usr/bin/yppasswd: Operation not permitted
chflags: ///usr/lib/libcrypt.so: Operation not permitted
chflags: ///usr/lib/librt.so.1: Operation not permitted
chflags: ///usr/lib/libthr.so: Operation not permitted
chflags: ///usr/lib32/libc.so.7: Operation not permitted
chflags: ///usr/lib32/libcrypt.so.5: Operation not permitted
chflags: ///usr/lib32/librt.so.1: Operation not permitted
chflags: ///usr/lib32/libthr.so.3: Operation not permitted
chflags: ///bin/rcp: Operation not permitted
chflags: ///lib/libc.so.7: Operation not permitted
chflags: ///lib/libcrypt.so.5: Operation not permitted
chflags: ///lib/libthr.so.3: Operation not permitted
chflags: ///libexec/ld-elf.so.1: Operation not permitted
chflags: ///libexec/ld-elf32.so.1: Operation not permitted
chflags: ///sbin/init: Operation not permitted
chflags: ///usr/bin/chfn: Operation not permitted
chflags: ///usr/bin/chpass: Operation not permitted
chflags: ///usr/bin/chsh: Operation not permitted
chflags: ///usr/bin/crontab: Operation not permitted
chflags: ///usr/bin/login: Operation not permitted
chflags: ///usr/bin/opieinfo: Operation not permitted
chflags: ///usr/bin/opiepasswd: Operation not permitted
chflags: ///usr/bin/passwd: Operation not permitted
chflags: ///usr/bin/rlogin: Operation not permitted
chflags: ///usr/bin/rsh: Operation not permitted
chflags: ///usr/bin/su: Operation not permitted
chflags: ///usr/bin/ypchfn: Operation not permitted
chflags: ///usr/bin/ypchpass: Operation not permitted
chflags: ///usr/bin/ypchsh: Operation not permitted
chflags: ///usr/bin/yppasswd: Operation not permitted
chflags: ///usr/lib/libcrypt.so: Operation not permitted
chflags: ///usr/lib/librt.so.1: Operation not permitted
chflags: ///usr/lib/libthr.so: Operation not permitted
chflags: ///usr/lib32/libc.so.7: Operation not permitted
chflags: ///usr/lib32/libcrypt.so.5: Operation not permitted
chflags: ///usr/lib32/librt.so.1: Operation not permitted
chflags: ///usr/lib32/libthr.so.3: Operation not permitted


Запускать апдейт надо ещё на старой версии хоста, на 10.3 в нашем случае. Такая процедура ручного обновления очень долгая и для одной клетки. И если клеток несколько - можно поседеть обновлямши. Так что я написал разработчику, найдёт время - займётся. Сейчас у Алексея, к сожалению, жёсткий дефицит времени. Пока же спокойно можно (варианты в порядке моего мнения о снижении предпочтительности )
- не спешить обновляться до 11.0-RELEASE, тем более, что доступна только БЕТА сборка nas4free 11
- создать клетку под хостом на 11.0-RELEASE, поставить софт, тот же plex, и перенести в неё библиотеки из старой клетки
- неопределённо долго жить с клеткой на 10.3 под хостом на 11.0
- на крайний случай никто не запрещает всё же провести апгрейд вручную, как описано выше.

Так что в сухом остатке у меня для обновления боевого NAS всё оттестировано, кони пьяны, хлопцы запряжёны. Жду только публичную сборку as4free от разработчиков (а из тем временем понесло (смотрю текущие сборки :)

chroot, jail, nas, nas4free

Previous post Next post
Up