linker.hints in freebsd-update

Dieses Thema im Forum "FreeBSD - Allgemein" wurde erstellt von danvari, 9 Mai 2013.

  1. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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?
  2. foxit

    foxit Member

    Registriert seit:
    4 Juli 2012
    Beiträge:
    739
    Ort:
    /home
    Ja genau dieses Problem habe ich auch. FreeBSD 9.1
  3. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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.
  4. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    ^^ 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.
  5. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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?
  6. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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.
  7. foxit

    foxit Member

    Registriert seit:
    4 Juli 2012
    Beiträge:
    739
    Ort:
    /home
    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.
  8. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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:

  9. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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: 10 Mai 2013
  10. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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.
  11. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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?).
  12. Yamagi

    Yamagi Possessed With Psi Powers Mitarbeiter

    Registriert seit:
    14 April 2004
    Beiträge:
    7.374
    Ort:
    Schleswig-Holstein
    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.
  13. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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.
  14. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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 ...
  15. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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: 11 Mai 2013
  16. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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
    
    ?
  17. foxit

    foxit Member

    Registriert seit:
    4 Juli 2012
    Beiträge:
    739
    Ort:
    /home
    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: 12 Mai 2013
  18. pit234a

    pit234a Active Member

    Registriert seit:
    8 Juli 2006
    Beiträge:
    1.703
    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.
    
  19. danvari

    danvari New Member

    Registriert seit:
    1 Juni 2012
    Beiträge:
    56
    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 ^^?
  20. Rakor

    Rakor Moderator Mitarbeiter

    Registriert seit:
    17 September 2009
    Beiträge:
    1.159
    Any News?