[CfT] bsda2-0.5.1: loaderupdate und pkg_libchk

Kamikaze

Warrior of Sunlight
Teammitglied
Ich suche Tester für das neuste bsda Update:

relnotes schrieb:
0.5.1-rc3 bsda2 0.5.1 release candidate 3

pkg_libchk
- Fix reporting dependencies on compat packages

bsda2 0.5.1 release candidate 2

pkg_libchk
  • Improve false positive filtering (do not trip over unbranded elf files)
  • Improve pkg_libchk perfromance by sorting task from longest to shortest
  • Detect libraries provided by dependencies, even when ldd(1) cannot find them
  • Report libraries contained in the same package or a dependency, but missing from the file system

loaderupdate
  • Skip updates of already up to date loader images and boot menu entries, introduces --force to always force installation
  • Allow --dry-run in combination with --dump
  • Add --bootfs to override the file system type used on this device
  • Improve handling of pre-mounted EFI partitions, now also recognise partitions mounted via a partition label

Einfach herunterladen und ausprobieren:
Code:
# fetch https://github.com/lonkamikaze/bsda2/archive/refs/tags/0.5.1-rc3.tar.gz
fetch: https://github.com/lonkamikaze/bsda2/archive/refs/tags/0.5.1-rc3.tar.gz: size of remote file is not known
0.5.1-rc3.tar.gz                                       125 kB 4130 kBps    00s
# sha256 0.5.1-rc3.tar.gz
SHA256 (0.5.1-rc3.tar.gz) = 75e4c1608e64d1f2ebd648803770ed62a6cb8a96ee92578e05084914460f82bf
# tar -xf 0.5.1-rc3.tar.gz
# doas bsda2-0.5.1-rc3/src/loaderupdate -P nda0
Boot Environment
----------------
destdir:                /
ostype:                 FreeBSD
kernel version:         FreeBSD 14.3-STABLE stable/14-n271514-a6b05a35ce3c SCO15M19
kernel arch:            amd64
filesystem:             zfs
protective MBR:         /boot/pmbr
freebsd-boot loader:    /boot/gptzfsboot
EFI loader:             /boot/loader.efi

Device nda0
-----------
    skip:               /boot/pmbr > nda0
    skip:               /boot/gptzfsboot > nda0p1
    skip:               /boot/loader.efi > nda0p2:/efi/FreeBSD/bootamd64.efi
    skip EFI label:     FreeBSD 14.3-STABLE stable/14-n271514-a6b05a35ce3c SCO15M19 amd64 [nda0p2] (Boot0000)

# bsda2-0.5.1-rc3/src/pkg_libchk
Jobs done: 1291 of 1565
libosmesa-24.1.7
libsigsegv-2.14
libpciaccess-0.18.1_1
argp-standalone-1.5.0_1
libpotrace-1.16
libliftoff-0.5.0
libdiscid-0.6.5
libudev-devd-0.6.0
dosbox-0.74.3_1
dmenu-5.1
p5-Locale-gettext-1.07
libb2-0.98.1_1
libnsgif-1.0.0
 
Zuletzt bearbeitet:
Moin...

hier kommt:

Code:
# su
# bsda2-0.5.1-rc1/src/loaderupdate -P nda0
mount_msdosfs: /dev/nda0p1: Invalid argument
loaderupdate: ERROR: Failed to mount device: /dev/nda0p1

# gpart show nda0
=>        40  3907029088  nda0  GPT  (1.8T)
          40      532480     1  efi  (260M)
      532520        1024     2  freebsd-boot  (512K)
      533544         984        - free -  (492K)
      534528     4194304     3  freebsd-swap  (2.0G)
     4728832  3902300160     4  freebsd-zfs  (1.8T)
  3907028992         136        - free -  (68K)
 
Ist schon mal die richtige Paritition. Ist die vielleicht schon gemountet? Wenn ja, das sollte eigentlich auch funktionieren.
 
Code:
pit@Mifcom /home/pit/bsda2:-# bsda2-0.5.1-rc1/src/loaderupdate -P nda0
Boot Environment
----------------
destdir:                /
ostype:                 FreeBSD
kernel version:         FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC
kernel arch:            amd64
filesystem:             zfs
protective MBR:         /boot/pmbr
freebsd-boot loader:    /boot/gptzfsboot
EFI loader:             /boot/loader.efi

Device nda0
-----------
    install:            /boot/loader.efi > nda0p1:/efi/FreeBSD/bootamd64.efi
    install EFI label:  FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64 [nda0p1]

pit@Mifcom /home/pit/bsda2:-# bsda2-0.5.1-rc1/src/loaderupdate -P nda1
Boot Environment
----------------
destdir:                /
ostype:                 FreeBSD
kernel version:         FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC
kernel arch:            amd64
filesystem:             zfs
protective MBR:         /boot/pmbr
freebsd-boot loader:    /boot/gptzfsboot
EFI loader:             /boot/loader.efi

Device nda1
-----------
    install:            /boot/loader.efi > nda1p1:/efi/FreeBSD/bootamd64.efi
    install EFI label:  FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64 [nda1p1]

pit@Mifcom /home/pit/bsda2:-# bsda2-0.5.1-rc1/src/pkg_libchk
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libbookmarks.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libdrawspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libsmartspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libwordcompletion.so misses libgedit-48.1.so
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so misses libXext.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so.0 misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so.0 misses libXext.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/vdpau/libvdpau_nvidia.so.1 misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/vdpau/libvdpau_nvidia.so.1 misses libXext.so.6
sieht eigentlich gut aus bei mir.
Der libchk lief super schnell in meinen Augen und liefert auch absolut "akzeptable Ergebnisse". Darf ich so etwas überhaupt sagen? Das gedit kenne ich gar nicht und es ist wohl als Abhängigkeit installiert worden. Es steht da aber:
Code:
Shared Libs required:
    libc.so.7
    libgedit-48.1.so
    libgedit-gtksourceview-300.so.3
    libgedit-tepl-6.so.3
    libgio-2.0.so.0
    libglib-2.0.so.0
    libgobject-2.0.so.0
    libgtk-3.so.0
    libpeas-1.0.so.0
    libpeas-gtk-1.0.so.0
    libthr.so.3

pit@Mifcom /home/pit/bsda2:-# find /usr/local -iname "libgedit-48.*.*"
/usr/local/lib/gedit/libgedit-48.1.so
also kann ich mir nicht erklären, wieso diese angeblichen Plugins da etwas vermissen.
Zu den nvidia-libs habe ich mal vor längerer Zeit was gelesen, ich glaube, die gibt es nicht für FreeBSD? Jedenfalls sehe ich gerade nicht nach, wie es bei mir aussieht, außer du möchtest das haben.
 
Code:
pit@Mifcom /home/pit/bsda2:-# bsda2-0.5.1-rc1/src/pkg_libchk
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libbookmarks.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libdrawspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libsmartspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libwordcompletion.so misses libgedit-48.1.so
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so misses libXext.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so.0 misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/libGLX_nvidia.so.0 misses libXext.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/vdpau/libvdpau_nvidia.so.1 misses libX11.so.6
nvidia-driver-570.169.1403000: /usr/local/lib32/vdpau/libvdpau_nvidia.so.1 misses libXext.so.6
sieht eigentlich gut aus bei mir.
Der libchk lief super schnell in meinen Augen und liefert auch absolut "akzeptable Ergebnisse". Darf ich so etwas überhaupt sagen? Das gedit kenne ich gar nicht und es ist wohl als Abhängigkeit installiert worden. Es steht da aber:
Code:
Shared Libs required:
    libc.so.7
    libgedit-48.1.so
    libgedit-gtksourceview-300.so.3
    libgedit-tepl-6.so.3
    libgio-2.0.so.0
    libglib-2.0.so.0
    libgobject-2.0.so.0
    libgtk-3.so.0
    libpeas-1.0.so.0
    libpeas-gtk-1.0.so.0
    libthr.so.3

pit@Mifcom /home/pit/bsda2:-# find /usr/local -iname "libgedit-48.*.*"
/usr/local/lib/gedit/libgedit-48.1.so
also kann ich mir nicht erklären, wieso diese angeblichen Plugins da etwas vermissen.
Zu den nvidia-libs habe ich mal vor längerer Zeit was gelesen, ich glaube, die gibt es nicht für FreeBSD? Jedenfalls sehe ich gerade nicht nach, wie es bei mir aussieht, außer du möchtest das haben.
Das sieht aus wie ein false-positive, muss ich mal versuchen zu reproduzieren.
 
@Elwood Kannst Du den Patch mal testen?

Bash:
cd bsda2-0.5.1-rc1
patch -p1 < /path/to/mount.patch
Bringt keine Änderung -> Habe so die Ahnung, als wäre die efi-Partition nicht okay.

Code:
# fsck_msdosfs /dev/nda0p1
** /dev/nda0p1
Invalid signature in boot block: 0000

Dürfte da aus meiner Sicht nicht kommen, oder?

PS: Die Karre fährt aber anstandslos hoch.
 
# file -s /dev/nda0p1
/dev/nda0p1: data

Ist noch nicht lange her, da hab ich die HDD rausgeschmissen und 'nen Riegel eingebaut (zroot - mirror).
Installer vom FreeBSD 14.2-R Stick. Altes System mittels cpdup rüberkopiert.
 
Zuletzt bearbeitet:
Altes System mittels cpdup rüberkopiert.
das kenne ich nicht, aber
# file -s /dev/nda0p1
/dev/nda0p1: data
sieht für mich nicht nach einer EFI in einem FAT aus
Code:
pit@Mifcom ~:- > gpart show nda0
=>        40  1953525088  nda0  GPT  (932G)
          40      204760        - free -  (100M)
      204800     1024000     1  efi  (500M)
     1228800  1952153600     2  freebsd-zfs  (931G)
  1953382400      142728        - free -  (70M)

pit@Mifcom ~:- > file -s /dev/ndaop1
/dev/ndaop1: cannot open `/dev/ndaop1' (No such file or directory)
pit@Mifcom ~:- > file -s /dev/nda0p1
/dev/nda0p1: DOS/MBR boot sector, code offset 0x58+2, OEM-ID "BSD4.4  ", Media descriptor 0xf8, sectors/track 63, heads 255, sectors 1024000 (volumes > 32 MB), FAT (32 bit), sectors/FAT 7877, serial number 0x79c15f3, label: "EFISYS     "
deshalb auch kein Wunder, wenn der fsck meckert.

ich würde das Dingens mal neu machen, aber das ist natürlich so eine Sache....
Weißt du überhaupt, ob du EFI gebootet hast? Jenachdem, was dieses cpdup so macht, könnte es ja auch einen MBR geschrieben haben, der vom BIOS ausgewertet wird.
Oder weil du sagst mirror: vielleicht liegt die benutzte EFI gar nicht hier, sondern auch einem anderen Medium?

Dubios.
 
Jepp, eben... Kamikazes Script ist (natürlich) unschuldig :-)

# sysctl machdep.bootmethod
machdep.bootmethod: BIOS

Nachvollziehbar... :-)
 
EFI-Partition neu Formatiert:

Code:
# sysctl machdep.bootmethod
machdep.bootmethod: UEFI

# fsck_msdosfs /dev/nda0p1
** /dev/nda0p1
** Phase 1 - Read FAT and checking connectivity
** Phase 2 - Checking Directories
** Phase 3 - Checking for Lost Files
4 files, 259 MiB free (66261 clusters)

# bsda2-0.5.1-rc1/src/loaderupdate -P nda0
Boot Environment
----------------
destdir:                /
ostype:                 FreeBSD
kernel version:         FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC
kernel arch:            amd64
filesystem:             zfs
protective MBR:         /boot/pmbr
freebsd-boot loader:    /boot/gptzfsboot
EFI loader:             /boot/loader.efi

Device nda0
-----------
    skip:               /boot/pmbr > nda0
    skip:               /boot/gptzfsboot > nda0p2
    skip:               /boot/loader.efi > nda0p1:/efi/FreeBSD/bootamd64.efi
    skip EFI label:     FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64 [nda0p1] (Boot0001)
 
EFI-Partition neu Formatiert:

Code:
Device nda0
-----------
    skip:               /boot/pmbr > nda0
    skip:               /boot/gptzfsboot > nda0p2
    skip:               /boot/loader.efi > nda0p1:/efi/FreeBSD/bootamd64.efi
    skip EFI label:     FreeBSD 14.3-RELEASE releng/14.3-n271432-8c9ce319fef7 GENERIC amd64 [nda0p1] (Boot0001)
Hattest Du das Skript schon mal laufen lassen um die loader zu installieren? skip sollte da eigentlich nur stehen wenn das schon auf dem aktuellen Stand ist.
 
Hattest Du das Skript schon mal laufen lassen um die loader zu installieren? skip sollte da eigentlich nur stehen wenn das schon auf dem aktuellen Stand ist.
Ja, diese Idee hatte ich auch. Das klappt aber leider nicht, weil der efibootmgr nur läuft, wenn man UEFI gebootet hat.
Ich habe also mit einem Stick das Live-System gebootet und versucht bsda2 zu installieren. Leider reicht der Platz auf der Partition auf dem Stick nicht aus, um die Installation zu machen. Also hab ich die Schritte, die loaderupdate machen würde, per Hand gemacht.
Daher skip.
 
Dafür gibt es das --noefi Flag, das überspringt den efibootmgr Schritt. Ist eigentlich in Kombination mit --destdir gedacht, wenn man eine Platte für ein anderes System bespielt.
 
@pit234a Ich habe einen Patch zum Testen:
den habe ich nach ~/bsda2/bsda2-0.5.1-rc1 gespeichert, von wo ich das alles temporär machen will und dann:
Code:
pit@Mifcom ~/bsda2/bsda2-0.5.1-rc1:- > patch -p1 < libchk.patch
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|diff --git a/src/pkg_libchk.sh b/src/pkg_libchk.sh
|index cdd808a..bcac100 100644
|--- a/src/pkg_libchk.sh
|+++ b/src/pkg_libchk.sh
--------------------------
Patching file src/pkg_libchk.sh using Plan A...
Hunk #1 succeeded at 389.
Hunk #2 succeeded at 406.
done
und dann:
Code:
pit@Mifcom ~/bsda2/bsda2-0.5.1-rc1:- > su
Password:
pit@Mifcom /home/pit/bsda2/bsda2-0.5.1-rc1:-# ./src/pkg_libchk
pit@Mifcom /home/pit/bsda2/bsda2-0.5.1-rc1:-#
Das ist die fertige Ausgabe, es war zuvor schon der check gelaufen, schnell, sehr schnell für ein Script, angesichts der Aufgabe und meine PC-Lüfter reagierten sogar auf die neue Last, also definitiv Aktion gewesen, die ich aber hier nicht so zeigen kann, weil dann alles vom screen verschwand, weil das Programm offenbar ohne neue Hinweise beendet wurde.

Seit letztem Test habe ich (glaube ich), nichts verändert, also neu installiert oder gelöscht.
 
Du kannst ein pkg_libchk -m probieren. Damit sollte der Fehler (und wahrscheinlich andere) wieder auftauchen.
 
Du kannst ein pkg_libchk -m probieren. Damit sollte der Fehler (und wahrscheinlich andere) wieder auftauchen.
scheinbar nicht.
wenn ich nicht vollkommen daneben liege, also wieder mal Fehler mache:
dann bleibt das auch ohne Ergebnisse.

ich habe dann mal gemacht:
Code:
pit@Mifcom /home/pit/bsda2/bsda2-0.5.1-rc1:-# ./src/pkg_libchk -m > report.txt
und hänge den mal an
 

Anhänge

Doch ist mit drin:
Code:
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libbookmarks.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libdrawspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libsmartspaces.so misses libgedit-48.1.so
gedit-plugins-48.1: /usr/local/lib/gedit/plugins/libwordcompletion.so misses libgedit-48.1.so

Der Rest sind andere False positives die schon früher erfolgreich gefiltert wurden.
 
Ich habe noch einen rc3 rausgehauen. pkg_libchk zu testen ist gar nicht einfach. Mal eine Lib umbenennen geht ja noch aber andere Fälle sind kaum zu testen. Ich glaube ich muss mir Mal ein paar Pakete generieren, die geben Compat libraries linken etc.. Aber es bleibt immer die Angst mit dem False positives auch echte Fehler zu unterdrücken.
 
pit@Mifcom ~/bsda2/bsda2-0.5.1-rc3:- > ./src/pkg_libchk -m > report.txt
ohne -m liefert es keine Fehler. Mit -m ebenfalls nicht, aber ich füge den report mal an.
 

Anhänge

Zurück
Oben