[FreeNAS] Relativ neu mit FreeBSD. Beim Versuch iocage jails upzugraden gab es merge Probleme. Wie löse ich die?

floogy

Member
Hallo,

ich nutze seit einigen Jahren etwas stiefmütterlich FreeNAS. Nun wollte ich es upgraden von 11.2 auf 11.3. Da ich noch einige alte warden jails mitschleppte migrierte ich sie erst mal mit dem entsprechenden migrate_warden.py script zu iocage. Netzprobleme die es gab zog ich in der webUI gerade, so dass ich tatsächlich aller warden jails erfolgreich als iocage jails starten konnte. Danach brachte ich FreeNAS auf 11.3.

Hier ein Thread dazu im FreeNAS-Forum: https://www.ixsystems.com/community...jails-corrupt-jails-and-wrong-versions.87058/

Leider waren also einige der iocage jails danach corrupt. Es stellte sich heraus, dass es die älteren FreeBSD-Systeme wie 9.1-RELEASe und 8.3-RELEASE waren, denen /bin/freebsd-version fehlte. Dieses kopierte ich einfach herüber und ich konnte die jails dann auch flott bekommen.

Beim upgrade dieser Jails gab es dann teilweise Probleme. Insbesondere bei 8.3-RELEASE.

The following file could not be merged automatically: /etc/freebsd-update.conf
Press Enter to edit this file in /usr/bin/vi and resolve the conflicts manually...

Nach dem Enter erscheint dann der Dateiinhalt mit einem diff Format (mergemaster?) das ich nicht kenne.
Code:
pluginjail# cat freebsd-update.conf
<<<<<<< current version
# $FreeBSD: releng/8.3/etc/freebsd-update.conf 196393 2009-08-19 21:01:32Z simon $
=======
# $FreeBSD: releng/11.2/etc/freebsd-update.conf 257694 2013-11-05 09:30:06Z glebius $
>>>>>>> 11.2-RELEASE

# Trusted keyprint.  Changing this is a Bad Idea unless you've received
# a PGP-signed email from <security-officer@FreeBSD.org> telling you to
# change it and explaining why.
KeyPrint 800651ef4b4c71c27e60786d7b487188970f4b4169cc055784e21eb71d410cc5

# Server or server pool from which to fetch updates.  You can change
# this to point at a specific server if you want, but in most cases
# using a "nearby" server won't provide a measurable improvement in
# performance.
ServerName update.FreeBSD.org

# Components of the base system which should be kept updated.
Components src world

# Example for updating the userland and the kernel source code only:
# Components src/base src/sys world

# Paths which start with anything matching an entry in an IgnorePaths
# statement will be ignored.
IgnorePaths

# Paths which start with anything matching an entry in an IDSIgnorePaths
# statement will be ignored by "freebsd-update IDS".
IDSIgnorePaths /usr/share/man/cat
IDSIgnorePaths /usr/share/man/whatis
IDSIgnorePaths /var/db/locate.database
IDSIgnorePaths /var/log

# Paths which start with anything matching an entry in an UpdateIfUnmodified
# statement will only be updated if the contents of the file have not been
# modified by the user (unless changes are merged; see below).
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile

# When upgrading to a new FreeBSD release, files which match MergeChanges
# will have any local changes merged into the version from the new release.
MergeChanges /etc/ /boot/device.hints

### Default configuration options:

# Directory in which to store downloaded updates and temporary
# files used by FreeBSD Update.
# WorkDir /var/db/freebsd-update

# Destination to send output of "freebsd-update cron" if an error
# occurs or updates have been downloaded.
# MailTo root

# Is FreeBSD Update allowed to create new files?
# AllowAdd yes

# Is FreeBSD Update allowed to delete files?
# AllowDelete yes

# If the user has modified file ownership, permissions, or flags, should
# FreeBSD Update retain this modified metadata when installing a new version
# of that file?
# KeepModifiedMetadata yes

# When upgrading between releases, should the list of Components be
# read strictly (StrictComponents yes) or merely as a list of components
# which *might* be installed of which FreeBSD Update should figure out
# which actually are installed and upgrade those (StrictComponents no)?
# StrictComponents no

# When installing a new kernel perform a backup of the old one first
# so it is possible to boot the old kernel in case of problems.
# BackupKernel yes

# If BackupKernel is enabled, the backup kernel is saved to this
# directory.
# BackupKernelDir /boot/kernel.old

# When backing up a kernel also back up debug symbol files?
# BackupKernelSymbolFiles no

Wenn ich ein upgrade des Jails versuche, misslingt das wegen dieser Dateien, die ich unverändert mit ESC :q quittierte.

Code:
root@floogy:~ # iocage upgrade -r 11.3-RELEASE pluginjail
/tmp/tmpptxjbt5w: config_<<<<<<<: not found
Error processing configuration file, line 1:
==> <<<<<<< current version
Command: /tmp/tmpptxjbt5w -b /mnt/datapool/iocage/jails/pluginjail/root -d /mnt/datapool/iocage/jails/pluginjail/root/var/db/freebsd-update/ -f /mnt/datapool/iocage/jails/pluginjail/root/etc/freebsd-update.conf --not-running-from-cron --currently-running 8.3-RELEASE -r 11.3-RELEASE upgrade failed!

root@floogy:~ # iocage console pluginjail
Last login: Wed Aug 26 00:55:38 on pts/4
FreeBSD 11.3-RELEASE-p11 (FreeNAS.amd64) #0 r325575+fb17f3e15b8(HEAD): Tue Jul 28 11:09:10 EDT 2020

Welcome to FreeBSD!
[...]
pluginjail# freebsd-version
11.2-RELEASE-p15
pluginjail#  exit

root@floogy:~ # iocage list
+-----+-------------+-------+--------------+---------------+
| JID |    NAME     | STATE |   RELEASE    |      IP4      |
+=====+=============+=======+==============+===============+
| 2   | FAMP        | up    | 11.0-RELEASE | DHCP          |
+-----+-------------+-------+--------------+---------------+
| 21  | dlna_1      | up    | 9.1-RELEASE  | 172.16.240.19 |
+-----+-------------+-------+--------------+---------------+
| 25  | firefly_1   | up    | 11.0-RELEASE | 172.16.240.23 |
+-----+-------------+-------+--------------+---------------+
| 8   | nextcloud   | up    | 11.3-RELEASE | DHCP          |
+-----+-------------+-------+--------------+---------------+
| 26  | nextcloud_1 | up    | 10.3-RELEASE | 172.16.240.16 |
+-----+-------------+-------+--------------+---------------+
| 18  | pluginjail  | up    | 8.3-RELEASE  | 172.16.240.25 |
+-----+-------------+-------+--------------+---------------+

Was auch auffällt ist der Versions missmatch zwischen freebsd-version, motd, und iocage list in FreeNAS.

Wie behandelt man diese "merge-Dateien" nun?

Ich habe folgende:
Code:
pluginjail# egrep -nr "<<<<<<<|>>>>>" /etc
/etc/network.subr:25:<<<<<<< current version
/etc/network.subr:29:>>>>>>> 11.2-RELEASE
/etc/network.subr:1805:<<<<<<< current version
/etc/network.subr:1892:>>>>>>> 11.2-RELEASE
/etc/network.subr:1894:<<<<<<< current version
/etc/network.subr:1922:>>>>>>> 11.2-RELEASE
/etc/mail/submit.cf:12:<<<<<<< current version
/etc/mail/submit.cf:16:>>>>>>> 11.2-RELEASE
/etc/mail/submit.cf:24:<<<<<<< current version
/etc/mail/submit.cf:29:>>>>>>> 11.2-RELEASE
/etc/mail/submit.cf:38:<<<<<<< current version
/etc/mail/submit.cf:48:>>>>>>> 11.2-RELEASE
/etc/mail/sendmail.cf:12:<<<<<<< current version
/etc/mail/sendmail.cf:16:>>>>>>> 11.2-RELEASE
/etc/mail/sendmail.cf:24:<<<<<<< current version
/etc/mail/sendmail.cf:29:>>>>>>> 11.2-RELEASE
/etc/mail/sendmail.cf:41:<<<<<<< current version
/etc/mail/sendmail.cf:45:>>>>>>> 11.2-RELEASE
/etc/mail/freebsd.cf:12:<<<<<<< current version
/etc/mail/freebsd.cf:16:>>>>>>> 11.2-RELEASE
/etc/mail/freebsd.cf:24:<<<<<<< current version
/etc/mail/freebsd.cf:29:>>>>>>> 11.2-RELEASE
/etc/mail/freebsd.cf:41:<<<<<<< current version
/etc/mail/freebsd.cf:45:>>>>>>> 11.2-RELEASE
/etc/mail/aliases:7:#   >>>>>>>>>>      The program "newaliases" must be run after
/etc/mail/aliases:9:#   >>>>>>>>>>      show through to sendmail.
/etc/mail/freebsd.submit.cf:12:<<<<<<< current version
/etc/mail/freebsd.submit.cf:16:>>>>>>> 11.2-RELEASE
/etc/mail/freebsd.submit.cf:24:<<<<<<< current version
/etc/mail/freebsd.submit.cf:29:>>>>>>> 11.2-RELEASE
/etc/mail/freebsd.submit.cf:38:<<<<<<< current version
/etc/mail/freebsd.submit.cf:48:>>>>>>> 11.2-RELEASE
/etc/aliases:7:#        >>>>>>>>>>      The program "newaliases" must be run after
/etc/aliases:9:#        >>>>>>>>>>      show through to sendmail.
/etc/rc.subr:2:#<<<<<<< current version
/etc/rc.subr:7:#>>>>>>> 11.2-RELEASE
/etc/group:1:<<<<<<< current version
/etc/group:5:>>>>>>> 11.2-RELEASE
/etc/passwd:1:<<<<<<< current version
/etc/passwd:5:>>>>>>> 11.2-RELEASE
/etc/rc.d/routing:5:<<<<<<< current version
/etc/rc.d/routing:9:>>>>>>> 11.2-RELEASE
/etc/rc.d/routing:311:<<<<<<< current version
/etc/rc.d/routing:333:>>>>>>> 11.2-RELEASE
/etc/rc.d/sshd:3:<<<<<<< current version
/etc/rc.d/sshd:7:>>>>>>> 11.2-RELEASE
/etc/rc.d/sshd:79:<<<<<<< current version
/etc/rc.d/sshd:102:>>>>>>> 11.2-RELEASE
/etc/rc.d/sshd:107:<<<<<<< current version
/etc/rc.d/sshd:127:>>>>>>> 11.2-RELEASE
/etc/rc.d/nsswitch:26:<<<<<<< current version
/etc/rc.d/nsswitch:30:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:3:<<<<<<< current version
/etc/rc.d/jail:7:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:126:<<<<<<< current version
/etc/rc.d/jail:226:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:240:<<<<<<< current version
/etc/rc.d/jail:260:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:262:<<<<<<< current version
/etc/rc.d/jail:334:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:337:<<<<<<< current version
/etc/rc.d/jail:381:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:597:<<<<<<< current version
/etc/rc.d/jail:628:>>>>>>> 11.2-RELEASE
/etc/rc.d/jail:691:<<<<<<< current version
/etc/rc.d/jail:760:>>>>>>> 11.2-RELEASE
/etc/shells:1:<<<<<<< current version
/etc/shells:5:>>>>>>> 11.2-RELEASE
/etc/master.passwd:1:<<<<<<< current version
/etc/master.passwd:5:>>>>>>> 11.2-RELEASE
/etc/freebsd-update.conf:1:<<<<<<< current version
/etc/freebsd-update.conf:5:>>>>>>> 11.2-RELEASE


Was ich dazu bisher recherchiert habe:

Trying to upgrade base FreeBSD version of jail -- Having problems with merge conflicts
https://www.reddit.com/r/freenas/comments/er6ipu/trying_to_upgrade_base_freebsd_version_of_jail/

Is there any way I can avoid manually resolving hundreds of merge
conflicts of the following type while using freebsd-update ? <<<<<<< current version
http://freebsd.1045724.x6.nabble.com/freebsd-update-td5878362.html

freebsd-update from 8.3-RELEASE to 9.0-RELEASE: How to deal with dozens of diffs?
https://nint.us/1761372

How To Find Out FreeBSD Version and Patch Level Number
https://www.cyberciti.biz/faq/how-to-find-out-freebsd-version-and-patch-level-number/
 
Zurück
Oben