Confusión de uso de disco: faltan 10G en la partición doméstica de Linux en SSD

15

Linux Mint me dice que solo tengo 622 MB de espacio libre en disco, pero deberían quedar algunos gigabytes.

Mirando las particiones me dicen que hay unos diez gigabytes sin usar. Busqué en Google el problema y no encontré una solución, pero encontré la pista de que debería verificar el uso del disco df -h.

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

La salida no tiene ningún sentido para mí: la diferencia entre Sizey Usedes de 11 GB, pero solo se muestra 622Mcomo Disponible.

El SSD no es viejo, por lo que no esperaría tal discrepancia.

¿Qué tengo que hacer?

tobiornottobi
fuente
3
Como comentó @Kusalananda, no deberías solo preguntarte por qué no obtienes esos 10GB (que espero haber abordado correctamente en mi respuesta), sino también por qué estás usando la mayor parte del espacio en / home. Si sabe por qué (por ejemplo: almacene muchos archivos multimedia, etc.) está bien, si no lo hace, debe preocuparse por ello, con una limpieza potencial que devuelve más de 10 GB de ahorro de espacio. Entonces, ¿cuál sería?
AB
"Mirando las particiones me han dicho que hay unos diez gigabytes sin usar". ¿Dónde te dijeron esto?
ctrl-alt-delor
2
@ ctrl-alt-delor desde dfla salida de - Tamaño: 189G, Usado: 178G
billyjmc
@ ctrl-alt delor, obtuve la cifra de 10GB de gparted - y luego 11G de la salida de df, como billyjmc dedujo correctamente.
tobiornottobi

Respuestas:

22

Si el sistema de archivos es ext4, hay bloques reservados, principalmente para ayudar a manejar y evitar la fragmentación y están disponibles solo para el usuario root. Para esta configuración, se puede cambiar en vivo usando tune2fs (no todas las configuraciones se pueden manejar de esta manera cuando se monta el sistema de archivos):

-m porcentaje-bloques-reservados

Establezca el porcentaje del sistema de archivos que solo puede ser asignado por procesos privilegiados. La reserva de una cierta cantidad de bloques del sistema de archivos para su uso por parte de procesos privilegiados se realiza para evitar la fragmentación del sistema de archivos y permitir que los demonios del sistema, como syslogd (8), continúen funcionando correctamente después de que los procesos no privilegiados no puedan escribir en el sistema de archivos. Normalmente, el porcentaje predeterminado de bloques reservados es del 5%.

Entonces, si desea reducir la reserva al 1% (~ 2 GB) y obtener acceso a ~ 8 GB de espacio no reservado, puede hacer esto:

sudo tune2fs -m 1 /dev/nvme0n1p8

Nota: la -mopción realmente acepta un número decimal como parámetro. Puede usar -m 0.1para reservar solo unos 200 MB (y acceder a la mayoría de los 10 GB que antes no estaban disponibles). También puede usar la -ropción en lugar de reservar directamente por bloques. Probablemente no se recomienda tener 0 bloques reservados.

AB
fuente
3
El usuario no está "volviendo" 8 GB. Están obteniendo 8 GB más para gastar. Sería mejor rastrear lo que está utilizando todo el espacio en disco y luego posiblemente hacer una limpieza de eso, si corresponde, o moverlo a otro lado, o hacer crecer la partición.
Kusalananda
1
@Kusalananda Cambiaré el vocabulario. En cuanto al uso, necesitaría los comentarios de OP. La pregunta nunca insinuó que había un alto uso desconocido, solo faltaban 10 GB.
AB
1
Una respuesta muy buena y útil, gracias. El 5% parece coincidir con los 10 gigabytes que faltan muy claramente. No estoy preocupado por usar tanto espacio en disco en general, y todavía puedo hacer crecer mi partición. :)
tobiornottobi
44
Su respuesta es ciertamente correcta, pero vale la pena señalar que el valor del espacio reservado para la raíz en este caso no es enorme. Esto es /home, y reservar espacio para root no es tan importante como lo es para otras partes del sistema de archivos (por ejemplo, para garantizar que los registros del sistema aún se puedan escribir). Además, como se trata de un SSD, la prevención de la fragmentación puede no tener la prioridad que tiene en los discos de metal giratorio.
marcelm
@marcelm Eso tiene sentido para mí. ¿Pero sigue siendo útil en una partición / home en un SSD o es solo una pérdida de espacio? ¿Recomendaría reducir el espacio reservado raíz al 1%?
tobiornottobi 01 de
8

Los archivos eliminados también pueden contribuir al "espacio perdido"

lsof | grep deleted | grep /home

devuelve esta salida para mí

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

Lo que muestra que Chrome ejecutándose como PID 11181 abrió ese archivo BrowserMetrics y luego lo eliminó, y todavía tiene el identificador de archivo abierto. Esto significa que el archivo es invisible en una lista de directorio, pero todavía está ocupando espacio en disco.

¿Por qué los programas hacen esto? Cuando finaliza el binario en ejecución, el sistema operativo liberará el identificador de archivo abierto y el archivo en el disco desaparecerá, sin riesgo de dejar un archivo temporal obsoleto.

Lo que no puedo ver es qué tan grande es el uso del disco de ese archivo.

Criggie
fuente
2
La mayoría de los programas bien escritos no deberían hacer esto. Es un error, y debe informarse, es solo que la mayoría de estos errores oscuros no aparecen realmente hasta que se encuentra en una fase de optimización, y si se trata de una sola vez, es posible que no se detecte durante las pruebas. Tenga en cuenta que puede haber una razón específica por la que están haciendo esto, puede haber una razón que no conozco aquí para mantener el mango abierto durante tanto tiempo.
Drunken Code Monkey
44
@DrunkenCodeMonkey Dude: es Chrome ... tienes toda la razón.
Criggie
44
@DrunkenCodeMonkey, muchos programas bien escritos hacen esto. El patrón abrir-borrar-cerrar para crear archivos temporales en * nix es casi universal, porque garantiza que el archivo se borrará cuando el programa salga, independientemente de cómo salga: terminación normal, bloqueo, muerte por falta de memoria, muerte por falla de energía, etc.
Marque el
3
@DrunkenCodeMonkey entonces, ¿qué pasa si el programa nunca termina con él?
Leftaroundabout 01 de
3
@DrunkenCodeMonkey: El patrón es open-delete- work -close. Si el programa todavía está haciendo algo con el contenido del archivo temporal (por ejemplo, usándolo como caché en disco o registrando datos de telemetría en él), entonces, por supuesto, debe mantenerlo abierto. (Por supuesto, también es posible que este sea realmente un identificador de archivo no cerrado obsoleto que el programa debería haber cerrado pero no lo hizo. Pero dado que solo hay un archivo de este tipo y que no hay otras indicaciones obvias de una pérdida de recursos, Comenzaría por suponer que el archivo probablemente se mantendrá abierto a propósito.)
Ilmari Karonen