Disco lleno pero no puedo encontrar dónde está el espacio utilizado (Ubuntu)

Disco lleno pero no puedo encontrar dónde está el espacio utilizado (Ubuntu)

Tengo un pequeño Intel NUC con una unidad de 30 GB. Mi problema es que esta unidad está llena pero no puedo encontrar la causa.

dfreportando lo siguiente

Filesystem     1K-blocks      Used Available Use% Mounted on
udev              899412         0    899412   0% /dev
tmpfs             189284      2676    186608   2% /run
/dev/sda2       28414508  27751116         0 100% /
tmpfs             946404         0    946404   0% /dev/shm
tmpfs               5120         4      5116   1% /run/lock
tmpfs             946404         0    946404   0% /sys/fs/cgroup
/dev/loop0           128       128         0 100% /snap/bare/5
/dev/loop1         56832     56832         0 100% /snap/core18/2128
/dev/loop2         56832     56832         0 100% /snap/core18/2246
tmpfs             946404         0    946404   0% /tmp
/dev/loop3        314880    314880         0 100% /snap/makemkv/381
/dev/loop4         66688     66688         0 100% /snap/gtk-common-themes/1515
/dev/loop5         63360     63360         0 100% /snap/core20/1169
/dev/loop6         63360     63360         0 100% /snap/core20/1081
/dev/loop7         33280     33280         0 100% /snap/snapd/13270
/dev/loop8        317184    317184         0 100% /snap/makemkv/385
/dev/loop9         33280     33280         0 100% /snap/snapd/13640
/dev/loop10        66816     66816         0 100% /snap/gtk-common-themes/1519
/dev/sda1         306584      5356    301228   2% /boot/efi
tmpfs             189280         4    189276   1% /run/user/1000

Al calcular esto, se obtienen alrededor de ~14 GB de espacio en disco utilizado.

Corrersudo lsof | grep REG | grep -v "stat: No such file or directory" | grep -v DEL | awk '{if ($NF=="(deleted)") {x=3;y=1} else {x=2;y=0}; {print $(NF-x) " " $(NF-y) } }' | sort -n -u | numfmt --field=1 --to=iec | tail -10

me da una lista con algunos procesos que importan:

5,5M  /usr/lib/php/20190902/fileinfo.so
6,8M  /usr/lib/jellyfin/bin/libcoreclr.so
8,0M  /var/log/journal/6296b00d07874d0a9533eed0efb81840/user-1000.journal
8,2M  /usr/lib/jellyfin/bin/System.Private.Xml.dll
8,3M  /usr/lib/locale/locale-archive
8,9M  /usr/lib/jellyfin/bin/System.Private.CoreLib.dll
10M  /usr/lib/udev/hwdb.bin
24M  /snap/snapd/13640/usr/lib/snapd/snapd
27M  /usr/lib/x86_64-linux-gnu/libicudata.so.66.1
64M  /memfd:pulseaudio

Ejecutar sudo du -sh / --exclude=disks --totalme da un total de 13 GB.

Entonces, básicamente no tengo ideas sobre cómo averiguar dónde faltan ~ 16 GB que el sistema informa que están en algún lugar llenando mi disco.

Y el informe en realidad se comporta como tal, ejecutándose

cd ~/ && touch example && echo "FooBar" > example
-bash: echo: write error: No space left on device

Gracias de antemano y cualquier idea es una buena idea, básicamente tengo un dispositivo que en este momento no se puede utilizar y mis opciones se están agotando (básicamente, una reinstalación limpia/comprar un SSD más grande para un dispositivo que no debería usar más). de 20 gb)

Respuesta1

Algunas posibilidades para intentar encontrar lo que llena su partición "/":

  • lsof -nP +L1 # debe enumerar todos los archivos que fueron eliminados (desvinculados) pero que aún están abiertos por un proceso y, por lo tanto, aún ocupan la distribución
  • Vea también esa respuesta:https://unix.stackexchange.com/a/68532/27616que proporciona algunas informaciones adicionales y cosas para probar
  • Otra posibilidad: verifique (con df -ih /) si no tiene "millones" de archivos pequeños en ese /sistema de archivos: cada archivo ocupa al menos una "pequeña" cantidad de disco (generalmente porque ocupa al menos 1 inodo, cuyo tamaño varía dependiendo de el tamaño del archivo y el sistema de archivos). Esto puede sumar... si el espacio mínimo en disco ocupado es de 512 bytes, tener 1 millón de archivos de 1 byte cada uno seguirá ocupando 512 millones de bytes en lugar de 1 millón de bytes. dfmostrará el espacio en disco ocupado (se cuenta el espacio de inodo completo), mientras que dumostrará los tamaños de archivos agregados (es decir, solo el contenido de esos archivos, no el espacio que ocupan los inodos que contienen este contenido)
  • Otra posibilidad: podría haber algunos archivos grandes ocultos por un sistema de archivos montado. Es decir, algunos archivos podrían estar "debajo" de un sistema de archivos montado (tal vez coloques una gran cantidad de archivos grandes en el/tmp directorio(el que está en el /sistema de archivos y que luego se usa como punto de montaje para montar el /tmpsistema de archivos)? Esto podría suceder si coloca cosas allí mientras el /tmpsistema de archivos no estaba montado. Para verificar esto, puede, en Linux, volver a montar /(usando un dispositivo de bucle libre) como de solo lectura en algún lugar (por ejemplo: montarlo debajo de un /mnt/readonlyroot/punto de montaje) y explorarlo usando du -hs /mnt/readonlyrooty comparar con du -hxs /# -xevita que du descienda a otro sistema de archivos. montado debajo /, como el /tmpsistema de archivos, por ejemplo).
    • comando para montar (por segunda vez) /como solo lectura debajo de algún punto de montaje: puedes (desde lo más alto de mi memoria... no puedo verificar eso en Linux en este momento):
      • mkdir -p /mnt/rootreadonly/para crear el punto de montaje del directorio (que, irónicamente, estará dentro del sistema de archivos "/"...)
      • mount -o loop -o ro /dev/sda2 /mnt/rootreadonly(para que el sistema de archivos "/" aparezca allí como de solo lectura. Especifico sda2 aquí mientras muestra que su sistema de archivos "/" está en "/dev/sda2" en su pregunta. Alguna otra persona que lea esta respuesta debería verificar primero el resultado para mountver de dónde /viene su sistema de archivos...)

información relacionada