WARNUNG: Diese Ideen sind nur für Benutzer gedacht, die sich sowohl mit Linux als Ganzes als auch mit Arch Linux auskennen.
Wenn Sie bereit sind, gefährliches Terrain zu betreten, können Sie eine Basis-Arch-Installation auf weniger als 500 MB reduzieren. Dies erfordert einige sehr gefährliche Dinge:
- Entfernen aller unnötigen Gebietsschemas (bereits behandelt)
- Entfernen aller Firmware-Dateien, die nicht zum Ausführen Ihres Systems benötigt werden (von
/usr/lib/firmware
)
- Entfernen aller Kernelmodule, die nicht zum Ausführen Ihres Systems benötigt werden (von
/usr/lib/modules/...
)
- Entfernen von
.a
Dateien in /usr/lib
(nur, wenn Sie das System niemals zum Kompilieren von Software verwenden. Hinweis: Dies umfasst die Verwendung von makepkg
)
- Entfernen von allem in
/usr/include
(nur wenn Sie das System nie zum Kompilieren von Software verwenden)
- Entfernen nicht benötigter Dokumente aus
/usr/share/doc
und/usr/share/info
- (SEHR SCHLECHTE IDEE, außer vielleicht für einen Server) Entfernen von Manpages von
/usr/share/man
- (auch eine schlechte Idee) Entfernen nicht benötigter Terminal-Deskriptoren von
/usr/share/terminfo
und nicht benötigter Zeitzonen-Dateien von/usr/share/zoneinfo
- (GEFÄHRLICH) Wird in
strip *
allen Ordnern ausgeführt, die ausführbare Binärdateien ( /usr/bin
und /usr/sbin
) enthalten.
- (in extremen Situationen) Verwenden eines Tools
upx
zum Komprimieren größerer Binärdateien (die Samba-Binärdateien eignen sich gut dafür, da sie häufig statisch kompiliert werden.) Beachten Sie auch, dass bei Verwendung von upx
die gesamte unkomprimierte Binärdatei passen muss RAM während der Ausführung, seien Sie also auf Systemen mit wenig RAM müde.
Bevor Sie dies tun, ERSTELLEN SIE EINE VOLLSTÄNDIGE SICHERUNG Ihres Systems. Glücklicherweise macht Linux dies relativ einfach - wenn Sie ein externes Volume (z. B. ein USB-Laufwerk) anschließen und mounten können, können Sie so etwas wie ein cd / && tar -cf /mnt/usb/mySystem.tar /
Backup des gesamten Systems durchführen.
Beachten Sie erneut, dass ich die oben genannten Schritte (insbesondere die Schritte 7 bis 9) nicht empfehle, es sei denn, Sie verfügen über fundierte Kenntnisse, Erfahrungen und Kenntnisse über Linux-Interna und Arch Linux . Das Spielen mit fast allen aufgelisteten Dateien kann ein System auf schreckliche Weise beschädigen. Sie wurden also gewarnt. Wenn Sie nicht wissen, ob Ihr System eine bestimmte Firmware-Datei, ein bestimmtes Modul usw. benötigt, führen Sie Ihre Recherchen durch, bevor Sie damit herumspielen. (Seien Sie gewarnt, dass das Entfernen von Kernel-Modulen, die Ihr System benötigt, zu einem nicht mehr startbaren System oder zu einem System ohne Tastatur- / Netzwerkkarten- / Sound- / Display- / usw. Unterstützung oder zu allen möglichen anderen unerklärlichen Verhaltensweisen führen kann.)
Beachten Sie auch, dass bei allen Paketaktualisierungen viele der oben entfernten Dateien wiederhergestellt werden können und werden. Wenn Sie sich für diesen Weg entscheiden, möchten Sie möglicherweise die Entfernung nicht benötigter Dateien per Skript ausführen und Ihr Skript nach jedem größeren Paket-Upgrade ausführen. (Beispiel: Durch das Aktualisieren des Kernels werden alle Kernelmodule sowie das Linux-Firmware-Paket, das die gesamte Firmware des Kernels wiederherstellt, über die Abhängigkeit wiederhergestellt /usr/lib/firmware
.)
Behalten Sie zum Schluss die Übersicht, /var/log
da die Journaldateien mit der Zeit immer größer werden. Sie können frühere Journale entfernen, aber die aktuellen behalten, indem Sie etwas rm *\@*.journal
in Ihrem Journalordner tun .
Ich habe monatelang erfolgreich einen NAS-Server von einem 512-MB-Disk-on-Module-Gerät mit diesen Techniken betrieben, aber sie sind immer noch nichts für schwache Nerven. (Ich habe auch LinuxFromScratch verwendet, um ein ähnliches Projekt mit nur 128 MB Speicherplatz zu erstellen, aber das ist eine andere Geschichte ...)
EDIT / ADD:
Hier sind einige weitere Methoden, mit denen Sie versuchen können, zusätzlichen Speicherplatz zu erhalten:
Loswerden libgo
. Die libgo
Bibliothek wird mit gcc-libs
AFAIK geliefert und wird nur von Anwendungen verwendet, die in der Sprache Go geschrieben sind. Mir fällt keine Anwendung ein, die diese Bibliothek benötigt. Auf meinem System sind es 40 MB. Wenn Sie versuchen, schlank zu werden, ist das viel Platz. Ich habe es aus meinen "Mini" -Installationen entfernt, ohne negative Auswirkungen auf meine Aktivitäten zu haben (aber das bin ich, YMMV!)
Schrumpfen libicudata.so
. Auf meinem System sind es 27 MB. Es handelt sich im Grunde genommen um eine Menge Unicode- / Gebietsschemadaten, die in ein Bibliotheksobjekt komprimiert wurden. Es ist ein Tool online, mit dem kleinere Versionen dieser Datei erstellt werden können, das jedoch nicht für die aktuelle Version aktualisiert wurde (und Sie können in neueren Versionen keine älteren Dateien verwenden). Ich habe dies nicht manuell versucht, aber Wenn Sie herausfinden können, wie, können Sie etwa 20-22 MB aus dieser Datei rasieren.
Wenn Sie Python verwenden, können Sie etwa 37 test
MB rm -r /usr/lib/python2.7/test
einsparen, indem Sie die Bibliothek aus python2: entfernen, und etwa 66 MB, indem Sie sie für python3: entfernen rm -r /usr/lib/python3.6/test
.
Wieder für Python können Sie die .pyo
Dateien und die .py
Dateien loswerden . Die .pyo
Dateien sind "optimierte" Dateien, aber Python verwendet sie nie wirklich. Die .py
Dateien sind der unformatierte Quellcode für die Standardbibliothek. Die einzigen Dateien, die Python normalerweise liest, wenn Python-Code ausgeführt wird, sind die .pyc
(mit Python kompilierten) Dateien. cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \;
undcd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;
Unnötige Gebietsschemadaten entfernen. Es gibt ein AUR-Paket, localepurge
das dies automatisiert. Ansonsten muss man in herumspielen /usr/share/locale
. Sie müssen Ihr eigenes Gebietsschema behalten und locale.alias
. Für mich hier in den USA, zu halten en_US
und locale.alias
und entfernen alles andere über 80MB abrasiert.
Was ich jetzt sehen möchte, ist ein Tool, das Ihr System analysiert und bestimmt, welche Kernelmodule Sie benötigen und welche Firmware-Dateien Sie benötigen. Das wäre eine gute Möglichkeit, diese Ordner "sicher" zu bereinigen ...
Oder vielleicht jemand sollte einen Bogen „Distro“ dass Anwendungen zusammen uClibc
oder diet-libc
oder etwas ähnliches. Das könnte ein lustiges Sommerprojekt sein. :-)