1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Teile von /usr versehentlich gelöscht!

Dieses Thema im Forum "FreeBSD - Allgemein" wurde erstellt von testit, 6 Februar 2018.

  1. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    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
     
  2. lme

    lme FreeBSD Committer

    Registriert seit:
    6 Mai 2003
    Beiträge:
    2.647
    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!
     
    CrimsonKing gefällt das.
  3. CrimsonKing

    CrimsonKing Systemzerstörer

    Registriert seit:
    9 März 2012
    Beiträge:
    1.598
    Wie schafft man es, mit rm -rf usr nur einen Teil zu löschen?

    Normalerweise in /usr/bin.
     
  4. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.258
    Code:
    # rm -rf usr
    STRG+C
    
    Rob
     
    CrimsonKing gefällt das.
  5. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621

    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
     
  6. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.258
    Ja, genau.

    Rob
     
  7. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    Exakt so war es!

    Viele Grüße
    testit
     
    CrimsonKing gefällt das.
  8. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    Danke, Rob!

    Muss in diesem Zusammenhang irgendwann ein Reboot gemacht werden?
    Davor graut es mir nämlich ...

    Viele Grüße
    testit
     
  9. Yamagi

    Yamagi Possessed With Psi Powers Mitarbeiter

    Registriert seit:
    14 April 2004
    Beiträge:
    9.031
    Ort:
    Schleswig-Holstein
    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.
     
  10. double-p

    double-p BOFH

    Registriert seit:
    6 September 2003
    Beiträge:
    718
    Ort:
    Buxtehude, Germany
    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
    
     
  11. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    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
     
  12. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    Herzlichen Dank für die Erläuterungen!

    Viele Grüße
    testit
     
  13. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    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


     
  14. KobRheTilla

    KobRheTilla used register

    Registriert seit:
    20 Januar 2011
    Beiträge:
    1.258
    Ich würde mich davon nicht beeindrucken lassen. Das wichtigste ist erstmal, dass du überhaupt ein System am Start hast. Danach kannst du ja wieder aus den Quellen eine aktuelle Welt bauen.

    Rob
     
  15. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
    Hi,

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

    Viele Grüße
    testit
     
  16. Yamagi

    Yamagi Possessed With Psi Powers Mitarbeiter

    Registriert seit:
    14 April 2004
    Beiträge:
    9.031
    Ort:
    Schleswig-Holstein
    Stimmt, bis einschließlich 9.3 wurde mit der GCC gebaut.
     
  17. testit

    testit Member

    Registriert seit:
    1 August 2005
    Beiträge:
    621
  18. Yamagi

    Yamagi Possessed With Psi Powers Mitarbeiter

    Registriert seit:
    14 April 2004
    Beiträge:
    9.031
    Ort:
    Schleswig-Holstein
    Ja, kannst du. Da sind allerdings auch keine anderen Dateien drin, als einzeln auf dem FTP-Server liegen.