web-dev-qa-db-fra.com

Comment minimiser l'utilisation de l'espace disque

L'une de mes machines est le 2 Go Eeepc Surf, un net Netbook avec des ressources très limitées. Si limité que maintenant, j'ai 22 Mo espace libre à gauche.

Sur, je suis en cours d'exécution Arch Linux avec le Openbox de et une foule d'applications requises pour fonctionner comme un PC mobile.

Quelles méthodes sont disponibles pour éliminer certains espaces utilisés inutiles?

30
Stefan

Voici quelques points que vous pourriez commencer par:

  • Regardez les packages installés sur votre système avec pacman -Q et supprimer ceux dont vous n'avez pas besoin. Un bon démarrage peut être d'ajouter le -t changer:

    Restreindre ou filtrer la sortie aux packages non requis par un package actuellement installé.

  • Nettoyez le cache de paquet de Pacman avec pacman -Sc

  • Toujours utiliser pacman -Rs Pour supprimer également les dépendances d'emballage non utilisées.

  • Pour trouver des "gros fichiers" et des dossiers qui utilisent de grandes parties du disque, une belle addition à du est xdiskusage. Ce petit outil vous permet de parcourir rapidement votre système de fichiers et de voir une représentation graphique de l'utilisation du disque des dossiers.

19
echox

AVERTISSEMENT: ces idées ne sont que pour les utilisateurs qui sont connectés à la fois à Linux dans son ensemble et à une arche Linux.) ==) ==) ==) ==) ==) ==) ==) ==) ==) ==) ==)

Si vous êtes prêt à marcher sur un territoire dangereux, vous pouvez installer une arc de base d'une arc de base à moins de 500 Mo installée. Cela nécessite de faire des choses très dangereuses:

  1. supprimer tous les locaux inutiles (déjà couverts)
  2. supprimer des fichiers de micrologiciels non nécessaires pour exécuter votre système (à partir de /usr/lib/firmware)
  3. supprimer des modules de noyau non nécessaires pour exécuter votre système (de /usr/lib/modules/...)
  4. suppression de tout .a Fichiers dans /usr/lib (seulement si vous n'utilisez jamais le système pour compiler des logiciels. Remarque: Ceci inclut l'utilisation de makepkg)
  5. supprimer tout en /usr/include (seulement si vous n'utilisez jamais le système pour compiler des logiciels)
  6. suppression de la documentation inutile de /usr/share/doc et /usr/share/info
  7. (Très mauvais IDEA Sauf peut-être peut-être qu'un serveur) enlève des pages de l'homme de /usr/share/man
  8. (aussi une mauvaise idée) enlever des descripteurs de terminaux inutiles de /usr/share/terminfo et des fichiers de fuseau horaire inutiles de /usr/share/zoneinfo
  9. (Dangereux) en cours d'exécution strip * sur tous les dossiers contenant des binaires exécutables (/usr/bin et /usr/sbin)
  10. (Dans des situations extrêmes) à l'aide d'un outil tel que upx pour compresser des binaires plus importants (les binaires Samba se prêtent à ce que elles ont tendance à être assez grandes car elles sont souvent compilées statiquement.) Notez également que l'utilisation de upx signifie que l'ensemble du binaire non compressé doit s'adapter au RAM au cours de l'exécution, soyez donc fatigué sur des systèmes à bas bélier.

Avant de faire tout cela, faites une sauvegarde complète de votre système. Linux rend heureusement cela relativement facile - si vous pouvez attacher et monter un volume externe (par exemple un lecteur USB), vous pouvez faire quelque chose comme cd / && tar -cf /mnt/usb/mySystem.tar / Pour sauvegarder tout le système.

Encore une fois, notez que je ne recommande pas de faire ce qui précède (en particulier 7 à 9), à moins que vous n'ayez connaissances approfondies, expérience et compréhension de Linux interne et archigno Linux. Jouer avec juste à propos de l'un des fichiers que j'ai énumérés peut endommager un système de manière horrible, vous avez donc été prévenu. Si vous ne savez pas si votre système a besoin d'un certain fichier de firmware, module, etc., faites votre recherche avant de vous gâcher. (Soyez averti que l'élimination des modules de noyau que votre système a besoin peut entraîner un système inébranlable ou un système sans clavier/carte réseau/son/affichage/etc. Support, ou toutes sortes d'autres comportements inexplicables.)

Veuillez également noter que les mises à niveau de package peuvent et vont restaurer de nombreux fichiers que vous supprimez ci-dessus. Si vous décidez de suivre cette route, vous voudrez peut-être éventuellement scripter le retrait des fichiers inutiles et exécuter votre script après chaque mise à niveau de colis majeur. (Exemple: la mise à niveau du noyau ramènera tous les modules du noyau ainsi que la mise à niveau via une dépendance Le package de microprogramme Linux rapportant tout le micrologiciel de l'/usr/lib/firmware.)

Enfin, gardez un oeil sur /var/log Comme les fichiers de journal augmenteront au fil du temps. Vous pouvez supprimer des journaux passées mais gardez les actuels en faisant quelque chose comme rm *\@*.journal Dans votre dossier de journal.

J'ai exécuté avec succès un NAS Server désactivée d'un périphérique de disque sur disque sur 512 Mo pour des mois à l'aide de ces techniques, mais elles ne sont toujours pas pour les faibles de coeur. (J'ai aussi utilisé LinuxFromscRatch pour construire un projet similaire dans seulement 128 Mo de stockage, mais c'est une autre histoire ...)


Edit/Ajouter:

Voici quelques méthodes supplémentaires que vous pouvez utiliser pour essayer d'obtenir un espace supplémentaire:

  • Se débarrasser de libgo. La bibliothèque libgo vient avec gcc-libs et est AFAIK uniquement utilisé par les applications écrites dans la langue GO. Je ne peux penser à aucune demande que j'utilise qui nécessite cette bibliothèque. Sur mon système, il est de 40 Mo de taille. Lorsque vous essayez de réduire la place, c'est beaucoup d'espace. Je l'ai supprimé de mon "mini" installe sans effets néfastes sur tout ce que je fais (mais encore une fois, c'est moi, ymmv!)

  • Rétrécissement libicudata.so. Il est 27 Mo sur mon système. Il s'agit essentiellement d'une tonne de données unicode/locale compressées dans un objet de bibliothèque. Il existe un outil en ligne qui peut effectuer des versions plus petites de ce fichier, mais elle n'a pas été mise à jour pour la version actuelle (et vous ne pouvez pas utiliser de fichiers plus anciens dans les nouvelles versions plus récentes.) Je n'ai pas essayé de faire cela à la main, mais Si vous pouvez comprendre comment, vous pouvez raser environ 20-22 Mo de sortir de ce fichier.

  • Si vous utilisez Python, vous pouvez enregistrer 37 Mo ou donc en supprimant la bibliothèque test de Python2: rm -r /usr/lib/python2.7/test et environ 66 Mo en le retirant pour Python3: rm -r /usr/lib/python3.6/test.

  • Encore une fois pour Python, vous pouvez vous débarrasser de la .pyo fichiers et le .py des dossiers. Les .pyo Les fichiers sont des fichiers "optimisés", mais Python ne les utilise jamais vraiment. Le .py Les fichiers sont le code source brut pour la bibliothèque standard. Les seuls fichiers Python se lit normalement en cours d'exécution Python code est le .pyc (Python compilé) fichiers. cd /usr/lib/python2.7 && find . -name "*.pyo" -exec rm -v {} \; et cd /usr/lib/python3.6 && find . -name "*.pyo" -exec rm -v {} \;

  • Suppression des données locales inutiles. Il y a un paquet Aur appelé localepurge qui l'automatise. Sinon, vous devez jouer à /usr/share/locale. Vous devez garder votre propre local et locale.alias. Pour moi ici aux États-Unis, gardant en_US et locale.alias et supprimer tout le reste rasé environ 80 Mo.

Maintenant, ce que je veux voir, c'est un outil qui analyse votre système et détermine quels modules de noyau dont vous avez besoin et quels fichiers de microprogramme dont vous avez besoin. Ce serait une bonne façon de "nettoyer en toute sécurité" de nettoyer ces dossiers ...

Ou peut-être que quelqu'un devrait réunir une arche "Distro" qui utilise uClibc ou diet-libc ou quelque chose de similaire. Cela pourrait être un projet d'été amusant. :-)

11
fdmillion

TLDR

journalctl --vacuum-size=100M #remove all logs, only retain 100mb
pacman -Scc #remove all package installation files (obsolete and current)
pacman -S bleachbit
bleachbit -c system.*

Tout d'abord, qu'est-ce qui est grand sur le système

du -d1 -h / 2>/dev/null | sort -h

Cela montre une liste triée des plus grands DIRS de / Vous pouvez faire deux niveaux bas:

du -d2 -h / 2>/dev/null | sort -h

Mon résultat est:

0       /proc
0       /sys
0       /tmp
12K     /dev
12K     /srv
16K     /lost+found
632K    /run
4.3M    /boot
13M     /opt
15M     /etc
75M     /root
93M     /home
2.4G    /var
3.2G    /usr
221G    /mnt
227G    /

J'ignore /mnt (parce que c'est un lecteur externe) deux DIRS se tiennent à l'esprit: var et usr. Voyons ce qui est à l'intérieur:

du -d1 -h /var /usr 2>/dev/null | sort -h

Ensuite, un peu plus profondément:

du -d1 -h /var/log /usr/share /usr/lib /var/cache 2>/dev/null | sort -h

Commençons par les journaux

J'ai 717 Mo dans /var/log.

Je ne suis pas un fan de supprimer des répertoires au hasard, alors faites-le la voie propre:

$ journalctl --disk-usage
Archived and active journals take up 728.7M on disk.

Laissons seulement 100 Mo de journaux:

journalctl --vacuum-size=100M
...
Deleted archived journal /var/log/journal/ba5391...b.journal (8.0M).
...
Vacuuming done, freed 616.6M of archived journals on disk.

Plus d'infos ici sur la configuration de JournalCtL ICI .

Paquets

J'ai 660M /var/cache/pacman. C'était 1,8 Go, mais j'ai couru pacman -Sc Pour supprimer les paquets inutilisés. Retirons le reste:

pacman -Scc

/ usr/partager/locale

Beaucoup d'utilisateurs le suppriment ou du moins le nettoyez-le. Mais je pourrais être un problème . Mais Checkout Bleachbit (paragraphe suivant).

Blanchiment

nettoyeur automatique . Supprimera beaucoup de choses, mais pour c'était surtout local.

$ pacman -S bleachbit
$ bleachbit -p system.*
Disk space to be recovered: 488.8MB
$ bleachbit -c system.*

Vous pouvez rechercher plus de choses à supprimer:

bleachbit --list
bleachbit -p Thunderbird.*
5
mist

Sur le disque de 4 Go de mon EeePC avec Ubuntu, il a aidé à supprimer certains fichiers locaux (de/usr/share/locale) et des fichiers d'aide gnome (de/USR/Share/Gnome/Aide /). Les deux ont été installés pour des langues que je n'utilisez pas. Pas sûr si Arch Linux installe même tous ces fichiers, cependant.

3
oliver

Je suggérerais d'automatiser en regardant vos propres vieux fichiers et de voir si nécessaire et supprimez-les. Cela peut faire avec deux choses. On écrit une commande find pour rechercher des fichiers très anciens. et en utilisant cette sortie (peut-être du tuyau) sur lograte script à des fichiers d'archive de plus de 3 mois et de suppression de fichiers de plus de 3 mois dans les archives et envoyez un courrier à 1 jour avant de le supprimer. Afin que vous puissiez être sûr de ne pas avoir perdu de fichier important. Donc, enfin, vous auriez besoin des commandes suivantes pour accomplir ce qui précède:

find , | , logrotate , mail, crontab

Je ne vais pas aller à la cuillère vous nourrir. J'ai déjà fait cela auparavant a eu beaucoup de succès avec cela et j'ai ensuite été mis au rebut parce que nous avons décidé d'aller avec nagios pour la surveillance, car il était plus à l'écoute de faire ce genre de choses dans un serveur Corp. Je pense que si la commande mail _ n'est pas déjà configurée pour vous, vous constaterez peut-être que le reste le plus difficile devrait être simple. Tout cela a besoin de faire via Bash Scripting et de mettre cela dans le travail de cron et de courir tous les x jours. Apprenez les scripts Bash, ce sera très utile non seulement pour cela, mais également pour vous rendre la vie plus facile avec * Nix. Utilisez donc votre moteur de recherche Internet préféré et lisez sur les commandes ci-dessus et les scripts Bash. Et attachez-les ensemble et testez-le. Une fois satisfait mis à une utilisation régulière. Je suppose que ce sera amusant à faire cela. Vous apprendrez beaucoup si vous ne l'avez pas fait cela auparavant.

  • J'espère que cela pourra aider
0
bagavadhar