GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Braucht Linux gelegentlich eine Bereinigung?

Wenn Sie Mitte der 2000er Jahre alt genug waren, um Computer zu verwenden (genau das richtige Jahrzehnt), und Sie zufällig Windows und Linux ausgeführt haben, und als Nerd auch an Diskussionen über die Vorteile dieses Betriebssystems teilgenommen haben , dann müssen Sie auf die folgende Aussage gestoßen sein:Sie müssen keine Systemwartung unter Linux durchführen, es ist intelligent genug, um alles von selbst zu erledigen.

In der Tat wurde auf der Windows-Seite oft darüber gesprochen, dass Systeme mit der Zeit langsamer werden, dringend defragmentiert werden müssen (in NTFS im Gegensatz zu Ext3), temporäre Dateien bereinigen und so weiter. Linux wurde oft als wartungsfrei angepriesen. Nun stellt sich die Frage, wie wahr ist diese Aussage wirklich? Ich hatte tatsächlich die Chance, es selbst zu testen, alles durch zeitlichen Zufall.

Was ist passiert?

Ich habe einige Pakete in der Kubuntu 18.04-Instanz auf meinem Slimbook installiert und entfernt, und plötzlich ist der Vorgang fehlgeschlagen. Apt, der (Befehlszeilen-)Paketmanager, sagte mir, dass er eine Operation nicht abschließen könne, da auf dem Gerät [sic] kein Speicherplatz mehr vorhanden sei. Was.

gzip:stdout:Kein Platz mehr auf dem Gerät
E:mkinitramfs-Fehler find 141 cpio 141 gzip 1
update-initramfs:Fehler bei /boot/initrd.img-4.15.0-163-generic mit 1.
dpkg:Fehler bei der Verarbeitung des Pakets initramfs-tools (--configure):
Der Unterprozess des installierten initramfs-tools-Pakets nach der Installation des Skripts hat den Fehler-Exit-Status 1 zurückgegeben.
Bei der Verarbeitung sind Fehler aufgetreten:
linux-image-4.15.0-166-generic
initramfs-tools

Das Interessante dabei ist:Ich habe ganz normal gearbeitet, keine Unterbrechungen. Auf meiner Festplatte WAR Platz, wenn auch relativ klein (und kleiner als ich dachte, aber noch etwa 20 GB auf der 500-GB-SSD übrig), und was noch wichtiger ist, KEINE Meldung oder Warnung vom System, dass ein Problem aufgetreten ist.

Aber dann habe ich den Inhalt der /boot-Partition untersucht, und siehe da:

df -lh /boot
Verwendete Dateisystemgröße Verfügbare Nutzung % Gemountet auf
/dev/sda2 705M 705M 0M 100% /boot

Was. Aus irgendeinem seltsamen Grund war meine nicht unerhebliche /boot-Partition bis zum Rand gefüllt, was bedeutete, dass jede Kernel- oder initramfs-Operation von nun an fehlschlagen würde. Das ist keine gute Sache, besonders wenn ich darüber nachdenke, hey, was wäre, wenn es ein Kernel-Update gäbe?

Ich habe mich dann entschieden, den Befehl "autoremove" für apt auszuführen, der unbenutzte Pakete löscht. Nach einigen Minuten rigoroser Säuberung war die Situation wieder normal:

df -lh /boot
Verwendete Dateisystemgröße Verfügbare Nutzung % Eingehängt auf
/dev/sda2 705M 155M 500M 24% /boot

Die Lektion hier

Es stellte sich heraus, dass mir bei einer vollständigen Festplattenverschlüsselung, über die ich vor drei ungeraden Jahren bei der Implementierung durch das Installationsprogramm keine Kontrolle hatte, da die Größen der verschiedenen Partitionen und dergleichen automatisch festgelegt wurden, am Ende kein /boot mehr zur Verfügung stand Speicherplatz nach ungefähr 3,5 Jahren Nutzung, mit der typischen Kadenz der Ubuntu-Familie von Kernel-Updates.

Jetzt liegt die Abhilfe natürlich auf der Hand - löschen Sie gelegentlich ungenutzte Pakete. Um fair zu sein, apt teilt Ihnen dies IMMER mit, wenn Sie einen Wartungsbefehl ausführen. Es sagt Ihnen, dass es eine Menge Dinge gibt, die entfernt werden können, was die Festplattennutzung reduzieren sollte. Auf der Befehlszeile.

Aber. Aber. Eine solche Meldung wird niemals angezeigt, wenn GUI-Paketmanager wie beispielsweise Discover ausgeführt werden. Das bedeutet, dass normale Leute, die Linux in der klassischen Desktop-Manier verwenden, d. h. KEINE Kommandozeilen-Zauberei, irgendwann in nicht so wartungsfreien Problemen auf ihren Linux-Rechnern enden werden, wenn sie sie lange genug benutzen.

Als Teil meiner Bereinigung habe ich auch ncdu ausgeführt und alle Arten von Cruft auf der Festplatte gefunden, darunter viele Reste unter /var, Container und virtuelle Maschinen, die lange Zeit nicht verwendet und nie von ihren jeweiligen Diensten bereinigt wurden. Wieder etwas, das durch Vorbedacht behoben werden kann, was Folgendes beinhalten würde:a) bessere Trennung der Kernsystemverzeichnisse von Benutzerdateien (keine Aufbewahrung virtueller Maschinen unter /var) b) bessere automatische Bereinigung c) tatsächliche Warnungen und Benachrichtigungen für den Endbenutzer .

Ich habe dieses allgemeine Problem der eingeschränkten Cross-Service-Awareness in Linux vor langer Zeit hervorgehoben. Es gibt keinen wirklichen Zusammenhalt. Wenn Ihr System in einer Boot-Schleife feststeckt, wird diese Schleife durch nichts unterbrochen, es sei denn, Sie greifen manuell ein. Wenn es einen Dienst gibt, der das System verlangsamt, ein fehlerhafter Code oder etwas, das sich nicht gut in das System integriert, gibt es nichts, was Ihnen das sagen könnte. Alles lebt in seinem eigenen Raum und schlimmer noch, ohne Selbstkontrolle oder Selbstheilungsmechanismen.

Schlussfolgerung

Das ist meine kleine Anekdote. Zum ersten Mal bin ich auf ein Problem gestoßen. Früher habe ich für meine Systeme eine einzelne Root-Partition ohne Festplattenverschlüsselung verwendet, was bedeutete, dass /boot so erweiterbar war wie das System selbst, sodass Speicherplatz nach Updates nie ein Problem war. Aber hier bin ich über etwas gestolpert, das Leute beißen könnte und wird, die ihre Systeme auf nicht-nerdige Weise (über GUI) verwenden und keine manuelle Wartungsarbeit leisten.

Die wahre Lösung besteht darin, Linux-Systeme widerstandsfähiger zu machen und ein viel, viel besseres Fehlermanagement zu haben, für jeden Dienst oder jedes Programm für sich und dann für das gesamte System. Das würde auch dazu beitragen, unzählige andere Probleme und Fehler zu lösen, die oft unentdeckt oder nicht gemeldet werden, da die Leute einfach keine Werkzeuge haben, um herauszufinden, was schief gelaufen ist oder wie verschiedene Komponenten interagieren. Na siehst du. Vielleicht finden Sie das interessant. Wir sehen uns.


Linux
  1. Die Linux-Geschichte meiner Familie

  2. Meine 3 Lieblings-Linux-Releases

  3. Linux:modpost baut nichts

  4. Warum brauchen wir die .so.1-Datei unter Linux?

  5. Funktioniert ZFS unter Linux?

TrueCrypt auf modernen Linux-Distributionen

Das Jahr der Linux-Unzufriedenheit

Mono oder dotNET45 unter Linux installieren - Tutorial

MX Linux MX-18 &10 Jahre altes EeePC-Netbook - Fantastisch

Notepad++ unter Linux optimieren

Linux-Workstation Build im Jahr 2019