Teile von /usr versehentlich gelöscht!

testit

Well-Known Member
Guten Abend,

ich habe auf einem PC noch ein FreeBSD 8.4-RELEASE-p16 (GENERIC) #0 laufen.

Leider habe ich eben versehentlich (Ich wollte /usr in einem alten Backup-Verzeichnis löschen) mittels "rm -rf usr" einen Teil meines usr-Verzeichnisses gelöscht, bspw. das /bin. Befehle wie top, find, ps, grep etc. funktionieren nun nicht mehr. Glücklicherweise sind die /usr/home-Verzeichnisse alle noch intakt.

Frage:

Kann ich die Inhalte von /usr/bin wieder rekonstruieren / neu bauen?
Wo befinden sich eigentlich Befehle wie top, grep, locate usw?

Ich stelle diese Frage, weil ich unter o. a. FreeBSD 8.4 p16 eine VM mit FreeBSD 8.3-RELEASE-p11 (GENERIC) #0 laufen habe und dort unter /bin die o.a. Befehle nicht finde.

Kann ich notfalls versuchen, das FreeBSD 8.3-RELEASE-p11 auf p16 upzudaten und dann den Inhalt des /bin zu kopieren?

Danke im voraus und viele Grüße
testit
 
Du hast die wichtigsten Programme immer noch unter /rescue statisch gelinkt. Damit kannst du auf jeden Fall alles wieder beheben. Falls du unter /usr/src bzw. /usr/obj noch die Quellen und Binarys von 8.4 liegen hast, ist es am einfachsten, nach /usr/src zu gehen und ein "make installworld" auszuführen.
Ansonsten lädst du dir das 8.4er ISO runter, mountest das mit /rescue/mdconfig und mount nach /mnt und entpackst dann den Base-Tarball unter /mnt/usr/release oder so ähnlich. Aber wichtig: auf jeden Fall vorher ein Backup von /etc anlegen!
 
Du hast die wichtigsten Programme immer noch unter /rescue statisch gelinkt. Damit kannst du auf jeden Fall alles wieder beheben. Falls du unter /usr/src bzw. /usr/obj noch die Quellen und Binarys von 8.4 liegen hast, ist es am einfachsten, nach /usr/src zu gehen und ein "make installworld" auszuführen.
Ansonsten lädst du dir das 8.4er ISO runter, mountest das mit /rescue/mdconfig und mount nach /mnt und entpackst dann den Base-Tarball unter /mnt/usr/release oder so ähnlich. Aber wichtig: auf jeden Fall vorher ein Backup von /etc anlegen!


Hallo,

vielen Dank für Deinen Hinweis!

In meinem /rescue-Verzeichnis liegen in der Tat mehrere Programme, deren Größe bei ALLEN mit 5011464 angegeben wird. Diese Dateien einfach in /usr/bin zu kopieren, scheint ja nicht auszureichen. Zumindest hatte ich das mal mit SED gemacht und konnte SED danach im /usr/bin nicht aufrufen. Auch im /rescue-Verzeichnis selbst führt bspw. ein "tail" zur Ausgabe "command not found".

/usr/ob ist leer, aber /usr/src scheint offenbar noch alles vorzuhalten.

Liege ich richtig in der Annahme, dass ich daher vor "make installworld" noch ein "make buildworld" starten muss?


Viele Grüße
testit
 
Das Problem ist, dass "make buildworld" am Anfang 'clang' und 'make' aus dem Host braucht. Und beide liegen unter /usr/bin. Du kannst es probieren, aber die Chancen, dass noch genug da ist, sind vielleicht 50:50. Alternativ könntest du dir das fertige System aus dem Archiv laden: http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/8.4-RELEASE/base/ Und dann entpacken, aber nicht und auf gar keinen Fall über /:

Code:
cat base.a* base.b* | tar xfvp -

Dann das Heraussuchen was du brauchst. Das ist nun aus vager Erinnerung geschrieben, 8.x ist lange her. Müsste aber so ähnlich gehen.
 
Hallo,

In meinem /rescue-Verzeichnis liegen in der Tat mehrere Programme, deren Größe bei ALLEN mit 5011464 angegeben wird. Diese Dateien einfach in /usr/bin zu kopieren, scheint ja nicht auszureichen. Zumindest hatte ich das mal mit SED gemacht und konnte SED danach im /usr/bin nicht aufrufen. Auch im /rescue-Verzeichnis selbst führt bspw. ein "tail" zur Ausgabe "command not found".
Die sind alle gleich gross, weil es immer die gleiche Datei ist (siehe ls -li /rescue). Dahinter versteckt sich crunchgen(1).
Diese Dateien sind nicht zum rueberkopieren nach /usr/bin u.ae. gedacht, sondern MIT diesen einen restore oder was auch immer hinzubekommen.
Wenn Du in /rescue bist, musst du das mit ./ aufrufen, oder mit komplettem Pfad
Code:
[double-p@ns /rescue]$ ./whoami
double-p
[double-p@ns /usr/bin]$ /rescue/ls | /rescue/tail -1
ztest
 
Guten Abend,

Ich stelle diese Frage, weil ich unter o. a. FreeBSD 8.4 p16 eine VM mit FreeBSD 8.3-RELEASE-p11 (GENERIC) #0 laufen habe und dort unter /bin die o.a. Befehle nicht finde.

Kann ich notfalls versuchen, das FreeBSD 8.3-RELEASE-p11 auf p16 upzudaten und dann den Inhalt des /bin zu kopieren?

Danke im voraus und viele Grüße
testit

Hallo,

ich stelle gerade fest, dass ich bei meiner Eingangsfrage eine andere FreeBSD-Versionsnummer in der VM meinte:

"Kann ich notfalls versuchen, das FreeBSD 8.3-RELEASE-p11 auf FreeBSD 8.4-RELEASE-p16 upzudaten und dann den Inhalt des /bin zu kopieren?

Viele Grüße
testit
 
Die sind alle gleich gross, weil es immer die gleiche Datei ist (siehe ls -li /rescue). Dahinter versteckt sich crunchgen(1).
Diese Dateien sind nicht zum rueberkopieren nach /usr/bin u.ae. gedacht, sondern MIT diesen einen restore oder was auch immer hinzubekommen.
...
[/code]

Herzlichen Dank für die Erläuterungen!

Viele Grüße
testit
 
Hallo Yamagi,

vielen Dank für Deine Tipps!

Fragen:

Kann ich alternativ auch die ISO aus
http://ftp-archive.freebsd.org/pub/...AGES/8.4/FreeBSD-8.4-RELEASE-amd64-livefs.iso
mounten und mir die benötigten Sachen kopieren?

Welche Rolle spielen denn eigentlich die Patchlevel?
Vermutlich wird o. a. livefs.iso nicht ausgerechnet FreeBSD 8.4 p16 sein.

Viele Grüße
testit


Das Problem ist, dass "make buildworld" am Anfang 'clang' und 'make' aus dem Host braucht. Und beide liegen unter /usr/bin. Du kannst es probieren, aber die Chancen, dass noch genug da ist, sind vielleicht 50:50. Alternativ könntest du dir das fertige System aus dem Archiv laden: http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/old-releases/amd64/8.4-RELEASE/base/ Und dann entpacken, aber nicht und auf gar keinen Fall über /:

Code:
cat base.a* base.b* | tar xfvp -

Dann das Heraussuchen was du brauchst. Das ist nun aus vager Erinnerung geschrieben, 8.x ist lange her. Müsste aber so ähnlich gehen.
 
Das Problem ist, dass "make buildworld" am Anfang 'clang' und 'make' aus dem Host braucht....
Dann das Heraussuchen was du brauchst. Das ist nun aus vager Erinnerung geschrieben, 8.x ist lange her. Müsste aber so ähnlich gehen.

Hi,

clang kam meines Wissens erst in FreeBSD => V10 auf. GCC und MAKE sind noch vorhanden.

Viele Grüße
testit
 
Ja, kannst du. Da sind allerdings auch keine anderen Dateien drin, als einzeln auf dem FTP-Server liegen.
 
Zurück
Oben