Le lecteur racine manque d'espace disque. Comment puis-je libérer de l'espace?

35

J'utilise Ubuntu 11.04 et je souhaite libérer de l'espace dans mon répertoire racine, qui est surchargé. Je veux surtout changer le chemin utilisé pour installer les applications (elles sont installées directement sur le lecteur racine).

Une autre considération est que je travaille sur un serveur de base de données MySQL. Le serveur est installé dans le répertoire racine même, je ne veux donc pas risquer de perdre des données.

S'il vous plaît donnez-moi quelques conseils pour vous aider à résoudre ce problème.

Rihan
la source

Réponses:

36

Récemment, j'ai fait face à une situation similaire. Trop d'applications ont été installées et elles ont commencé à utiliser mon espace de montage racine. J'énumère quelques étapes que j'ai suivies et j'espère que vous pourrez également utiliser la même chose.

  1. Nettoyez le cache d'apt-get. La commande suivante supprimera tous les fichiers deb téléchargés du répertoire de cache d’apt-get.

    Exécutez cette commande: sudo apt-get clean

  2. Déplacer le point de montage / home vers un lecteur différent . Auparavant, mon dossier personnel était situé sur le lecteur racine. J'ai donc déplacé mon dossier personnel sur un lecteur séparé. Cela m'a permis de libérer beaucoup de stress du montage racine car la plupart des applications stockent leurs données dans / home / nom_utilisateur / dossier. Lisez comment déplacer un dossier personnel sur un lecteur séparé.

  3. Augmenter la taille de la partition racine Je sais que la réponse est très évidente. Mais croyez-moi, nos données doivent évoluer avec le temps. Je pensais que 20 Go / montage racine suffirait, mais après un an, j'ai redimensionné mon montage racine et augmenté à 50 Go.

Amey Jah
la source
8
sudo apt-get clean libéré plus d'espace que prévu, +1
btk
Attention, cela apt-get cleansupprime même les paquets installés. Vous voudrez peut-être les conserver en cas d'échec de la mise à niveau.
Timss
J'ai nettoyé ma mémoire cache et elle en a nettoyé 10 Go! +1
Numeri dit: Réintégrer Monica le
28

J'ai réussi à effacer 3,5 Go en supprimant les anciens en-têtes et images à l'aide de la commande suivante:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

Vous pouvez vérifier quels paquets seront purgés en exécutant la première partie de la commande:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Référence

marque maison
la source
D'autres astuces n'ont pas aidé, mais cela m'a sauvé environ 5G. Merci.
baltasvejas
L'option -yde la commande apt-get n'est pas vraiment nécessaire. Si vous l'omettez, apt-get vous demandera (une seule fois) si tous les paquets acheminés doivent être supprimés. A mon avis, il vaut mieux ne pas l'utiliser -y, cela vous donne une possibilité supplémentaire de vérifier (en plus de la deuxième commande mentionnée ci-dessus). Pour moi, cela libère 15 Go sur la partition racine!
Boris Däppen
2
La commande a dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge tenté de supprimer la version du noyau actuellement installée sur mon système. Veillez à ne pas rendre votre système impossible à démarrer.
Antony
@Antony Yaikes! J'étais sur le point d'essayer cela. Comment puis-je vérifier lesquels sont corrects à supprimer?
Sonic Soul
2
@SonicSoul J'ai fini par faire ce que l'une des réponses ci-dessous ( askubuntu.com/a/778442/333806 ) suggère. Fondamentalement, couru uname -rpour trouver le noyau actuel et a pris soin de ne pas le supprimer. Si la commande fournie par homebrandpour vérifier quels paquets seront purgés ne montre pas le noyau actuel, vous devriez être en sécurité en exécutant la commande de purge qu'il a mentionnée.
Antony
22

Utilisez dpkg-querypour trouver les plus gros paquets et supprimer ceux dont vous n’avez plus besoin ( source ):

dpkg-query --show --showformat='${Package;-50}\t${Installed-Size}\n' | sort -k 2 -n | grep -v deinstall | awk '{printf "%.3f MB \t %s\n", $2/(1024), $1}'
michaeljoseph
la source
1
Maintenant, c'est un one-liner vraiment utile. Parfait pour un résumé rapide des plus gros packages d'installation. Venez à mes fichiers de points!
arainone
Vous pouvez l'obtenir avecwajig sizes
Pablo A
13
sudo apt autoclean  # clean /var/cache/apt/archives folder which save packages while install.
sudo apt autoremove # this command remove unused packages.

sudo shutdown -rf   # it will restart your PC immediately and check filesystem in next boot.
Shantanu
la source
19
Vous ne fournissez aucune explication. Si quelqu'un ne faisait que copier / coller votre code, le système s'arrêterait sans avertissement, ce qui pourrait entraîner une perte de données. Veuillez ne pas fournir de commandes sans aucune explication de ce qu'elles font. -1
Jo-Erlend Schinstad
9
Pourquoi la nécessité de vérifier le système de fichiers?
Nathan Osman
10

Supprimer les anciennes versions du noyau (comme suggéré par homebrand ) peut libérer une quantité d’espace décente si vous ne l’avez pas encore fait.

Il existe un certain nombre de façons de supprimer les anciennes versions du noyau et une liste d'options différentes peut être trouvée dans les réponses fournies à: Comment supprimer les anciennes versions du noyau pour nettoyer le menu de démarrage?

Ma méthode préférée est la plupart du temps cette réponse de pénétrants où elle est décomposée en étapes simples et compréhensibles:

Ouvrez le terminal et vérifiez votre noyau actuel:

uname -r

NE RETIREZ PAS CE KERNEL!

Ensuite, tapez la commande ci-dessous pour afficher / répertorier tous les noyaux installés sur votre système.

dpkg --list | grep linux-image

Trouvez tous les noyaux inférieurs à votre noyau actuel. Lorsque vous savez quel noyau supprimer, continuez ci-dessous pour le supprimer.

Exécutez la commande ci-dessous pour supprimer le noyau sélectionné.

sudo apt-get purge linux-image-x.x.x.x-generic

La réponse dit ensuite de 'update-grub2' lorsque vous avez terminé la purge, ce qui est probablement obsolète maintenant: cela sudo update-grubdevrait suffire pour Ubuntu 14.04 à partir de maintenant . Ensuite, ils disent également «Redémarrez votre système» (ce qui semble être pour que vous puissiez voir le menu de démarrage nettoyé). Dans ce cas, cela n'est pas nécessaire.

Le menu du chargeur de démarrage grub affichait toutes les anciennes versions du noyau sur la page principale, mais elles sont maintenant placées à l’écart derrière un sous-menu. C'est beaucoup plus ordonné, mais un nouveau venu sous Ubuntu / Linux peut ne pas savoir qu'il prend de la place.

Comme suggéré, ne supprimez pas le noyau actuel et il est également conseillé de conserver la version précédente du noyau, au cas où vous auriez besoin de revenir à celle-ci.

Il existe des moyens plus rapides pour le faire, mais je préfère la simplicité de cette méthode, principalement parce que je peux comprendre chaque commande en cours de route:

"Quelle version du noyau est-ce que j'utilise? Quelles versions du noyau est-ce que je possède? D'accord, purgez -la ."

Rincez, répétez, admirez l'espace que vous avez libéré.

Il est assez facile de copier le nom du noyau spécifique que vous souhaitez supprimer des résultats dpkg --list | grep linux-imagefournis dans le terminal, puis d'utiliser sudo apt-get purgeet de coller le nom copié.

La suppression de 3 ou 4 noyaux plus anciens libère généralement environ 1 Go d’espace dans votre lecteur racine.

pHeLiOn
la source
1
En plus de linux-image, vous pouvez également grep et purger les en-têtes linux
kdopen
8

Lorsque j'ai besoin de libérer de l'espace sur les serveurs, j'utilise cette commande:

find / -type f -size +50M -exec du -h {} \; | sort -n

Il trouve tous les fichiers de plus de 50 Mo et " du -h" crée une meilleure liste de fichiers et "sort -n"après la liste de fabrication du tuyau triés numériquement par taille de fichier.

zorbon.cz
la source
Selon la taille de votre système, cela peut prendre un certain temps. M'a pris 15 minutes pour environ 500 gb sur un disque dur
Gabriel Fair
7

En suivant les instructions sur les documents de la communauté Ubuntu, j’ai découvert un fichier de corbeille volumineux: il ressemblait à une sauvegarde de /var/log/syslog.1.

La commande qui l'a trouvée était:

sudo find / -size +1G

Et puis tout fichier volumineux dans un dossier appelé .Trashest probablement bon à supprimer ...

hwjp
la source
5

Voici un script que je lance pour libérer de l'espace sur la partition racine

function myclean {
    ## Show free space
    df -Th | grep -v fs
    # Will need English output for processing
    LANG=en_GB.UTF-8

    ## Clean apt cache
    apt-get update
    apt-get -f install
    apt-get -y autoremove
    apt-get clean

    ## Remove old versions of snap packages
    snap list --all | while read snapname ver rev trk pub notes; do
        if [[ $notes = *disabled* ]]; then
            snap remove "$snapname" --revision="$rev"
        fi
    done
    ## Set snap versions retain settings
    if [[ $(snap get system refresh.retain) -ne 2 ]]; then snap set system refresh.retain=2; fi
    rm -f /var/lib/snapd/cache/*

    ## Remove old versions of Linux Kernel
    # This one-liner is deprecated since 18.04
    # dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs apt-get -y purge
    # New 2 lines to remove old kernels
    dpkg --list | grep 'linux-image' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge
    dpkg --list | grep 'linux-headers' | awk '{ print $2 }' | sort -V | sed -n '/'"$(uname -r | sed "s/\([0-9.-]*\)-\([^0-9]\+\)/\1/")"'/q;p' | xargs apt-get -y purge

    ## Rotate and delete old logs
    /etc/cron.daily/logrotate
    find /var/log -type f -iname *.gz -delete
    sudo journalctl --rotate
    sudo journalctl --vacuum-time=1s

    ## Show free space
    df -Th | grep -v fs
}
cmak.fr
la source
Edit: Nouveau nettoyeur de noyaux anciens à 2 lignes
cmak.fr
Merci! "Rotate and delete old logs" efface plusieurs concerts sur mon lecteur.
SaTa
Agréable. Les développeurs peuvent également souhaiter supprimer leurs images de menu fixe non utilisées :docker system prune
Pablo A
@Pablo A, ils peuvent /var/crash/*.crashaussi en avoir l'air
cmak.fr
Puisque vous avez besoin sudod'appeler la fonction, sudola fonction semble redondante. De plus, vacuum-time=1scela ne fonctionne peut-être pas toujours, mais je ne suis pas sûr, car j'utilise plutôt la taille vide: forum.manjaro.org/t/…
WinEunuuchs2Unix
2

Dans Ubuntu, chaque dossier peut avoir son propre système de fichiers. Cela signifie que vous pouvez déplacer n’importe quel dossier sur sa propre partition, sur un autre disque ou même sur un réseau distant. Cela est particulièrement populaire pour les répertoires personnels, car cela signifie que vous pouvez réinstaller Ubuntu sans modifier vos paramètres personnels ni perdre aucun fichier. Il est également populaire dans les réseaux où les utilisateurs devraient pouvoir se connecter à différentes machines tout en conservant leurs paramètres et fichiers personnels. Mais il est utile dans de nombreux cas différents, tels que le vôtre.

Les applications ne sont pas installées dans un dossier spécifique, comme vous semblez le suggérer. Différentes parties de l'application sont placées dans différentes parties du système de fichiers. Le programme principal est généralement placé dans / usr / bin, tandis que les fichiers de configuration sont placés dans / etc, par exemple. Dans votre cas, MySQL, les bases de données elles-mêmes sont placées quelque part dans / var. Je pense / var / mysql.

Puisque / usr et / var sont tous les deux des répertoires du système de fichiers racine, ils utiliseront l’espace système de fichiers racine. Mais comme je l'ai dit, vous pouvez les déplacer vers différents systèmes de fichiers. Dans le cas de MySQL, vous pouvez configurer l'emplacement de stockage des bases de données. Vous pouvez facilement déplacer des bases de données vers /home/username/.mysql/databases par exemple.

Jo-Erlend Schinstad
la source
1

Vous ne pouvez pas modifier le chemin où le gestionnaire de packages installe les applications. La plupart des fichiers d'application sont enregistrés dans /usr. Si vous souhaitez récupérer de l’espace sur la partition racine, il /usrest possible de passer à une autre partition.

De commentaires:

  • Conservez les autorisations lors de la copie, c'est-à-dire qu'il vaut mieux utiliser la ligne de commande si vous n'êtes pas sûr de ce que fera votre gestionnaire de fichiers.

  • La bonne façon de procéder consiste à monter un nouveau système de fichiers sur / usr ou à l’utiliser mount --bind. On ne sait pas si un lien symbolique fonctionnerait bien.

Jan
la source
attention à déplacer / usr. utilisez la commande cp pour copier le dossier usr avec la même permission. puis supprimez le dossier / usr d'origine et créez un lien de dossier usr sur /.
Shantanu
1
Il devrait avoir un point de montage. Pas un lien.
Jo-Erlend Schinstad
Petite remarque: de nombreuses applications installent également des fichiers binaires et des données d’application dans /opt.
Nathan Osman
@ george-edison Eh bien, certaines applications installent des logiciels /optcontre "les règles".
Jan
1

Si vous avez plusieurs systèmes de fichiers distincts, l'astuce suivante peut s'avérer utile: Mount / une autre fois, mais cette fois sous / mnt. Désormais, toutes vos recherches de fichiers volumineux ou nombreux peuvent être effectuées sans passer par de mauvais systèmes de fichiers.

Cela peut également vous aider à trouver les fichiers cachés sous un autre montage.

steviethecat
la source
0

Si vous avez un serveur de base de données mssql installé, cela risque de saturer votre mémoire. Exécuter l' utilisation du disque NCurses

$ sudo ncdu / 

Pour vérifier quels dossiers et fichiers utilisent le maximum de stockage. Les données mssql sont généralement stockées sur

/var/opt/mssql/backup/
Yogesh
la source
La Question indique que la base de données doit rester.
Stephen Rauch
La question mentionnait la base de données MySql, donc s'il supprime les données de la base de données MsSQL, alors je suppose que cela semble une réponse assez juste.
Yogesh
Pourrait être utile l' -xoption
Pablo A