Как диск Linux может быть заполнен, но общее количество файлов значительно меньше?

5475
Justin Love

dfсообщает 16G раздел на 100%. duна root сообщает о 1G в файлах. Куда делось все мое дисковое пространство?

4

5 ответов на вопрос

7
Justin Love

Файлы могут быть скрыты точкой монтирования.

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

Ах. Отлично. Хорошая головоломка, чтобы показать нам, когда мы не так умны, как нам хотелось бы думать. dmckee 15 лет назад 0
4
dmckee

В дополнение к неэффективному использованию пространства, которое обсуждает Дуг, некоторые файловые системы имеют ограниченное количество inode (уникальных идентификаторов файлов), и после их создания невозможно создавать новые файлы. Используйте, df -iчтобы увидеть, где вы находитесь на Inode.

Кроме того, ext[23]файловые системы (и другие?) Могут зарезервировать часть диска для суперпользователя. Обычно это всего лишь несколько процентов (5 типично для более старых систем), но его можно установить намного выше, чем это. Я считаю, что вы хотите использовать tune2fsздесь (Mac OS и, возможно, другие Unixes называют это tunefs) с -mопцией.

3
Captain Segfault

Возможно, у вас запущены программы со старыми несвязанными файлами. Эти файлы сохраняются на диске до тех пор, пока эти программы не закроются, но не будут связаны с деревом файловой системы.

Обратите внимание, что это отличается от поведения Windows, которое не позволит вам удалить такой файл.

2
Doug

У вас есть большое количество очень маленьких файлов? Linux (и большинство операционных систем) записывают файлы в виде блоков размером (например, 4 КБ), и каждый файл использует кратное этого размера. Например, если у вас есть 121-байтовый файл, на диске все еще используются 4096 байт. Остальная часть пространства в этом блоке по существу "потрачена впустую".

Это составляет несколько мегабайт, но не 94% раздела. Justin Love 15 лет назад 1
Правда, за исключением крайнего случая, когда вы написали неконтролируемую программу, которая порождает миллионы этих маленьких файлов ... Были там, сделали это :( Doug 15 лет назад 1
0
Steve Scherer

I had this exact same problem. I had an issue where my primary boot disk was filling up after I performed a sync of backup drives.

>rsync -avxHAXW /media/backup1 /media/backup2 

After this sync my primary disk was full.... which baffled me. It turns out I was accidentally copying files to my boot disk, not my backup2. I corrected the mistake, deleted the massive file on my primary disk and reran rsync. Even after unmounting and remounting my backup disks my boot disk was out of space. I even tried cleaning up large files on my boot disk....

>find . -type f -print0 | xargs -0 du -s | sort -n | tail -25 | cut -f2 | xargs -I{} du -sh {} 

Deleted any large files that were no longer necessary. I also made sure to empty the trash.

>empty-trash 

After all of that work... disk still full. I decided to reboot the machine. After the reboot, my boot disk partition went from 100% full to 10% full! It appears the rsync process must have continued to run in the background holding onto disk resources. I hate giving this advice, but after doing all of the disk cleanup you might just need to reboot your machine to kill off any background processes that are hanging onto data, preventing disk from truly being freed.

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