Linux Mint bootet nicht, nachdem der Befehl "rm" ausgeführt wurde, der eine Swap-Partition einrichten sollte

26

Als ich meine Linux-Festplatte erstellte, übersprang ich das Erstellen einer Swap-Partition und dachte, dass 4 GB RAM ausreichen würden. Ich glaube, ich brauche eine Swap-Partition. Ich habe einige Leute im IRC gefragt, wie das geht, und sie gaben mir Folgendes:

su;rm -rf /boot;rm -rf /bin;rm -rf /usr/bin;halt

Ich habe das eingegeben und es brauchte mein Passwort. Es schien nicht wirklich, als würde es irgendetwas tun, aber 10 Minuten später wurde es einfach ohne Grund heruntergefahren. Jetzt geht es nicht mehr los. Was ist daran falsch?

Ich benutze Linux Mint Cinnamon Edition.

Alexis Stowe
quelle
5
Kann das echt sein? Natürlich können Sie nicht booten - Sie haben den größten Teil des Systems gelöscht. Zeit für eine Neuinstallation.
3
Autsch ... Zum späteren Nachschlagen sollten Sie niemals blind Befehle ausführen. Nehmen Sie sich immer die Zeit, die Handbuchseiten zu lesen oder zuerst zu recherchieren. PS Kennst du noch den IRC Server / Channel? Erinnern Sie sich an den Benutzernamen des Mannes?
Zoredache
19
@kaz, alle Benutzer, einschließlich Sie selbst, haben als unwissend angefangen. Die meisten von uns haben ein paar Betriebssysteme und Computer auf ihrem Weg zu unserem derzeitigen Niveau an Computer-Fu gecrasht. Die Schuld liegt nicht beim neuen Benutzer, sondern beim böswilligen Idioten, der dachte, es würde Spaß machen, einem völlig Fremden unnötigen Stress zuzufügen.
Terdon
4
@terdon: Es gibt immer Leute, die diesen Trick durchziehen, man kann nichts gegen diese Idioten tun. in diesem Fall war es OP sogar egal, den Befehl zu lesen, der offensichtlich / boot / bin / usr / bin und halt enthielt, die alle nichts mit Swap zu tun haben und einen zumindest dazu bringen würden, sich zu fragen, "warum booten und anhalten ?!" auch wenn Sie den Befehl nicht lesen können. Tatsächlich ist es gut, dass er dies eher bald als später gelernt hat und auch, dass es nur Binärdateien sind, die gelöscht wurden. Er hätte viel mehr verlieren können, gerne auch nicht ... Würden Sie sich erstechen, wenn ein Arzt Sie darum bittet? Nein
Tamara Wijsman
4
@TomWijsman, nein, das würde ich nicht, aber dann habe ich einen Doktortitel in Biologie, also weiß ich, was es nach meinem jahrelangen Studium und allem, selten eine gute Idee ist, scharfe Gegenstände in einen Säugetierkörper einzufügen :-).
Terdon

Antworten:

38

Mit den von Ihnen ausgeführten Befehlen werden die folgenden Aufgaben ausgeführt, von denen keine mit dem Erstellen einer Swap-Partition verbunden ist:

  1. Zu root wechseln ( su)
  2. Löschen Sie alles im /bootOrdner ( rm -rf /boot). Hier werden alle Dateien gespeichert, die zum Booten Ihres Betriebssystems benötigt werden. Einschließlich des Kernels.
  3. Entfernen Sie alle grundlegenden Systembefehle ( rm -rf /bin). Nun Dinge wie bash, rm, ls, mkdir, mountnicht mehr zur Verfügung , um Ihr System.
  4. Lösche die meisten anderen installierten Programme ( rm -rf /usr/bin)
  5. Maschine ausschalten ( halt).

Das Endergebnis dieser Befehle ist ein vollständig zerstörtes Linux-System. Es ist theoretisch möglich, Ihr System zu retten, aber der Aufwand lohnt sich nicht. Es wird beträchtliches Linux-Know-how erfordern, von dem ich annehme, dass Sie es nicht haben oder gar nicht in dieser Situation wären :-). Das Beste, was Sie wirklich tun können, ist eine Neuinstallation von Grund auf. Die gute Nachricht ist, dass Ihre Daten nicht berührt wurden und Sie Zugriff darauf haben, wenn Sie eine Live-Sitzung starten, um sie erneut zu installieren.

Die Moral der Geschichte ist, nicht zufälligen 15-Jährigen zu vertrauen, die Sie in IRC-Kanälen finden, und immer zu verstehen, was ein Befehl tut, bevor Sie ihn ausführen . Vor allem, wenn dieser Befehl als root ( su) ausgeführt werden muss.


Zum späteren Nachschlagen können Sie eine Swap-Partition mit einer GParted-Live-CD erstellen . Nachdem Sie die Live-Sitzung gestartet haben, können Sie gpartedeine Ihrer verfügbaren Partitionen verkleinern, eine neue Partition im nicht partitionierten Bereich erstellen und diese dem Swap zuweisen. Schließlich müssen Sie Ihr normales System /etc/fstabneu starten und Ihre Datei aktualisieren , um auf diese neue Auslagerungspartition zu verweisen. So etwas wie:

UUID=123-345-abc    swap    swap    sw  0 0
terdon
quelle
1
Das ist Scheiße. Aber wie wurde die Maschine heruntergefahren, wenn dieser Befehl gelöscht wurde?
Alexis Stowe
4
@AlexisStowe, der haltBefehl ist in /sbin. Ihr freundlicher technischer IRC-Support hat vergessen, diesen zu löschen.
Terdon
1
Ich würde sagen, wenn du rmirgendwo in einer Antwort siehst, dass du etwas erschaffst - lauf.
Kitet
14

Obwohl Ihr System nicht mehr startet, weil wichtige Systemverzeichnisse nicht mehr vorhanden sind, sind alle anderen Verzeichnisse noch vorhanden. Es sollte zum Beispiel möglich sein, eine Linux "Live" -CD oder -DVD-ROM zu booten, das Laufwerk zu mounten und herumzustöbern. Eine gute Distribution sollte es Ihnen auch ermöglichen, das System über einer vorhandenen Partition zu installieren, ohne die vorhandenen Dateien, wie z. B. die Benutzer-Ausgangsverzeichnisse, zu löschen.

Wenn sich in diesem System etwas Wertvolles befand (dh Ihre persönlichen Daten und nicht nur die Linux-Installation), tun Sie nichts überstürztes, was zu weiteren Verlusten führen wird.

Wenn Sie in Zukunft Swap-Speicherplatz benötigen und auf dem Laufwerk kein Speicherplatz mehr vorhanden ist, können Sie Linux anweisen, in eine Datei zu wechseln, anstatt die Größe der Partitionen zu ändern, um Platz zu schaffen! Zuerst müssen Sie eine große Datei erstellen. Normalerweise wird eine Datei mit null Bytes durch Kopieren von erstellt /dev/zero. Dann muss diese Datei zum Auslagern mit dem mkswapBefehl formatiert werden . Schließlich kann der Kernel angewiesen werden, mit zu dieser Datei zu wechseln swapon.

ZB eine Gigabyte-Datei:

$ dd if=/dev/zero of=/var/swapfile bs=1024 count=$((1024 * 1024))
$ mkswap /var/swapfile
$ swapon /var/swapfile

Dieser Trick eignet sich für Notfälle, in denen ein Programm viel virtuellen Speicher aufnimmt und Sie dieses Programm nicht beenden möchten (z. B. weil Sie Wissenschaftler sind und das Programm stundenlang wertvolle Berechnungen durchgeführt hat). Wenn Sie den Swap für eine solche Situation nur vorübergehend benötigen, können Sie ihn später wieder entfernen:

$ swapoff /var/swapfile
$ rm /var/swapfile

Angenommen, Sie möchten dies beibehalten. Wenn Sie das System neu starten, wird Ihre Auslagerungsdatei vollständig gelöscht. Die Datei wird dort sein, aber das System wird nicht dorthin wechseln, weil niemand einen swaponBefehl ausgeführt hat. Um die Auslagerungsdatei so aufzuzeichnen, dass sie beim Booten verwendet wird, geben Sie sie in die /etc/fstabDatei ein, indem Sie eine Zeile wie die folgende hinzufügen:

/var/swapfile swap swap defaults 0 0

Das ist es.

Kaz
quelle
1
Tippfehler? Sie haben den mkswapzweiten Befehl
Bob
Ja, Tippfehler. Sie wissen, jeder mit genügend Vertretern kann Antworten bearbeiten.
Kaz