Анализировать использование диска без учета монтирования

Ubuntu жалуется, что моя корневая файловая система почти заполнена, но когда я использую baobab (он же "Анализатор использования дисков") или du -h он суммирует использование всех других смонтированных файловых систем.

Как я могу исключить другие файловые системы, которые смонтированы в разных подкаталогах?

4 ответа

Решение

Баобаб: Если вы хотите использовать баобаб, это возможно, смонтировав корневую файловую систему в другом месте и проанализировав ее. Таким образом, другие файловые системы не будут монтироваться в новом корневом монтировании, а любые файлы, скрытые монтированием в / будет раскрыт и учтен в вашем анализе.

Предполагая, что ваша корневая файловая система включена sda1 (df скажет, какое это устройство):

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

и затем приведите в порядок, когда вы закончите:

sudo umount root-rebound
rmdir root-rebound

В качестве альтернативы вы можете размонтировать указанные файловые системы вручную. Вы также можете сканировать только свою домашнюю папку, поскольку она, скорее всего, будет содержать источник чрезмерного использования дискового пространства.

У du есть две опции, которые могут предотвратить подсчет других файловых систем:

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

Таким образом,

du -hx

будет игнорировать все другие подключенные файловые системы или

du -h --exclude /media

будет игнорировать все файлы в /media где большинство файловых систем смонтированы.

Если вы используете duсортировка так, что самые большие вещи появляются внизу списка, может помочь расшифровать вывод. например:

du -hx | sort -h

В зависимости от типа файловой системы вам может быть запрещено монтировать корневую файловую систему в точке монтирования под /, Вы получите что-то похожее на это:

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

Монтаж только для чтения (-o ro) может помочь. Если это не удается, используйте привязку:

mount --bind / /mnt

После подключения используйте любой инструмент для анализа использования диска, т. Е. du -sh * | sort -h

В этом отчете об ошибках объясняется, как можно настроить baobab для игнорирования каталогов. К сожалению, вы не можете сделать это внутри самого приложения, но вы должны использовать dconf-editor и открыть org.gnome.baobab.preferences, Здесь вы найдете товар excluded-uris; изменить это на ['file:///path/to/ignore'] (работал с одинарными кавычками для меня).

Baobab пытается дать вам контроль над сканируемыми устройствами / разделами - перейдите на Edit->Preferences, Как правило, вы хотите сканировать устройство только в точке монтирования /, Однако он не распознает все типы ссылок / монтировок / привязок, поэтому в конечном итоге Baobab может по-прежнему давать запутанные результаты, если у вас нетривиальная конфигурация.


За du, следующая функция оболочки называется dutop отобразит верхний уровень указанной папки (или текущей папки). При этом вы можете проверять подпапки по одной за раз.

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

Вероятно, это приведет к появлению несущественных ошибок "Отказано в доступе", если вы примените его к /, но вы могли бы решить те, которые с некоторыми соображениями, как показано ниже, который будет запрашивать ваш пароль (если вы недавно не предоставили его).

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

Для больших папок это может занять некоторое время. Они не будут сообщать никакого инкрементного статуса, потому что операция сортировки буферизует все промежуточные результаты. Это нормально, чтобы прервать с помощью Ctrl-C, если вы устали ждать.

Другие вопросы по тегам