дисковое пространство ext4, не исправленное после удаления файлов

Вам, вероятно, нужно richacls для этого. Я не знаю, ли или как легко, который возможен с RHEL6.

И могло бы быть необходимо изменить владельца каталога. Не должно иметь значения, кто владелец каталога, пока все могут сделать то, что ему разрешают сделать, не так ли?

2
22.04.2015, 04:05
1 ответ

Модули загружаются при загрузке системы через Initial RAM Disk a.k.a the initrd . В разделе «Обоснование» говорится:

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

Ubuntu, как и многие другие дистрибутивы, выбирает загрузку каждого драйвера устройства в этот initrd, независимо от того, нужен ли драйвер или нет, а также независимо от того, присутствует ли устройство в системе или нет. вся вещь загружается в ОЗУ, а затем при запуске обнаруживаются использованные модули, а неиспользуемые удаляются из ОЗУ. Использование этого подхода гарантирует, что Ubuntu всегда будет запускаться в любой системе независимо от настройки. Ubuntu имитирует монолитное ядро, используя конструкции микроядер. См. Причина, по которой это работает


  1. Модуль rt2800usb всегда загружается при загрузке, поскольку модуль был включен в initramfs , на который ссылался Жиль. Initramfs является преемником initrd, поэтому он всегда будет показан lsmod . Обратите внимание, что недавно скомпилированный модуль можно вставить в ядро с помощью modprobe с последующим именем модуля.

При тестовой перезагрузке системы с отсоединенным беспроводным адаптером. Если все идет хорошо, модуль не будет перечислен в выходных данных lsmod , потому что во время загрузки процесс обнаружения, запущенный initramfs и системой init, не обнаружил устройство во время зондирования, и модуль был удален из ОЗУ.

  1. Для удаления модуля во время работы системы можно использовать такие команды, как rmmod или modprobe -r с последующим именем модуля. При следующей загрузке модуль будет перезагружен. См. Выше. В большинстве случаев модуль не удаляется динамически, так как это приведет к отключению горячей установки, т.е. после удаления модуля устройство, использующее его, не может быть обнаружено снова при замене.

Чтобы удалить модуль из lsmod , необходимо удалить его из образа initramfs, созданного перекомпилированием ядра без выбранного модуля, а затем перестроить образ. При этом блокируется все обнаружение указанного модуля.

-121--28962-

Поэтому /var/www/public _ html на самом деле является папкой Windows, но /var/www/data - нет? Вы пытаетесь создать символическую ссылку из каталога Windows в каталог Ubuntu на виртуальной машине.Нет пути, что Windows может поддерживать такой объект.

Для расширения вышесказанного: я думаю, что суть в том, что хост Windows настроен как файловый сервер, обеспечение доступности C :\Users\Tom _ Hart\Documents\development\public _ html клиентам - в частности, предоставление доступа для чтения/записи к образу Ubuntu, таким образом, Ubuntu может читать, изменять и создавать объекты в этом каталоге Windows и в нем. Но, в общем, серверы не имеют видимости своих клиентов (Каково бы вам было, если бы Google начал индексировать ваши файлы и вернуть их в результатах поиска?) Если образ Docker не экспортирует свои файлы, У Windows нет пути на доступ к /var/www/data - или даже понять такой путь; например,

     C :\Users\Tom _ Hart\Documents > notepad/var/www/data/cache/widget/overlay/ что-то 

не сработает (может показаться, что вы имеете в виду C :\var\www\data\cache\... ). Кажется естественным, что Windows откажется от создания символической ссылки, в каталоге Windows, к ресурсу, к которому не могут получить доступ процессы Windows.

-121--89256-

Здесь есть две возможности:

  1. Вас смущает (по общему признанию, запутанное) поведение df и root-reserved space
  2. Вы удалили (несвязали) одну жесткую ссылку на файлы, есть еще.

Лично я подозреваю, что вы видите # 1. Ниже приводится подробная информация, а также некоторые заключительные замечания.

Запутанное поведение df

Если файловая система заполнена полностью, как пользователь, не являющийся пользователем root, это выглядит следующим образом:

Filesystem      Size  Used Avail Use% Mounted on
/dev/md10       248M  236M  1.0K 100% /boot

, но для корня зарезервировано пространство, обычно 5%. Если root заполняет его, это то, как выглядит df (в случае этой крошечной файловой системы, это еще одна 13 МБ):

Filesystem      Size  Used Avail Use% Mounted on
/dev/md10       248M  248M     0 100% /boot

Обратите внимание, что она пошла от 100% привыкла к... Используется 100%. Несмотря на фактически быть еще 5% используется. Поле Used изменилось, как и ожидалось, но поле avail только что изменилось с 1K на 0.

А что происходит, когда вы удаляете первый 13MB данных? Ну, вы возвращаетесь к первому выходу - вы освободили 5%, но все еще при 100% использования и почти не доступны.

Вывод: если вы хотите посмотреть, сколько места вы на самом деле освобождаете, посмотрите на столбец Used - не Avail , не Use% .

Не было последней жесткой ссылки

rm на самом деле не удаляет файлы. Это их разъединяет - то есть удаляет с них жесткие связи. Каждая hardlink дает файлу одно имя, в основном. Если у файла не осталось ссылок (и он не открыт и т.д.), то только тогда файл фактически удаляется.

Файл фактически однозначно идентифицируется в файловой системе, независимо от количества его имен, по его inode-номеру. Если вы знаете номера inode для этих файлов, вы можете использовать find -inum , чтобы найти все жесткие ссылки на них - но вы, вероятно, нет. Если у вас есть связанные файлы для очистки,номера inode можно получить с помощью stat . Затем можно использовать find/path/to/mount -inum NUMBER для поиска всех жестких ссылок на этот файл (включая имя, которое вы только что запустили). Кроме того, после фактического удаления файла можно повторно использовать номера inode.

Помните: номера inode на файловую систему . Таким образом, два разных файла могут быть 42 inode в двух разных файловых системах. Только в одной файловой системе гарантировано, что inode 42 всегда будет одним и тем же файлом. Кроме того, номера inode не всегда работают правильно с сетевыми файловыми системами или файловыми системами, отличными от Unix. Но вы используете ext4, где определенно делают.

Кроме этого, вам просто придется найти любые другие имена, чтобы удалить обычные способы (например, путем поиска больших вещей с xdiskusage , как вы уже делаете)

Общие замечания

Папки корзины являются только каталогами. Если бы они были полны мусора, который вам не удалось удалить, они бы показали в xdiskusage .

Вы должны рассмотреть систему резервного копирования, которая может лучше обрабатывать удаление старых резервных копий для вас - выполнение ее вручную подвержено ошибкам. Хуже того, это также может быть забыто, что приводит к сбоям резервного копирования - и восстановление, как правило, последних данных (например, случайное удаление, поврежденный файл, отказ диска), а не старые данные («О да, мне нужна была вещь, которую я удалил в прошлом году»...)поэтому «сбой полного резервного копирования на диск» означает, что вы фактически отбрасываете наиболее ценные данные (новая резервная копия) для сохранения наименее ценных данных (эта резервная копия двухлетней давности).

3
27.01.2020, 22:05

Теги

Похожие вопросы