Анализировать использование диска без учета монтирования
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, если вы устали ждать.