Confusion d'utilisation du disque: 10G manquant sur la partition domestique Linux sur SSD

15

Linux Mint me dit que je n'ai que 622 Mo d'espace disque libre mais qu'il devrait rester quelques gigaoctets.

En regardant les partitions, on me dit qu'il y a environ dix gigaoctets inutilisés. J'ai recherché le problème sur Google et je n'ai pas trouvé de solution, mais j'ai trouvé l'indice avec lequel je devrais vérifier l'utilisation du disque df -h.

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

La sortie n'a aucun sens pour moi: la différence entre Sizeet Usedest de 11 Go, mais cela ne montre que622M que comme disponible.

Le SSD n'est pas vieux, donc je ne m'attendrais pas à une telle différence.

Que devrais-je faire?

tobiornottobi
la source
3
comme l'a commenté @Kusalananda, vous ne devriez pas simplement vous demander pourquoi vous n'obtenez pas ces 10 Go (que j'espère avoir correctement traités dans ma réponse), mais aussi pourquoi vous utilisez la plupart de l'espace dans / home. Si vous savez pourquoi (par exemple: stocker un grand nombre de fichiers multimédias, etc.), cela ne pose pas de problème, vous devriez vous en soucier, avec un nettoyage potentiel permettant de gagner plus de 10 Go d'économie d'espace. Alors qu'est-ce que ce serait?
AB
"En regardant les partitions, on me dit qu'il y a environ dix gigaoctets inutilisés." - où vous a-t-on dit cela?
ctrl-alt-delor
2
@ ctrl-alt-delor de dfla sortie de - Taille: 189G, Utilisé: 178G
billyjmc
@ ctrl-alt delor, j'ai obtenu le chiffre 10 Go de gparted - et plus tard 11G de la sortie de df, comme l'a correctement déduit billyjmc.
tobiornottobi

Réponses:

22

Si le système de fichiers est ext4, il y a des blocs réservés, principalement pour faciliter la manipulation et éviter la fragmentation et disponibles uniquement pour l'utilisateur root. Pour ce paramètre, il peut être modifié en direct à l'aide de tune2fs (tous les paramètres ne peuvent pas être traités comme ceci lorsque le système de fichiers est monté):

-m% de blocs réservés

Définissez le pourcentage du système de fichiers qui ne peut être alloué que par des processus privilégiés. La réservation d'un certain nombre de blocs de système de fichiers pour une utilisation par des processus privilégiés est effectuée pour éviter la fragmentation du système de fichiers et pour permettre aux démons système, tels que syslogd (8), de continuer à fonctionner correctement une fois que les processus non privilégiés sont empêchés d'écrire dans le système de fichiers. Normalement, le pourcentage par défaut de blocs réservés est de 5%.

Donc, si vous souhaitez réduire la réservation à 1% (~ 2 Go) et ainsi accéder à environ 8 Go d'espace réservé, vous pouvez le faire:

sudo tune2fs -m 1 /dev/nvme0n1p8

Remarque: l' -moption accepte en fait un nombre décimal comme paramètre. Vous pouvez utiliser -m 0.1pour réserver seulement environ 200 Mo (et accéder à la plupart des 10 Go auparavant indisponibles). Vous pouvez également utiliser l' -roption pour réserver directement par blocs. Il n'est probablement pas conseillé d'avoir 0 bloc réservé.

UN B
la source
3
L'utilisateur ne "récupère" pas 8 Go. Ils obtiennent 8 Go de plus à dépenser. Il serait préférable de rechercher ce qui utilise tout l'espace disque, puis éventuellement de nettoyer celui-ci, le cas échéant, ou de le déplacer ailleurs, ou d'agrandir la partition.
Kusalananda
1
@Kusalananda Je vais changer le vocabulaire. Quant à l'utilisation, j'aurais besoin des commentaires de OP. La question n'a jamais laissé entendre qu'il y avait une utilisation élevée inconnue, ne manquant que 10 Go.
AB
1
Une réponse très bonne et utile, merci. 5% semblent correspondre très clairement aux 10 gigaoctets manquants. Je ne suis pas inquiet d'utiliser autant d'espace disque dans l'ensemble, et je peux toujours augmenter ma partition. :)
tobiornottobi
4
Votre réponse est certainement correcte, mais il peut être utile de noter que la valeur de l'espace réservé à la racine dans ce cas n'est pas énorme. C'est le cas /home, et réserver de l'espace pour root n'est pas aussi important que pour d'autres parties du système de fichiers (par exemple pour s'assurer que les journaux système peuvent toujours être écrits). De plus, comme il s'agit d'un SSD, la prévention de la fragmentation peut ne pas avoir la priorité sur les disques métalliques en rotation.
marcelm
@marcelm Cela a du sens pour moi. Mais est-ce toujours utile sur une partition / home sur un SSD ou est-ce juste une perte d'espace? Recommanderiez-vous de réduire l'espace réservé à la racine à 1%?
tobiornottobi
8

Les fichiers supprimés peuvent également contribuer à «l'espace manquant»

lsof | grep deleted | grep /home

renvoie cette sortie pour moi

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

Ce qui montre que Chrome fonctionnant sous le PID 11181 a ouvert ce fichier BrowserMetrics, puis l'a supprimé et que le descripteur de fichier est toujours ouvert. Cela signifie que le fichier est invisible dans une liste de répertoires, mais occupe toujours de l'espace disque.

Pourquoi les programmes font-ils cela? Lorsque le binaire en cours d'exécution se termine, le système d'exploitation libérera le descripteur de fichier ouvert et le fichier sur le disque disparaîtra, sans risque de laisser un fichier temporaire périmé.

Ce que je ne vois pas, c'est la taille de l'utilisation du disque de ce fichier.

Criggie
la source
2
La plupart des programmes bien écrits ne devraient pas faire cela. C'est un bug, et il faut le signaler, c'est juste que la plupart de ces bugs obscurs n'apparaissent pas vraiment jusqu'à ce que vous soyez dans une phase d'optimisation, et s'il en est un, il peut même ne pas être détecté du tout pendant les tests. Notez qu'il peut y avoir une raison spécifique pour laquelle ils font cela, il peut y avoir une raison que je ne connais pas ici pour garder la poignée ouverte aussi longtemps.
Drunken Code Monkey
4
@DrunkenCodeMonkey Dude - son Chrome ... vous avez totalement raison.
Criggie
4
@DrunkenCodeMonkey, un grand nombre de programmes bien écrits le font. Le modèle d'ouverture-suppression-fermeture pour la création de fichiers temporaires sur * nix est presque universel, car il garantit que le fichier sera supprimé à la fermeture du programme, quelle que soit la façon dont il se termine: arrêt normal, plantage, tué par manque de mémoire, tué par coupure de courant, etc.
Mark
3
@DrunkenCodeMonkey donc, que faire si le programme n'en a jamais fini?
leftaroundabout
3
@DrunkenCodeMonkey: Le modèle est open-delete- work -close. Si le programme fait toujours quelque chose avec le contenu du fichier temporaire (par exemple, en l'utilisant comme cache sur disque ou en y enregistrant des données de télémétrie), il doit bien sûr le garder ouvert. (Bien sûr, il est également possible qu'il s'agisse en fait d'un descripteur de fichier non clos périmé que le programme aurait dû fermer, mais ne l'a pas fait. Je commencerais par l'hypothèse que le fichier est probablement gardé ouvert
volontairement