Nach einem Upgrade von 12.1 nach 13.1 fehlt die libncurses.so.8 und ich kann mich nicht mehr einloggen.

Wie soll ich src auschecken wenn ich nicht ins System komme
Du kommst doch ins System (im Singeusermode) und hast nur nicht die Bash?!

Was noch sein kann weshalb das Upgrade via pkg und Co nicht funktioniert ist, das Dein ZFS (wegen dem SingeUser-Mode) als readonly gemountet ist.

Wenn alles in Standardwerten installiert ist, kannst Du das mit einem:
zfs set readonly=off zroot/ROOT/default
beheben. Ansonsten musst Du halt ggf. Poolname und Dataset anpassen.

Fehlen nötige ZFS-Mounts:
zfs mount -a
 
Führst Du die Befehle auch als root aus?
Ja das mache ich. Er biete mir den Download an, bricht dann aber ab wegen
Read-Only Filesystem.
Ich bin immer noch im Single User Mode.
Wie kann ich die fehlenden Dateisystem mounten (wie src,ports und was sonst noch fehlt)?
Anbei ein Foto von zfs list
IMG_0045.jpeg
 
Ich habe gerade festgestellt das ich überhaupt kein Netz habe,
geschweige denn Internet.
Bekomme ich das im Single User Mode auch zum laufen?
 
Bekomme ich das im Single User Mode auch zum laufen?
Mit ifconfig :-)

Ich würde aber einfach die Standard-Shell (wie hier auch schon vorgeschlagen) von der bash weg wechseln, damit Du erst mal Dich wieder normal einloggen kannst. Kannst Du Dich normal einloggen hast Du eigentlich auch all das wieder, was Du so konfiguriert hast (also Tastatur-Mapping, Netzwerk usw.).

Dazu musst Du die /etc/master.passwd ändern. Dort stehen ja Deine Login-Namens inkl. Shells und die Shell solltest Du halt von der Bash auf /bin/sh oder auch /bin/csh ändern.

Nachdem Du die editiert hast führst Du noch ein /usr/sbin/pwd_mkdb -p /etc/master.passwd um quasi die Änderungen wirksam zu machen und dann solltest Du Dich nach einem Reboot wieder einloggen können.

Also noch mal in Schritten:
  • ZFS als rw mounten
  • /etc/master.passwd ändern
  • /usr/sbin/pwd_mkdb -p /etc/master.passwd
  • Reboot
  • pkg upgrade -f
 
Zuletzt bearbeitet:
Ich habe gerade festgestellt das ich überhaupt kein Netz habe,
geschweige denn Internet.
Bekomme ich das im Single User Mode auch zum laufen?
Sooo,

nach einem Start von
hatte ich dann auch Internet.
Dann habe ich folgende Befehle abgeschickt
und
und er installiert alle fehlenden Pakete neu (1131).

Abzuwarten ist, ob ich nach der Installation (sie läuft gerade noch)
mich wieder einloggen kann.

Wenn das update fertig ist melde ich mich noch mal.

Bis dahin erstmal Vielen Dank an alle die geholfen haben.

Christian
 
Stimmt. /etc/netstart geht natürlich auch.

Das mit dem User-Shell würde ich mir aber trotzdem noch mal überlegen damit ein solcher Fall nicht noch mal auftreten kann.
Die Bash kann man ja dann trotzdem benutzen (warum auch immer man das will :)), aber das man sie zumindest nicht als Login-Shell einträgt. Oder zumindest ein zugänglichen User-Account (z.B. root) hat der die nicht hat.
 
Hallöle,

da bin ich wieder, ich kann mich wieder einloggen das ist ja schon mal schön.
Bei Paket pulseaudio-14.2_4 wird pkg upgrade -f beendet,
mit der Meldung
pkg: PRE-INSTALL script failed
Kann man da etwas machen, z.B. das Paket übergehen?
Ich bin froh das ich mich wieder einloggen kann und nicht neuinstallierten muss.
Ich werde mich auf meinem Rechner nicht mehr ausloggen bis alles wieder läuft.

Grüße
 
@lme, danke für deinen Link, der hat geholfen, aber
jetzt zickt er mit der FreeBSD Docu rum, das Verzeichnis
/usr/local/share/doc/freebsd
enthält nicht den Symlink en der auf das Verzeichnis
weisst.
Den Link habe ich hinzugefügt.
Dann habe ich den Befehl
abgesetzt und an gleicher Stelle taucht der Fehler wieder auf
und der Symlink en ist verschwunden.
Die Docu über das Programm bsdconfig zu installieren, schlägt fehl.
Ich kann im Untermenü bei 2 "Documentation Installation"
den Button für die deutsche Sprache (de) auswählen, aber das war es dann schon.
Bei EXIT passiert gar nichts.
Den Link zu erneuern bringt aber auch nichts.
Anbei noch mal ein Foto von der letzten Fehlermeldung

IMG_0047.jpeg


Kann mir einer sagen was hier los ist?
Egal.

Ich mache für heute Schluss, ich habe fast den ganzen Tag daran gesessen.
Mal sehen vielleicht melde ich mich morgen wieder.

Grüße Christian
 
Zuletzt bearbeitet:
Ich hatte das auch schon das pkg upgrade -f mit Fehlern abbricht. Was meiner Erfahrung nach immer ganz gut geholfen hat, ist das betreffende Paket mit pkg remove zu entfernen dann das Upgrade durchlaufen zu lassen und anschließend das oder die betreffenden Packages mit pkg install erneut zu installieren.
 
OT:
an alle, die hier helfend mitarbeiten: wie seht ihr denn, was der Stand der Dinge ist und was wie wo gemacht wurde?
Woraus leitet ihr eure Ratsschläge ab?

Ich selbst verstehe nur Bahnhof, krass gesagt. Das wurmt mich natürlich.
Deshalb frage ich nach.

Für mich sieht das so aus, dass jemand den genialen Vorschlag machte, mal die Login-Shell in Verdacht zu ziehen. Mir wäre das nicht eingefallen, weil man ja weiß, dass man zumindest die Login-Shell für root nicht ändert.
Wurde das umgesetzt, was dort empfohlen wurde?
Keine Ahnung.

Dann wird das Netzwerk neu gestartet und ein Upgrade neu angeworfen und danach kann man sich wieder einloggen? Wie hat man das denn gemacht, ohne sich ein zu loggen?
Das ist mir reichlich suspekt.

Und einige Dinge mehr, die ich nicht verstehe.
Statt an dem Problem mit zu arbeiten (wozu ich auch vermutlich nicht ausreichend qualifiziert bin), versuche ich also meine mentalen Defizite zu begreifen und hoffe auf ernsthafte Antworten.



In meinem Lösungs-Szenario hätte man den Pool (zB mit nomad-bsd als Live-System) importiert, dann alle wichtigen Daten gesichert (Backup!!!), dann die Reparatur wie oben erwähnt versucht und mal sachte neu gestartet.
Wäre das fehl geschlagen, hätte ich dringend dafür gesprochen, das System neu auf zu setzen.
In jedem Fall hätte es für mich erste Priorität gehabt, die benötigten Daten aus dem vorhandenen Pool zu sichern!

Und ich habe noch immer das Gefühl, dass es besser wäre, das System komplett neu zu installieren und gesicherte Daten zurück zu spielen.
Keine Ahnung, wieso. Bauchgefühl.


Das wäre mir vernünftig erschienen.
Aber nicht, was ich hier lese.
Da fehlt mir WAS.
Vielleicht kann ich WAS aus euren Erklärungen lernen.
 
wie seht ihr denn, was der Stand der Dinge ist und was wie wo gemacht wurde?
Erfahrung und teilweise auch ein wenig raten. :-)

dass jemand den genialen Vorschlag machte, mal die Login-Shell in Verdacht zu ziehen.
Ja. Das war allerdings ein guter Einfall. Auch hier würde ich auf Erfahrung tippen und das Problem mit der libncurses.
Schließlich kam der Fehler direkt nach dem einloggen. Und das FreeBSD-Base-System hat keine Datei namens libncurses.so.8

Wie hat man das denn gemacht, ohne sich ein zu loggen?
Er konnte sich ja "einloggen". oder besser gesagt der Single-User-Mode, wo man ja direkt root ist und sich selbst ne Shell geben kann. Dann ist man zumindest wieder drin im System, auch wenn Platten erst mal readonly gemountet sind und ne ganze Menge Kram nicht geht, weil die rc-Scripts nicht abgearbeitet werden.
Man muss dann ggf. diese Dinge (die sonst automatisch beim Bootup geschehen) manuell machen. Zumindest die Dinge, die man zur Reparatur braucht.

In meinem Lösungs-Szenario hätte man den Pool (zB mit nomad-bsd als Live-System) importiert, dann alle wichtigen Daten gesichert (Backup!!!)
Backup ist natürlich nie verkehrt. Optimalerweise hat man schon Eines bevor man upgradet.

Meiner Erfahrung nach kann man aber ein FreeBSD-System fast immer auch so wieder zum laufen bringen. Insbesondere wenn das Base-System noch intakt ist.

Und ich habe noch immer das Gefühl, dass es besser wäre, das System komplett neu zu installieren
Neu installieren braucht man ja eigentlich nur, wenn irgendwas grundlegendes kaputt ist (oder die Reparatur so langwierig ist, das ein Neuinstall schneller geht). Hier waren ja "nur" die Packages nicht "in Ordnung" (also waren noch für ne alte FreeBSD-Version und nicht FreeBSD 13). Das ist jetzt also nix, wo man irgendwie gleich mit nem Neuinstall ran muss.
 
Da bin ich wieder,

@Andy_m4
Was meiner Erfahrung nach immer ganz gut geholfen hat, ist das betreffende Paket mit pkg remove zu entfernen dann das Upgrade durchlaufen zu lassen und anschließend das oder die betreffenden Packages mit pkg install erneut zu installieren.
Hei, das letzte Bild was ich gepostet habe (#39) enthält die letzte Fehlermeldung von pkg upgrade -f.
Was soll ich da jetzt removen, ich werde daraus nicht schlau?

Kein Backup zu haben wird mir nicht nochmal passieren.
Wenn das System wieder läuft werde ich anfangen regelmäßige Backups zu machen.
 
Hei, das letzte Bild was ich gepostet habe (#39) enthält die letzte Fehlermeldung von pkg upgrade -f.
Was soll ich da jetzt removen, ich werde daraus nicht schlau?
Ich auch nicht, denn die relevanten Zeilen sind nicht mehr mit auf dem Bild. Aber prinzipiell solltest Du die relevanten Pakate mit pkg info | grep freebsd-doc herausfinden - alles deinstallieren (falls gewünscht) wieder installieren.
Die Meldung sagt übrigens, dass Dateien, die ein Paket Dir auf die Platte setzte, nun nicht mehr vorhanden sind. Damit scheitert die Paketverwaltung. Da musst jemand händisch Dateien verändert haben, die in der Hoheit der Paketverwaltung lagen. Nie eine vom Paketmanagement verwaltete Datei anfassen!
 
Ich selbst verstehe nur Bahnhof
Das geht mir bei anderen Threads nicht anders ;) Früher hieß es "hey, du kennst dich doch mit Computern aus" - heute gibts Hardware, Netzwerk, Datenbanken, Scripte, UEFI, Webserver uvm.…
jemand den genialen Vorschlag machte, mal die Login-Shell in Verdacht zu ziehen
Das war eigentlich naheliegend, denn: Das System bootet bis zum Login, und erst danach scheitert es mit dem Zugriff auf eine Datei, die unter FreeBSD 13 gar nicht mehr existiert. Der Login greift also auf etwas zu, was zu FreeBSD 12 gehört - und das kann nur Userland sein (es bedürfte schon größeren User-Anstrengungen die Binaries und Bibliotheken des Grundsystems out of sync zu bekommen). Und da der OT selbst den Zusammenhang mit einem Upgrade von 12 auf 13 nannte…

Da ich weder das System noch den User kenne war mein Vorschlag: Die gute alte "Boot-Diskette" (heute: Livesystem) zum zurückbiegen der Shell zu nutzen; Nun wurde statt dessen einfach der Singleuser-Boot genutzt - das hätte je nach Szenario und Wissen u.U. auch scheitern können. Und auch empfahl ich das Livesystem statt der Shell (diese Option bietet das Installmedium ebenfalls) deswegen, da z.B. bei mir die relevanten Devices wie "/dev/nvd0p2" beim "Exit zur einfachen Shell" gar nicht erstellt werden, sondern nur "/dev/nvme* existiert." Der sichere und einfachste Weg eben.

Nun wurde eben der Singleuser genutzt. Passt dann die Shell wieder zu den Bibliotheken ist das Ding eigentlich erledigt.

Alles in allem eigentlich eine triviale Angelegenheit. Nur der Thread selbst ist etwas chaotisch geworden, aber das ist eigentlich fast normal, hat jemand sein mühevoll gefüttertes System plötzlich nimmer und bangt um seine Daten.
 
@jmos,
der Befehl
Code:
info | grep freebsd-doc
wird mit der Meldung
Code:
ld-elf.so.1: Shared objekt "libncursesw.so.8" not found, required by "info"
beendet.
Und ich weiss nicht was Sache ist.
 
@jmos,
der Befehl
Code:
info | grep freebsd-doc
wird mit der Meldung
Code:
ld-elf.so.1: Shared objekt "libncursesw.so.8" not found, required by "info"
beendet.
Der Befehl wäre auch reichlich sinnfrei. Lies nochmal.

Die fehlende Datei ist keine, die man installieren könnte - die kommt nicht mit einem Paket, sondern mit FreeBSD. Und unter FreeBSD 13.1 gibt es diese schlicht nicht. Daher der Hiweis, roots Loginshell keinesfalls zu ändern, denn sonst hast Du das gleiche Problem beim nächsten Upgrade wieder: irgend wann gibt es die aktuelle "libncursesw.so.9" nicht mehr, dafür eine "libncursesw.so.10".
 
Der Befehl wäre auch reichlich sinnfrei. Lies nochmal.
Ok das war mein Fehler.
Es wird mir angezeigt das die Deutsche und die Englische Docu installiert ist
Aber warum funktioniert die Installation bzw. die Deinstallation über bsdconfig nicht?
Gibt es noch andere Möglichkeiten die Docu zu installieren oder zu deinstallieren?
 
Zurück
Oben