analizar el uso del disco ignorando las monturas

67

Ubuntu se queja de que mi sistema de archivos raíz está casi lleno, pero cuando lo uso baobab(también conocido como "Disk Usage Analyzer") o du -hresume el uso de todos los demás sistemas de archivos montados también.

¿Cómo puedo excluir los otros sistemas de archivos que están montados en una variedad de subdirectorios?

drevicko
fuente

Respuestas:

72

baobab: si desea usar baobab, esto es posible montando el sistema de archivos raíz en otro lugar y analizándolo. De esta forma, otros sistemas de archivos no se montarán en el nuevo montaje raíz y los archivos ocultos por los montajes debajo /se descubrirán y contarán en su análisis.

Asumiendo que su sistema de archivos raíz está encendido sda1( dfle dirá qué dispositivo es):

mkdir root-rebound
sudo mount /dev/sda1 root-rebound
baobab root-rebound

y luego ordena cuando hayas terminado:

sudo umount root-rebound
rmdir root-rebound

Alternativamente, puede desmontar dichos sistemas de archivos manualmente. También puede escanear solo su carpeta de inicio, porque probablemente contendrá la fuente del uso excesivo de espacio en disco.

du tiene dos opciones que pueden evitar contar otros sistemas de archivos:

 -x, --one-file-system
         skip directories on different file systems
     --exclude=PATTERN
         exclude files that match PATTERN

Así,

du -hx

ignoraría todos los demás sistemas de archivos montados o

du -h --exclude /media

ignoraría todos los archivos en los /mediaque están montados la mayoría de los sistemas de archivos.

Si está utilizando du, ordenar para que las cosas más grandes aparezcan al final de la lista puede ayudar a descifrar la salida. p.ej:

du -hx | sort -h
Cumulus007
fuente
2
Genial, no vi la opción -x. También encontré otra forma: puede montar el sistema de archivos nuevamente en algún lugar, luego usar du o baobab para analizarlo. Además, me parece útil hacerlo du -hx | sort -h, aunque el baobab es más fácil de interpretar.
drevicko
@ Cumulos007 - si te parece bien, agregaré mi solución y sugerencia a tu respuesta y la aceptaré
drevicko
¡Eso está bien para mi!
Cumulus007
1
@wim no, la versión GUI no parece capaz de usar la opción -x de du. Sin embargo, el montaje del sistema de archivos raíz en otro lugar funciona: eso es lo que hago en estos días (:
drevicko
1
du -kx | sort -nes mi camino
Alejandro Teixeira Muñoz
6

Dependiendo del tipo de sistema de archivos, es posible que no pueda montar el sistema de archivos raíz en un punto de montaje debajo /. Obtendrás algo similar a esto:

mount: /dev/sda1 already mounted or /mnt busy
mount: according to mtab, /dev/sda1 is mounted on /

El montaje de solo lectura ( -o ro) podría ayudar. Si eso falla, use un montaje de enlace:

mount --bind / /mnt

Una vez montado, use cualquier herramienta para analizar el uso del disco, es decir du -sh * | sort -h

Bram
fuente
3

Este informe de error explica cómo es posible configurar baobab para ignorar directorios. Lamentablemente, no puede hacerlo dentro de la aplicación en sí, pero debe usar dconf-editory abrir org.gnome.baobab.preferences. Aquí encontrarás un artículo excluded-uris; cambie esto a ['file:///path/to/ignore'](trabajó con comillas simples para mí).

geira
fuente
Esto realmente no responde la pregunta, pero es información útil, y alguien que busca dicha información puede terminar aquí, así que estoy votando (:
drevicko
Responde a la pregunta sobre cómo ignorar los montajes en baobab (excluyendo los puntos de montaje) sin tener que volver a montar la partición raíz. La otra mitad de la pregunta (du) ya está respondida en la publicación aceptada.
geira
2

Baobab intenta darle el control de los dispositivos / particiones que escanea, vaya a Edit->Preferences. Por lo general, solo desea escanear el dispositivo en Mount Point /. Sin embargo, esto no reconoce todos los tipos de enlaces / montajes / enlaces , por lo que, en última instancia, Baobab aún puede producir resultados confusos si tiene una configuración no trivial.


Para du, la siguiente función de shell llamada dutopmostrará el nivel superior de la carpeta especificada (o la carpeta actual). Con esto, puede sondear las subcarpetas de una en una.

function dutop() { du --max-depth=1 --one-file-system -h $@ |sort -h; }

Es probable que esto informe errores irrelevantes de "Permiso denegado" si lo aplica /, pero podría resolver aquellos con algo como lo siguiente, que le pedirá su contraseña (si no la ha proporcionado recientemente).

function sudutop() { sudo du --max-depth=1 --one-file-system -h $@ |sort -h; }

Para carpetas grandes, esto puede tomar un tiempo. No informarán ningún estado incremental porque la operación de ordenación está almacenando todos los resultados intermedios. Está bien abortar con Ctrl-C si te cansas de esperar.

sin bar
fuente