• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] hab mir eben das System unterm Hintern zerbröselt

catalpa

Member
Guten Abend,

eben habe ich mit einem falsch umgebrochen kopierten "find/unlink" fast ALLE symbolischen Links der
Systemplatte gelöscht. Habs noch gemerkt und abgebrochen aber da war schon viel durch.
Das system läuft noch und ich hab auch noch eine Konsole per ssh offen aber es ist
logischerweise schwer im Eimer. Das OS (Suse 12.3) ist noch recht neu, erst ein paar Wochen alt und
noch unverbastelt. Kann ich von der Install-DVD in die vorhandenen System-Reste neu installieren um die Links
wieder herzustellen? Daten waren keine auf der Platte, aber von Null wieder neu einzurichten dauert
halt auch etwas. So n Mist, ich hoffe das war zumindest lehrreich ;-)
 
A

Anonymous

Gast
Du kannst versuchen alle installierten Pakete forciert noch einmal zu installieren.
Die einzelnen Links anders wieder herzustellen als aus einem Backup ist nahezu unmöglich, da selbst die rpm-Datenbank die meisten nicht kennt, da die meisten wahrscheinlich in Post-Install-Scripten erzeugt werden.
Ausschalten oder rebooten, oder Runlevel ändern wenn du noch etwas reparieren oder sichern willst :???: würde ich nicht versuche, das kann schief gehen.

Alternativ Konfiguration sichern und neu Installieren ohne die Userdaten dabei zu zerschießen.

robi
 
OP
C

catalpa

Member
Guten Morgen,

ja, keinen Neustart übersteht das hier nicht! z.B. Yast läuft nicht, ein neuer (weiterer) ssh-Login geht nicht
und cronjobs scheinen auch nicht zu laufen...

>Du kannst versuchen alle installierten Pakete forciert noch einmal zu installieren.
gibts einen globalen zypper-Aufruf für sowas oder würde man das als "update" machen?

>Alternativ Konfiguration sichern und neu Installieren ohne die Userdaten dabei zu zerschießen
das hätte ich jetzt auch versucht aber zypper wäre ein Versuch :)

Danke für die schnelle Hilfe.
 
A

Anonymous

Gast
Guten Morgen,

als Idee in die Runde geworfen: Sollte die Repairfunktion der Installtions-DVD das nicht beheben können.

VG

Sascha / Silmarillion
 
OP
C

catalpa

Member
>als Idee in die Runde geworfen: Sollte die Repairfunktion der Installtions-DVD das nicht beheben können.
ist mir noch nie aufgefallen die Funktion, normalerweise hechelt man da ja durch ;-)
aber um das zu testen muss ich booten und will vorher alle anderen Optionen durch haben.
Der Rechner muss auch erst mal wieder n CD-LW bekommen... nenene, was fürn unnötiger Ärger.
 

josef-wien

Ultimate Guru
Falls Deine Löschaktion keine symlinks zu notwendigen Bibliotheken und keine hardlinks zu notwendigen Dateien betroffen hat, könnte
Code:
zypper up -f
helfen. Ansonsten sehe ich neben einer Neuinstallation nur noch ein Update über die Installations-DVD, wobei Du dafür sorgen mußt, daß alle Pakete aktualisiert werden.

P. S. Für die Zukunft solltest Du Dir auch Gedanken zum Thema "Datensicherung" machen.
 
OP
C

catalpa

Member
zypper up kennt kein force und ohne bringts nix stelle ich eben fest :-/
zypper ref -f tuts auch nicht, ich glaube der Fall: "alles noch mal" ist bei zypper nicht vorgesehen.

>Für die Zukunft solltest Du Dir auch Gedanken zum Thema "Datensicherung" machen.
Daten sind sicher :) nur das OS habe ich vernachlässigt, "lief ja immer" und kann ersetzt
werden. nur jetzt wo es wirklich ersetzt werden muss kommt mir das natürlich ungelegen.
Naja, wenn es wieder o.k. ist mache mal ein Image vom Bootlaufwerk. Gibt es ein
Nettes Projekt das einen Boot-USB-Stick mit Imagetool bereitstellt...?
Habe eben Partimage ergooglet das sieht gut aus, brauche nur noch m keines Boot-Iso.
 
A

Anonymous

Gast
catalpa schrieb:
zypper up kennt kein force und ohne bringts nix stelle ich eben fest :-/
zypper ref -f tuts auch nicht, ich glaube der Fall: "alles noch mal" ist bei zypper nicht vorgesehen..
"ist nicht vorgesehen" : gibts in Linux so schnell nicht ;)

Aber das scheint doch ziemlich kompliziert zu werden, früher was das einfacher, da ging das prima mit rpm, heute ist das bei den verschiedenen Paketquellen und Pakettypen wohl komplizierter wie ich dachte.
Habe mal folgendes versucht. Zypper sollte natürlich noch funktionieren und sämtliche eingebundenen Repos erreichbar und aktuell sein.

erstmal versucht mit zypper eine Liste der aktuell installierten Pakete zu erstellt:
Code:
zypper se -i -s -t package > /tmp/package_list
oder nur von einem einzelnem Repo eine Liste der Pakete von diesem Repo
Code:
zypper se -r "opensuse-guide.org-repo" -i -s > /tmp/package_list
Liste sieht dann etwa wie folgt aus, bzw hat folgendes Format.
Code:
i | zip                                        | package | 3.0-2.1                      | i586   | openSUSE-11.4-11.4-0                     
i | zisofs-tools                               | package | 1.0.8-8.1                    | i586   | openSUSE-11.4-Oss                        
i | zisofs-tools                               | package | 1.0.8-8.1                    | i586   | openSUSE-11.4-11.4-0                     
i | zlib                                       | package | 1.2.5-9.10.1                 | i586   | Aktualisierungen für openSUSE 11.4 11.4-0
Damit kann man dann auf der Konsole schon etwas anfangen, na ja man ist vielleicht etwas übertrieben, vielleicht einige können sowas ;)
auch wenn die nächste Zeile bei euch in mehreren Zeilen dargestellt werden sollte, es ist nur eine einzige Kommandozeile.

Code:
awk -F '|' '$1=="i " {gsub(" ","",$2);gsub(" ","",$4);gsub(" ","",$5); match($6,/[A-Za-z0-9][A-Za-z0-9 _.;:-]*[A-Za-z0-9]+/);print "zypper in -f -r" ,"\"" substr($6,RSTART,RLENGTH) "\"", "-t",$3,"\"" $2 "." $5 ">=" $4 "\""}' /tmp/package_list

Ergebnis ist dann eine Ausgabe in folgenden Format:
Code:
zypper in -f -r "openSUSE-11.4-Oss" -t  package  "zip.i586>=3.0-2.1"
zypper in -f -r "openSUSE-11.4-11.4-0" -t  package  "zip.i586>=3.0-2.1"
zypper in -f -r "openSUSE-11.4-Oss" -t  package  "zisofs-tools.i586>=1.0.8-8.1"
zypper in -f -r "openSUSE-11.4-11.4-0" -t  package "zisofs-tools.i586>=1.0.8-8.1"
zypper in -f -r "Aktualisierungen f" -t  package  "zlib.i586>=1.2.5-9.10.1"

(mal abgesehen, das ich in dem AWK Script noch nicht eingebaut habe, das die Reponamen wie bei mir auch deutsche Umlaute enthalten können)
hatte ich mir eigentlich erwartet, dass das die einzelnen Zeilen funktionierende Zypper Kommandos sind, die eine Reinstallation eines Paketes anstoßen, , zumindestens auf dem openSUSE 11.4 auf dem ich das probiert habe, sehe ich nicht ob er das wirklich so macht, irgendwo könnte dort noch ein Denkfehler drin sein, oder das geht wirklich nicht mit zypper, obwohl es so wie ich die Manpage interpretiere. eigentlich funktioneren sollte.

Bei einigen Paketen mal ausprobiert, die Ausgabe sieht soweit schon ok aus, mit dem forcing, aber irgendwie sehe ich in der zypp logfile nichts .... Vielleicht macht er ja wirklich was, müsste man mal mit defekten Paketen versuchen.
Code:
# zypper in -f  -r "libdvdcss repository" -t  package  "libdvdcss2.i586<=1.2.10-2.pm.3.1"
Loading repository data...
Reading installed packages...
Forcing installation of 'libdvdcss2-1.2.10-2.pm.3.1.i586' from repository '@System'.
Resolving package dependencies...

Nothing to do.
Na ja, vielleicht will ja jemand an dieser Stelle weiterforschen. Einige Pakete sind auch als Repo mit "(System Packages)" in der Liste, das kann so natürlich nicht funktionieren. Ist noch genügend zum basteln an diesem Thema übrig. ;) Im Web habe ich auch nicht was wirklich vernünftiges gefunden, außer vielleicht System mit Yast versuchen zu klonen und eine AutoYast-konfiguration daraus zu basteln. Nur ganz schlecht, wenn Yast und Yast2 wegen Fehlern nicht mehr funktioniert. :???:


robi
 
OP
C

catalpa

Member
wow. cooler Ansatz :)

Das Erstellen der Liste hat schon echt lange gedauert. Aber ob das am Ende was
funktionstüchtiges ergibt? Ich habe mir für Mittwochabend das Neuaufsetzen oder
wenn möglich reparieren von DVD vorgenommen. Das ist gut für den WAF, meine Frau
ist nicht da und ein Serverausfall fällt dann weniger auf ;-)
"Schlimm genug", dass die automatischen TV-Downloads z.Z. nicht gehen (Java
auch zersägt).

vielen Dank für die Hilfe, ich experimentiere bis morgen noch rum.
 
Also ich würde es erst einmal etwas anders versuchen.
Code:
rpm -qa > liste.txt
erstellt dir eine Liste aller installierten Pakete. Diese bereinigst Du jeweils um die Architekur, also das .i586 oder ähnliches am Ende weg. Danach müßen die Zeilenumbrüche aus der Liste raus und die Paketnamen durch ein Leerzeichen getrennt werden. Nun solltest Du per
Code:
echo liste.txt | xargs zypper install -f
sämtliche Pakete re-installieren können. Ausprobiert hab ich das jetzt nicht.
 
OP
C

catalpa

Member
habs getestet und was zu meinem Erstaunen will er die Install-DVD sehen:

Code:
1547 packages to reinstall.
Overall download size: 1.14 GiB. No additional space will be used or freed after the operation.
Continue? [y/n/?] (y): y
Retrieving package openSUSE-release-dvd-12.3-1.7.x86_64                                         (1/1547),   3.0 KiB (   66 B unpacked)
Failed to mount cd:///?devices=/dev/disk/by-id/ata-HL-DT-STDVD-RAM_GH22NS30,/dev/sr0 on : Mounting media failed

Please insert medium [openSUSE-12.3-1.7] #1 and type 'y' to continue or 'n' to cancel the operation. [yes/no] (no):

wenn ich jetzt n LW drin hätte würde ich das noch testen, aber wie kommt er auf die CD?
 
Code:
zypper lr -d
liefert dir die Antwort. Du wirst die DVD noch als Repo drin haben. Davon ab, befürchtete ich ja das dir dieser Weg deine Konfigs überschreibt.
 
OP
C

catalpa

Member
o.k. lassen wir dass und versuchen es morgen per "Instandsetzen" oder wie
der Punkt heißen mag.
 
OP
C

catalpa

Member
so, ich habe jetzt den Server per DVD wieder flott gemacht aber so wie gedacht lief das nicht!
Zum einen hab mich mein Gefühl nicht betrogen, es gibt keinen "System wieder reparieren" Menüpunkt.
Also habe ich es mit einem Update versucht, das hat 2x zum Totalaufhängen des Rechners geführt,
jeweils bei verschiedenen Prozentständen von "Konfiguration sichern". Beim dritten Anlauf habe ich dann
in der Paketauswahl "alles auf jedenfall neu" (oder so) gewählt, was geholfen hat. Danach natürlich noch
alles updaten und der Rechner lief wieder und hatte auch nicht seine Config verloren. Bis auf einen Punkt,
der mich dann doch recht aus der Ruhe gebracht hat: der Runlevel der Dienste waren durch den Wind,
sehr viel grundsätzliches Zeugs (SMB, usw.) waren "aus". Ich habe alles eingeschaltet was ich zu brauchen
denke, bin mir aber nicht ganz sicher :-/ und diese Sache läßt mich sehr an dem Systemzustand zweifeln.
Wer weiß was da noch im Eimer ist und später die lustigsten Probleme macht? Ich werde das jetzt einen
Monat so benutzen und dann auf ein sauberes 13.1 umsteigen denke ich.

Fazit: wenn mal jemand anderes seine Systemlinks löschen sollte (*arrrr*): mach gleich alles platt,
Experimente sind zwar lehrreich aber das Ergebnis ist recht ungewiss.

P.S. wie editiere ich den Topic?
 
A

Anonymous

Gast
catalpa schrieb:
Bis auf einen Punkt,
der mich dann doch recht aus der Ruhe gebracht hat: der Runlevel der Dienste waren durch den Wind,
sehr viel grundsätzliches Zeugs (SMB, usw.) waren "aus". Ich habe alles eingeschaltet was ich zu brauchen
denke, bin mir aber nicht ganz sicher :-/ und diese Sache läßt mich sehr an dem Systemzustand zweifeln.
diese Stelle kann/darf mit dieser Reparturmethode nicht korriegiert werden, aber sollte selbstheilend sein, wenn du deine benötigten Dienste wieder per Hand in Yast kontrollierst/einschaltest, sollte insserv dort wieder automatisch sauber Ordnung reinbringen können. Die Selbstheilung war jedenfalls im Linux immer an dieser Stelle erfolgreich, bis jemand der Meinung war man müsste unbedingt systemd erfinden und als default einsetzen. Aber ich denke die Tools von systemd sollten sowas auch hinbekommen.
catalpa schrieb:
P.S. wie editiere ich den Topic?
einfach deinen ersten Beitrag im Thema mit "ändern" öffnen

robi
 
Oben