df vs du. Чи справді мій диск повний?


13

Дивна проблема ...

Чому я використовував full / partition, але він насправді не використовується?

Швидка інформація:

xwing ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           16G   15G   75M 100% /
/dev/root        16G   15G   75M 100% /
devtmpfs        5,9G     0  5,9G   0% /dev
tmpfs           5,9G  552K  5,9G   1% /run
rc-svcdir       1,0M   72K  952K   8% /lib64/rc/init.d
cgroup_root      10M     0   10M   0% /sys/fs/cgroup
shm             5,9G     0  5,9G   0% /dev/shm
cachedir        4,0M  4,0K  4,0M   1% /lib64/splash/cache
/dev/sda1       124M   43M   76M  36% /boot
/dev/sda5        63G   25G   36G  42% /home
/dev/sda6       483G  147G  312G  33% /mnt/data
tmpfs           8,0G     0  8,0G   0% /var/tmp/portage

Можливо i-вузли? Ну ...

xwing ~ # df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
rootfs          1048576 548459   500117   53% /
/dev/root       1048576 548459   500117   53% /
devtmpfs        1525561    517  1525044    1% /dev
tmpfs           1525918    374  1525544    1% /run
rc-svcdir       1525918     61  1525857    1% /lib64/rc/init.d
cgroup_root     1525918      5  1525913    1% /sys/fs/cgroup
shm             1525918      1  1525917    1% /dev/shm
cachedir        1525918      2  1525916    1% /lib64/splash/cache
/dev/sda1         32768    314    32454    1% /boot
/dev/sda5       4194304 145765  4048539    4% /home
/dev/sda6      32153600  11325 32142275    1% /mnt/data
tmpfs           1525918      1  1525917    1% /var/tmp/portage

Але:

xwing ~ # du -sxh /
8,3G    /

Може, у мене щось зламане в горі? (але все одно, зауважте, я використовував du з -x, який обчислює файли ТІЛЬКИ з / файлової системи ...)

/ додані мною пробіли для кращої читальності /

xwing ~ # mount
rootfs      on /                        type rootfs   (rw)
/dev/root   on /                        type ext4     (rw,noatime,data=ordered)
devtmpfs    on /dev                     type devtmpfs (rw,relatime,size=6102244k,nr_inodes=1525561,mode=755)
proc        on /proc                    type proc     (rw,nosuid,nodev,noexec,relatime)
tmpfs       on /run                     type tmpfs    (rw,nosuid,nodev,relatime,mode=755)
rc-svcdir   on /lib64/rc/init.d         type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=1024k,mode=755)
sysfs       on /sys                     type sysfs    (rw,nosuid,nodev,noexec,relatime)
debugfs     on /sys/kernel/debug        type debugfs  (rw,nosuid,nodev,noexec,relatime)
cgroup_root on /sys/fs/cgroup           type tmpfs    (rw,nosuid,nodev,noexec,relatime,size=10240k,mode=755)
cpuset      on /sys/fs/cgroup/cpuset    type cgroup   (rw,nosuid,nodev,noexec,relatime,cpuset)
cpu         on /sys/fs/cgroup/cpu       type cgroup   (rw,nosuid,nodev,noexec,relatime,cpu)
cpuacct     on /sys/fs/cgroup/cpuacct   type cgroup   (rw,nosuid,nodev,noexec,relatime,cpuacct)
freezer     on /sys/fs/cgroup/freezer   type cgroup   (rw,nosuid,nodev,noexec,relatime,freezer)
devpts      on /dev/pts                 type devpts   (rw,nosuid,noexec,relatime,gid=5,mode=620)
shm         on /dev/shm                 type tmpfs    (rw,nosuid,nodev,noexec,relatime)
cachedir    on /lib64/splash/cache      type tmpfs    (rw,nosuid,nodev,noexec,noatime,size=4096k,mode=755)
/dev/sda1   on /boot                    type ext2     (rw,noatime)
/dev/sda5   on /home                    type ext4     (rw,noatime)
/dev/sda6   on /mnt/data                type ext4     (rw,noatime)
tmpfs       on /var/tmp/portage         type tmpfs    (rw,size=8G)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)

Ядро:

morsik@xwing ~ $ uname -a
Linux xwing 3.6.2-gentooxwing #8 SMP Sun Oct 21 21:36:53 CEST 2012 x86_64 Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz GenuineIntel GNU/Linux

Дійсно ... Я не маю можливих уявлень про це.

Що я спробував:

  • перевірте, чи є ще якийсь fd відкритий після rm -rf / usr / portage / distfiles / *
  • синхронізація
  • перезавантажити
  • fsck

Редагування та рішення:

Як завжди, я знайшов рішення після прохання про допомогу (-;

Монтаж (як сказав Luke404) / розділ десь інше і виконання du -sh / mnt / щось сказано, що є 15G даних, так само, як у df.

У чому була проблема?

кріплення!

Пізніше я створив / домашній розділ, додав до / etc / fstab, я скопіював файли з / home (на / розділ) в / home (на / домашній розділ), але я ЗАБУХАЮТЬ видаляти файли з / home at / partition.

Тож у мене ще були старі файли в / home (on / partition).

Але чому du -sxh сказав мені 8G? Легко ...

-x змушує не перевіряти різні точки кріплення, тому ... він не перевіряв / вдома, поки він був встановлений. І там був мій зниклий / додому.

Завдяки Luke404 та pidpawel, які допомогли мені на IRC.

Після написання цього розділу редагування я побачив тут відповіді, і Scrivener отримав крапку тут!

Дурні проблеми дурні (-;


Будь ласка, надайте власну відповідь та прийміть її після закінчення строку. Крім того, прийміть Scrivener's, оскільки це б наводило вас на це.
Андрій Б

Власне, монтування цього в іншому місці мені все розповіло, але відповідь Скривенера найкраще пояснити, тому нехай майбутні люди побачать, що це добре (-;
morsik

Ну, суть полягала в тому, що на це запитання потрібна прийнята відповідь, будь-яка, яку ви внесли в свій внесок (вам дозволяється розміщувати відповіді на власне запитання), або їхня. :) Спасибі!
Андрій Б

Про прийняту відповідь - я знаю. Але я не знав, що можу прийняти своє (-; Дякую за інформацію.
morsik

Відповіді:


13

Така проблема завжди дуже цікава.

Моя здогадка? У вас є файли під одним із ваших точок кріплення. Що це означає? Ну, du -sh пройде вручну через усі файли, які він може знайти.

Скажімо, у мене є каталог, A. Якщо я скидаю купу файлів у A, а потім монтую, скажімо, / dev / sdb поверх A, df -h скаже, що у мене є купа файлів, які не будуть вміти знайти!

Найчастіше це трапляється з точками кріплення, які монтуються та змінюються регулярно, як-от USB-накопичувачі, мережеві диски тощо. Це набагато рідше бачити це, коли монтажі трапляються автоматично під час завантаження, оскільки вікно для цього відбувається настільки менше.


2
У Linux mount --bindдосить корисно для їх ідентифікації без демонтажу файлової системи. тобто mount --bind / /mnt/tmpподивіться під точки монтажу. Ви зможете знайти замасковані файли та безпечно їх видалити.
Андрій Б

3

Ви перевіряли файли в (зараз) недоступних місцях? Як і речі під /home кореневою файловою системою , які ви duне бачите, оскільки на них встановлено іншу файлову систему /home?

Ви можете подивитися на них, встановивши кріплення файлової системи десь в іншому місці:

# mkdir /foo
# mount -o bind / /foo
# cd /foo
# du...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.