linker.hints in freebsd-update

danvari

Well-Known Member
Hey :),
ich habe aktuell ein "Problem" mit freebsd-update. Ich habe ein ganz normales FreebSD 9.1 am Laufen und möchte ein Update mittels freebsd-update machen. Allerdings weist mich freebsd-update immer wieder darauf hin, dass die Datei

Code:
/boot/kernel/linker.hints

aktualisiert werden muss:

Code:
froot@freebsd:/home/sts # freebsd-update fetch
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 9.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

The following files will be updated as part of updating to 9.1-RELEASE-p3:
/boot/kernel/linker.hints

Auf der Mailingliste freebsd-questions habe ich auch einen getroffen, der das gleiche Problem hat. Es wird auf folgenden Link verwiesen:

http://forums.freebsd.org/showthread.php?p=8367

Dabei soll man /boot/kernel unter anderem in IgnorePaths von freebsd-update setzen. Da ist jetzt natürlich die Frage, ob hier der Kernel auch weiterhin geupdated wird ?!

Habt ihr das gleiche Problem?
 
vielleicht gucke ich falsch, wo ist das Problem?
Meldet freebsd-update das nur und macht es dann nicht?
Die Meldung darüber, was denn upgedatet wird, empfinde ich als vollkommen normal und sehe etwas in der Art jedes mal.
 
^^ ja vielleicht hatte ich mich falsch ausgedrückt: Entweder er aktualisiert die linker.hints nicht oder sie wird von meinem System danach wieder überschrieben. Auf jeden Fall kann ich beliebig oft freebsd-update fetch install aufrufen und jedesmal möchte er die linker.hints aktualisieren.
 
Na und?
Entschuldige bitte, aber vielleicht muss das so sein?
Keine Ahnung. Ich nutze FreeBSD8.x auf diesem PC und bin dabei, mittels freebsd-update das System zur kommenden 8.4RELEASE zu heben. Das bedeutet, dass ich in den letzten Wochen mehrfach upgrades (-r) mittels freebsd-update machte und bei derartigen Meldungen war ich da nie beunruhigt.

Entscheidend ist doch, wie es weiter geht.
Kommt dann ein Abbruch, gibt es Fehler?
Dass er die linker.hints aktualisieren will, ist doch nur eine Meldung, kein Fehler. Wenn er das will, dann lass ihn halt.
Ich weiß es nicht. Bei mir gibt es die Datei auch und die ist vom 08.03. und das ist zufällig das Datum des letzten freebsd-updates und auch das Datum des letzten Bootens mit diesem PC, nach dem freebsd-update.
Deshalb weiß ich nicht, ob die jedes mal von freebsd-update aktualisiert wird, oder sogar bei jedem booten?

Wie auch immer, diese Meldung ist keine Fehlermeldung.
Was macht also freebsd-update weiter?
 
Naja nichts halt, darum geht es ja :). freebsd-update fetch meldet, dass linker.hitns aktualisiert werden muss. Anschliessen mache ich ein freebsd-update install:

Code:
root@freebsd:/home/sts # freebsd-update install
Installing updates... done.

Und freebsd-update fetch meldet erneut, dass linker.hints aktualisiert werden muss. Und so weiter und so weiter...

Mein Problem ist halt und das mancher anderer auf den Mailinglisten, dass man nun nicht weiss, ob das System up2date ist oder nicht.
 
Na und? Entschuldige bitte, aber vielleicht muss das so sein?
Hallo

Nein ich denke nicht, dass dies so sein sollte. Da muss irgendwo ein Hund sein.
Habe mich damit jetzt aber nicht wirklich auseinandergesetzt. Viel findet man dazu ja auch nicht...

Ich habe mal die "linker.hints" verschoben und nach dem Befehl "freebsd-update fetch && freebsd-update install" wurde die Datei wieder mit der gleichen Checksumme erstellt...

Ich habe jetzt folgenden Eintrag in der "/etc/freebsd-update.conf":
Code:
IgnorePaths /boot/kernel/linker.hints
und warte mal was passiert...

Evtl. werde ich das noch mit einer frischen Installation kontrollieren und testen.
 
sieh doch mal in das Script hinein.
Ich bin nun keiner, der sich mit so etwas auskennt. Was ich bisher gemacht habe, ist einfach mal das Script freebsd-update in einem Texteditor geöffnet und nach linker gesucht.
freebsd-update ist ein einfaches, aber ziemlich umfangreiches Script und ich will nicht behaupten, es zu durchblicken, ganz und gar nicht.

Vielleicht gibt es einen Unterschied von meiner Version (8.4) zu eurer.

Bei mir steht etwa dies an der ersten Fundstelle:
Code:
install_files () {
	# If we haven't already dealt with the kernel, deal with it.
	if ! [ -f $1/kerneldone ]; then
		grep -E '^/boot/' $1/INDEX-OLD > INDEX-OLD
		grep -E '^/boot/' $1/INDEX-NEW > INDEX-NEW

		# Backup current kernel before installing a new one
		backup_kernel || return 1

		# Install new files
		install_from_index INDEX-NEW || return 1

		# Remove files which need to be deleted
		install_delete INDEX-OLD INDEX-NEW || return 1

		# Update linker.hints if necessary
		if [ -s INDEX-OLD -o -s INDEX-NEW ]; then
			kldxref -R /boot/ 2>/dev/null
		fi

		# We've finished updating the kernel.
		touch $1/kerneldone

		# Do we need to ask for a reboot now?
		if [ -f $1/kernelfirst ] &&
		    [ -s INDEX-OLD -o -s INDEX-NEW ]; then
			cat <<-EOF

Kernel updates have been installed.  Please reboot and run
"$0 install" again to finish installing updates.
			EOF
			exit 0
		fi
	fi
Darin wird kldxref -R /boot genutzt und die man page zu diesem Befehl erklärt:
Code:
DESCRIPTION
     The kldxref utility is used to generate hint files which list modules,
     their version numbers, and the files that contain them.  These hints are
     used by the kernel loader to determine where to find a particular KLD
     module.

     A separate hint file is generated for each directory listed on the com‐
     mand line that contains modules.  If no hint records are generated for a
     particular directory, no hint file is created, and the preexisting hint
     file (if there was one in that directory) is removed.

     The following options are available:

     -R      Recurse into subdirectories.

....

     To build hint files for all installed kernels:

           kldxref -R /boot
....
soweit ich sehe, wird install files nur an einer einzigen Stelle vom Script aufgerufen und da steht es so:
Code:
# Actually install updates
install_run () {
	echo -n "Installing updates..."

	# Make sure we have all the files we should have
	install_verify ${BDHASH}-install/INDEX-OLD	\
	    ${BDHASH}-install/INDEX-NEW || return 1

	# Remove system immutable flag from files
	install_unschg ${BDHASH}-install/INDEX-OLD	\
	    ${BDHASH}-install/INDEX-NEW || return 1

	# Install new files, delete old files, and update linker.hints
	install_files ${BDHASH}-install || return 1

	# Rearrange bits to allow the installed updates to be rolled back
	install_setup_rollback

	echo " done."
}
Natürlich kann das so nicht auf Funktion geprüft werden, aber vielleicht sagt es euch etwas. Vielleicht seht ihr etwas an dem Script. Vielleicht habt ihr mehrere Kernel oder sonst etwas, das da in Frage kommt.
Vielleicht ist es in 9 anders als in 8 und ich hänge meines deshalb mal an, damit ihr das nachsehen könnt. Vielleicht funktioniert auch ein Subkommando nicht, wie es mit 8 gewesen ist, etwa kldxref, weil sich da am Kernel ja was geändert hat.

Ich sehe immer noch nicht den Supergau des Versagens dieses Scriptes, weil meine Anwendung damit offenbar nicht verglichen werden kann. Ich kann den beschriebenen Fehler nicht reproduzieren.
Bei mir sieht das halt ungefähr so aus:
Code:
freebsd-update fetch install
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 8.4-RC3 from update5.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Fetching 1 metadata files... done.
Inspecting system... done.

Preparing to download files... done.

No updates needed to update system to 8.4-RC3-p0.

WARNING: FreeBSD 8.4-RC3 is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 1 month.
No updates are available to install.
Run '/usr/sbin/freebsd-update fetch' first.
 

Anhänge

  • freebsd-update.txt
    85,6 KB · Aufrufe: 439
Wow, danker erst einmal für deine Mühen :). Es kann durchaus sein, dass ich mal einen eigenen Kernel kompiliert hatte und so vielleicht mehrere Kernel installiert waren. Meine Frage: Hast du den GENERIC-Kernel + hast du eine /boot/kernel/linker.hints Datei?

Denn was mir gerade aufgefallen ist: Wenn ich die linker.hints entferne, dann habe ich keine Probleme mehr mit freebsd-update fetch install. Allerdings weiss ich nicht, ob ich die Datei brauche oder nicht brauche. Das System bootet ganz normal bisher ^^.

edit:
Scheinbar gibt es eine linker.hints im Auslieferungszustand:

Code:
% tar tf kernel.txz | grep linker.hints
./boot/kernel/linker.hints

edit2:
Ich habe laut Skript mal die linker.hints neugeneriert:

Code:
kldxref -R /boot

Aber das hat auch nicht geholfen.

Anschliessend habe ich alle Kernels aus /boot entfernt und neu entpackt aus der RELEASE-9.1 kernel.txz. Anschliessend Updates gemacht mit freebsd-update. Und wieder das gleiche Problem mit der linker.hints. :-/
 
Zuletzt bearbeitet:
Code:
-rw-r--r--  1 root  wheel  53968  8 Mai 22:03 /boot/GENERIC/linker.hints

lrwxr-xr-x  1 root  wheel       12 21 Nov 22:01 GENERIC -> /boot/kernel
Ja, nach einigen Experimenten nutze ich nur noch und ausschließlich GENERIC und zunächst war freebsd-update auch nicht in der Lage, anderes zu unterstützen und wie du siehst, gibt es die entsprechende Datei linker.hints auch bei mir.

Am 08.05. hatte ich zuletzt freebsd-update -r ... von 8.4RC2 auf 8.4RC3 laufen lassen. Bei -r, sprich upgrade, mache ich immer zeitnah einen Reboot und seither habe ich den PC aber "UP and going", so daß ich nicht genau weiß, wann diese Datei aktualisiert wird. Ganz offenbar macht dies freebsd-update automatisch, wie im Script zu lesen ist, bei Bedarf.

Für mich sieht das noch immer nicht nach einem Fehler aus.
Das ist eine Statusmeldung und der Aufruf insgesamt wird abgeschlossen mit "done".
Das wird vermutlich genauso immer wieder laufen, wenn nichts weiter zu tun ist.

Es ist wohl recht selten was zu tun.
 
Vielleicht so eine Idee am Rande: Wenn die Linker.hints alle Module und Versionen der Module beinhaltet und ich externe Module verwende (z.B. NVidia Treiber), dann sollte doch meine linker.hints anders sein als die des "reinen" GENERIC-Kernels, oder? Von daher sollte auch freebsd-update immer die linker.hints aktualisieren wollen. Dann verstehe ich nur nicht, warum freebsd-update bisher nie die linker-hints updaten wollte (vll. war nie ein Kernel/Modul-Update dabei?).
 
Nein. Module von Drittanbietern werden (oder sollten zumindest) nach /boot/modules geschrieben. Das Verzeichnis hat seine eigene linker.hints, die nicht mit dem installierten Kernel kollidiert.
 
Stimmt, da befindet sich auch eine linker.hints. Ich dachte nur, dass
Code:
kldxref -R /boot
auch rekursiv /boot/kernel/modules durchsuchen würde. Yamagi, benutzt du auch RELENG-9.1?

In einer frischen Installation in VirtualBox tritt dieses Problem nicht auf.
 
probier doch mal das Script direkt zu starten und den Trace einzuschalten.
Wenn du ihm beim arbeiten zusiehst, erkennst du vielleicht, was es tut und wo es aus dem Tritt kommt.
etwas in der Art:
sh -x /usr/sbin/freebsd-update fetch ...
 
Gute Idee. Das einzige, was ich spontan dazu finde, ist:

Code:
+ read F
+ [ -e ///boot/kernel/linker.hints ]
+ [ -r ///boot/kernel/linker.hints ]
+ [ -L ///boot/kernel/linker.hints ]
+ [ -f ///boot/kernel/linker.hints ]
+ echo -n '/boot/kernel/linker.hints|f|'
+ stat -n -f '%d-%i|%u|%g|%Mp%Lp|%Of|' ///boot/kernel/linker.hints
+ sha256 -q ///boot/kernel/linker.hints
+ read F

edit:
Meine linker.hints:
Code:
% stat -n -f '%d-%i|%u|%g|%Mp%Lp|%Of|' ///boot/kernel/linker.hints
1629734959-33|0|0|0644|0|
% sha256 -q /boot/kernel/linker.hints
bda010a30ed7dbf6c019db314aa7d5c55c04a7879457297593b7886e99896eb3
 
Zuletzt bearbeitet:
Kurzes Update:

Ich habe mal den Kernel von /boot/kernel nach /boot/kernel.bak verschoben und aus RELEASE-9.1 den GENERIC-Kernel erneut enpackt. Anschliessend neu gebootet, freebsd-update fetch install gemacht und daraufhin kommt das gleiche Problem wieder (ohne externe Module & Co). Sehr merkwürdig alles :-/.

@Lord_x:
Du benutzt auch den GENERIC-Kernel? Was ist bei dir der Output von

Code:
sha256 -q /boot/kernel/linker.hints
?
 
Ja ich benutze auch den GENERIC-Kernel. Habe da überhaupt nichts gemacht in dieser Hinsicht, auf diesem PC.
Code:
root@nas ~ # sha256 -q /boot/kernel/linker.hints
06f953908ab13bbafbc6f74d6c682cbbf4fb92ff5f2059300cad775fb6d1d24e
Code:
root@nas ~ # uname -a
FreeBSD nas 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:27:25 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64
 
Zuletzt bearbeitet:
Mein EEE ist ein Asus Netbook 1000HE und den wollte ich nicht mehr updaten. Andererseits ist es mein Spiel-Rechner, also: freebsd-update auf 9.1 gemacht und mal gesehen, was dann passiert:
Code:
pit@eee /home/pit:-# uname -r
9.1-RELEASE-p3
pit@eee /home/pit:-# freebsd-update fetch install
Looking up update.FreeBSD.org mirrors... 4 mirrors found.
Fetching metadata signature for 9.1-RELEASE from update5.freebsd.org... done.
Fetching metadata index... done.
Inspecting system... done.
Preparing to download files... done.

The following files will be added as part of updating to 9.1-RELEASE-p3:
/usr/src/crypto/openssl/ssl/s3_cbc.c
Installing updates...install: ///usr/src/crypto/openssl/ssl/s3_cbc.c: No such file or directory
 done.
pit@eee /home/pit:-# ll /usr/src
total 0
Code:
pit@eee /home/pit:-# ll /boot/kernel/linker.hints 
-rw-r--r--  2 root  wheel  59596 12 Mai 20:05 /boot/kernel/linker.hints
pit@eee /home/pit:-# sha256 -q /boot/kernel/linker.hints
310e0b06f0636d21ed8176f4de1ac89e96b23a0910df47574cc5d6aad68397d
Ich glaube nicht, dass sich die linker.hints von System zu System vergleichen lässt? Meines ist ein i386 mit Generic.

Also, bei mir sind keine Kernel-Quellen installiert und da wundert die Fehlermeldung nicht, die ich erhalte.
Trotzdem schiebe ich hier mal den Ablauf gegen Ende en, wo es also interessanter wird, Zuvor werden Files mit /rescue verglichen und da finde ich aber kein /rescue/boot.
Ich sehe hier auch keine Zeile, in der es um die linker.hints geht, aber ich bin im Augenblick auch nicht voll bei der Sache und stelle einfachmal Information hier rein, die ich gerade beitragen kann.
Vielleicht kann das helfen.

Code:
....
+ fetch_filter_unmodified_notpresent INDEX-OLD INDEX-PRESENT INDEX-NEW /dev/null
+ grep -E ^/etc/ INDEX-OLD
+ cut -f 1,2,7 -d '|'
+ sort
+ grep -E ^/etc/ INDEX-NEW
+ grep -E ^/var/ INDEX-OLD
+ grep -E ^/var/ INDEX-NEW
+ grep -E ^/root/ INDEX-OLD
+ grep -E ^/root/ INDEX-NEW
+ grep -E ^/.cshrc INDEX-OLD
+ grep -E ^/.cshrc INDEX-NEW
+ grep -E ^/.profile INDEX-OLD
+ grep -E ^/.profile INDEX-NEW
+ grep -E ^/etc/ INDEX-PRESENT
+ cut -f 1,2,7 -d '|'
+ sort
+ grep -E ^/var/ INDEX-PRESENT
+ grep -E ^/root/ INDEX-PRESENT
+ grep -E ^/.cshrc INDEX-PRESENT
+ grep -E ^/.profile INDEX-PRESENT
+ comm -13 INDEX-OLD-values INDEX-PRESENT-values
+ sort -t '|' -k 1,1
+ cut -f 1 -d '|' /dev/null
+ sort
+ join -v 2 -t '|' - mlines.tmp
+ sort
+ rm INDEX-OLD-values INDEX-PRESENT-values mlines.tmp
+ comm -13 INDEX-OLD INDEX-PRESENT
+ cut -f 1,2,7 -d '|'
+ fgrep '|-|'
+ sort -t '|' -k 1,1 INDEX-OLD
+ cut -f 1 -d '|'
+ sort
+ sort
+ join -v 2 -t '|' - INDEX-OLD.tmp
+ rm INDEX-OLD.tmp
+ sort -t '|' -k 1,1 INDEX-PRESENT
+ cut -f 1 -d '|'
+ sort
+ join -v 2 -t '|' - INDEX-PRESENT.tmp
+ sort
+ rm INDEX-PRESENT.tmp
+ sort -t '|' -k 1,1 INDEX-NEW
+ cut -f 1 -d '|'
+ sort
+ sort
+ join -v 2 -t '|' - INDEX-NEW.tmp
+ rm INDEX-NEW.tmp
+ fgrep -v '|-|' mlines
+ cut -f 1 -d '|'
+ rm mlines
+ fetch_filter_allowadd INDEX-PRESENT INDEX-NEW
+ cut -f 1,2 -d '|'
+ fgrep '|-'
+ cut -f 1 -d '|'
+ [ yes != yes ]
+ sort
+ join -v 1 -t '|' - filesnotpresent
+ sort
+ mv INDEX-PRESENT.tmp INDEX-PRESENT
+ rm filesnotpresent
+ fetch_filter_allowdelete INDEX-PRESENT INDEX-NEW
+ cut -f 1-2 -d '|'
+ sort -u
+ cut -f 1-2 -d '|'
+ sort -u
+ [ yes != yes ]
+ :
+ read X
+ comm -13 - INDEX-PRESENT
+ mv INDEX-PRESENT.tmp INDEX-PRESENT
+ rm INDEX-PRESENT.badnodes INDEX-PRESENT.nodes INDEX-NEW.nodes
+ fetch_filter_modified_metadata INDEX-OLD INDEX-PRESENT INDEX-NEW
+ cut -f 1-6 -d '|'
+ cut -f 1-6 -d '|'
+ [ yes = yes ]
+ comm -13 INDEX-OLD.metadata INDEX-PRESENT.metadata
+ :
+ :
+ read LINE
+ echo '/lib/libc.so.7|f|0|0|0444|0'
+ cut -f 1-2 -d '|'
+ NODE='/lib/libc.so.7|f'
+ look '/lib/libc.so.7|f|' INDEX-NEW
+ look '/lib/libc.so.7|f|' INDEX-NEW
+ cut -f 7- -d '|'
+ lam -s '/lib/libc.so.7|f|0|0|0444|0|' -
+ read LINE
+ echo '/usr/bin/login|f|0|0|4555|0'
+ cut -f 1-2 -d '|'
+ NODE='/usr/bin/login|f'
+ look '/usr/bin/login|f|' INDEX-NEW
+ look '/usr/bin/login|f|' INDEX-NEW
+ cut -f 7- -d '|'
+ lam -s '/usr/bin/login|f|0|0|4555|0|' -
+ read LINE
+ sort INDEX-NEW.remove
+ sort -u - INDEX-NEW.add
+ comm -13 - INDEX-NEW
+ mv INDEX-NEW.tmp INDEX-NEW
+ rm keepmeta INDEX-OLD.metadata INDEX-PRESENT.metadata INDEX-NEW.add INDEX-NEW.remove
+ fetch_filter_uptodate INDEX-PRESENT INDEX-NEW
+ comm -23 INDEX-PRESENT INDEX-NEW
+ comm -13 INDEX-PRESENT INDEX-NEW
+ mv INDEX-PRESENT.tmp INDEX-PRESENT
+ mv INDEX-NEW.tmp INDEX-NEW
+ fetch_files_prepare INDEX-OLD INDEX-PRESENT INDEX-NEW
+ echo -n 'Preparing to download files... '
Preparing to download files... + cut -f 1,2,7 -d '|'
+ fgrep '|f|'
+ sort
+ cut -f 1,3 -d '|'
+ cut -f 1,2,7 -d '|'
+ fgrep '|f|'
+ sort
+ cut -f 1,3 -d '|'
+ cut -f 1,2,7 -d '|'
+ fgrep '|f|'
+ cut -f 1,3 -d '|'
+ sort
+ cut -f 2 -d '|'
+ sort -u
+ read HASH
+ [ -f files/17d4738298c0c44ed327d2366e717facf4a7747cfea3618e200322f5fce551da.gz ]
+ read HASH
+ comm -12 INDEX-OLD.hashes INDEX-PRESENT.hashes
+ sort -k 1,1 -t '|'
+ read LINE
+ sort -k 1,1 -t '|' INDEX-NEW.hashes
+ join -t '|' -o 2.2,1.2 - unmodified.files
+ fetch_make_patchlist
+ grep -vE '^([0-9a-f]{64})\|\1$'
+ uniq
+ read X Y
+ tr '|' ' '
+ rm unmodified.files INDEX-OLD.hashes INDEX-PRESENT.hashes INDEX-NEW.hashes
+ rm INDEX-OLD
+ echo done.
done.
+ fetch_files
+ [ -s patchlist ]
+ read Y
+ [ -s filelist ]
+ rm files.wanted filelist patchlist
+ fetch_create_manifest
+ [ -L f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install ]
+ [ -s modifiedfiles ]
+ more
+ rm modifiedfiles
+ [ -s INDEX-PRESENT ]
+ [ -s INDEX-NEW ]
+ cut -f 1 -d '|'
+ sort
+ cut -f 1 -d '|'
+ sort
+ comm -23 INDEX-PRESENT.flist INDEX-NEW.flist
+ comm -13 INDEX-PRESENT.flist INDEX-NEW.flist
+ comm -12 INDEX-PRESENT.flist INDEX-NEW.flist
+ rm INDEX-PRESENT.flist INDEX-NEW.flist
+ [ -s files.removed ]
+ more
+ rm files.removed
+ [ -s files.added ]
+ more
+ echo
+ echo -n 'The following files will be added '
+ echo 'as part of updating to 9.1-RELEASE-p3:'
+ cat files.added

The following files will be added as part of updating to 9.1-RELEASE-p3:
/usr/src/crypto/openssl/ssl/s3_cbc.c
+ rm files.added
+ [ -s files.updated ]
+ more
+ rm files.updated
+ mktemp -d install.XXXXXX
+ MDIR=install.4tOATS
+ mv INDEX-PRESENT install.4tOATS/INDEX-OLD
+ mv INDEX-NEW install.4tOATS/INDEX-NEW
+ ln -s install.4tOATS f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install
+ fetch_warn_eol
+ date +%s
+ NOWTIME=1368383778
+ [ -f lasteolwarn ]
+ cat lasteolwarn
+ LASTWARN=1296260038
+ [ 1420070400 -lt 1368383778 ]
+ expr 1368383778 - 1296260038
+ SINCEWARN=72123740
+ expr 1420070400 - 1368383778
+ TIMELEFT=51686622
+ [ 51686622 -gt 7884000 ]
+ return 0
+ cmd_install
+ install_check_params
+ id -u
+ [ 0 != 0 ]
+ sysctl -n kern.securelevel
+ [ -1 -gt 0 ]
+ _WORKDIR_bad='Directory does not exist or is not writable: '
+ [ -d /var/db/freebsd-update -a -w /var/db/freebsd-update ]
+ cd /var/db/freebsd-update
+ echo /
+ sha256 -q
+ BDHASH=f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336
+ [ -L f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install ]
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD ]
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW ]
+ sysctl -n kern.bootfile
+ BOOTFILE=/boot/kernel/kernel
+ KERNELDIR=/boot/kernel
+ [ -d /boot/kernel ]
+ install_run
+ echo -n 'Installing updates...'
Installing updates...+ install_verify f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ cat f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ grep -E ^f
+ cut -f 2,7 -d '|'
+ cut -f 2 -d '|'
+ sort -u
+ read HASH
+ [ -f files/17d4738298c0c44ed327d2366e717facf4a7747cfea3618e200322f5fce551da.gz ]
+ read HASH
+ rm filelist
+ install_unschg f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ cut -f 1 -d '|'
+ cat f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ read F
+ [ -e ///usr/src/crypto/openssl/ssl/s3_cbc.c ]
+ continue
+ read F
+ rm filelist
+ install_files f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/kerneldone ]
+ grep -E ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD
+ grep -E ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ backup_kernel
+ [ yes != yes ]
+ backup_kernel_finddir
+ CNT=0
+ true
+ [ ! -e /boot/kernel.old ]
+ [ -d /boot/kernel.old -a -e /boot/kernel.old/.freebsd-update ]
+ return 0
+ [ -d /boot/kernel.old ]
+ rm -fr /boot/kernel.old
+ mkdir -p /boot/kernel.old
+ mtree -cdn -p /boot/kernel
+ mtree -Ue -p /boot/kernel.old
+ touch /boot/kernel.old/.freebsd-update
+ [ 0 -ne 0 ]
+ set -f
+ [ no = yes ]
+ FINDFILTER='-a ! -name *.symbols'
+ cd /boot/kernel
+ find . -type f -a ! -name '*.symbols' -exec cp -pl {} /boot/kernel.old/{} ';'
+ set +f
+ install_from_index INDEX-NEW
+ sort -k 1,1 -t '|' INDEX-NEW
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ install_delete INDEX-OLD INDEX-NEW
+ cut -f 1 -d '|'
+ sort
+ sort -k 1,1 -t '|' INDEX-OLD
+ sort -r -k 1,1 -t '|'
+ join -t '|' -v 1 - newfiles
+ cut -f 1,2 -d '|'
+ tr '|' ' '
+ read FPATH TYPE
+ rm newfiles killfiles
+ [ -s INDEX-OLD -o -s INDEX-NEW ]
+ touch f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/kerneldone
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/kernelfirst ]
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/worlddone ]
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ grep -E '/lib/.*\.so\.[0-9]+\|'
+ install_from_index INDEX-NEW
+ sort -k 1,1 -t '|' INDEX-NEW
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD
+ grep -vE '/lib/.*\.so\.[0-9]+\|'
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ grep -vE '/lib/.*\.so\.[0-9]+\|'
+ install_from_index INDEX-NEW
+ sort -k 1,1 -t '|' INDEX-NEW
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ [ -z '' ]
+ gunzip
+ install -S -o 0 -g 0 -m 0644 17d4738298c0c44ed327d2366e717facf4a7747cfea3618e200322f5fce551da ///usr/src/crypto/openssl/ssl/s3_cbc.c
install: ///usr/src/crypto/openssl/ssl/s3_cbc.c: No such file or directory
+ rm 17d4738298c0c44ed327d2366e717facf4a7747cfea3618e200322f5fce551da
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ tr '|' ' '
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ [ f = f ]
+ [ 0 = 0 ]
+ read FPATH TYPE OWNER GROUP PERM FLAGS HASH LINK
+ install_delete INDEX-OLD INDEX-NEW
+ cut -f 1 -d '|'
+ sort
+ sort -k 1,1 -t '|' INDEX-OLD
+ join -t '|' -v 1 - newfiles
+ tr '|' ' '
+ cut -f 1,2 -d '|'
+ sort -r -k 1,1 -t '|'
+ read FPATH TYPE
+ rm newfiles killfiles
+ [ /etc/master.passwd -nt /etc/spwd.db ]
+ [ /etc/master.passwd -nt /etc/pwd.db ]
+ [ /etc/login.conf -nt /etc/login.conf.db ]
+ touch f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/worlddone
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ grep -E '/lib/.*\.so\.[0-9]+\|'
+ sort
+ cut -f 1 -d '|'
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD
+ grep -E '/lib/.*\.so\.[0-9]+\|'
+ grep -q .
+ sort
+ join -v 1 - newfiles
+ cut -f 1 -d '|'
+ rm newfiles
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-NEW
+ grep -E '/lib/.*\.so\.[0-9]+\|'
+ grep -vE ^/boot/ f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/INDEX-OLD
+ grep -E '/lib/.*\.so\.[0-9]+\|'
+ install_delete INDEX-OLD INDEX-NEW
+ cut -f 1 -d '|'
+ sort
+ sort -k 1,1 -t '|' INDEX-OLD
+ sort -r -k 1,1 -t '|'
+ join -t '|' -v 1 - newfiles
+ cut -f 1,2 -d '|'
+ tr '|' ' '
+ read FPATH TYPE
+ rm newfiles killfiles
+ rm INDEX-OLD INDEX-NEW
+ install_setup_rollback
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/kernelfirst ]
+ [ -f f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/worlddone ]
+ rm f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/worlddone
+ [ -L f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-rollback ]
+ mv f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-rollback f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install/rollback
+ mv f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-install f465c3739385890c221dff1a05e578c6cae0d0430e46996d319db7439f884336-rollback
+ echo ' done.'
 done.
 
Okay, so langsam bin ich am verzweifeln ^^. Ich bin noch relativ neu in der FreeBSD-Welt und vielleicht findet ihr meinen Gedankenfehler, ich habe nämlich noch ein weiteres Problem festgestellt in Bezug auf freebsd-update:

In /usr/src habe ich mir die Quellen mittels Subversion besorgt. Der Stand ist auf RELENG-9.1:

Code:
root@freebsd:/usr/src # svn info
Path: .
Working Copy Root Path: /usr/src
URL: https://svn0.us-west.freebsd.org/base/releng/9.1
Repository Root: https://svn0.us-west.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 250577
Node Kind: directory
Schedule: normal
Last Changed Author: des
Last Changed Rev: 250071
Last Changed Date: 2013-04-29 23:11:05 +0200 (Mon, 29 Apr 2013)
[\CODE]

Soweit so gut. In den letzten Logs findet man auch die Geschichten bzgl. der NFS Sicherheitslücke:

[CODE]
r250071 | des | 2013-04-29 23:11:05 +0200 (Mon, 29 Apr 2013) | 9 lines

Fix a bug that allows NFS clients to issue READDIR on files.

(files missing from previous commit)

PR:             kern/178016
Security:       CVE-2013-3266
Security:       FreeBSD-SA-13:05.nfsserver
Approved by:    so

Also alles ok und aktuell. Wenn ich diesen Kernel bauen (make buildkernel) und installiere (make installkernel) und neuboote, will freebsd-update noch mehr aktualisieren:

Code:
The following files will be updated as part of updating to 9.1-RELEASE-p3:
/boot/kernel/kernel
/boot/kernel/kernel.symbols
/boot/kernel/linker.hints
/boot/kernel/nfsd.ko
/boot/kernel/nfsd.ko.symbols

Gut, dachte ich mir, vielleicht liegt das an dem Versionsstring, der in dem Kernel eingebaut ist, hier selbstgebaut:

Code:
FreeBSD freebsd 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0 r250577: Sun May 12 21:40:00 CEST 2013     root@freebsd:/usr/obj/usr/src/sys/GENERIC  amd64

und hier aus den binären Quellen (freebsd-update):

Code:
FreeBSD freebsd 9.1-RELEASE-p3 FreeBSD 9.1-RELEASE-p3 #0: Mon Apr 29 18:27:25 UTC 2013     root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC  amd64

Das würde erklären, warum die Checksummen der Kernel unterschiedlich und freebsd-update den Kernel patchen möchte.... aber nfsd.ko und nfsd.ko.symbols?? Die sollten ja auch identisch sein, es sei denn, der Quellcode für das Bauen von nfsd.ko enthält auch einen Versionsstring, was ich mir so jetzt nicht vorstellen kann.

Oder denke ich falsch ^^?
 
Zurück
Oben