df vs du. Czy mój dysk jest naprawdę pełny?

13

Dziwny problem ...

Dlaczego mam pełną / partycję, ale tak naprawdę nie jest używana?

Szybka informacja:

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

Może i-węzły? Noo ...

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

Ale:

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

Może mam coś zepsutego w wierzchowcu? (ale w każdym razie zauważ, że użyłem du z opcją -x, która oblicza pliki TYLKO z / fileystem ...)

/ spacje dodane przeze mnie dla lepszej czytelności /

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)

Jądro:

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

Naprawdę ... Nie mam o tym pomysłów.

Co próbowałem:

  • sprawdź, czy jakiś fd nadal jest otwarty po rm -rf / usr / portage / distfiles / *
  • synchronizacja
  • restart
  • fsck

EDYCJA I ROZWIĄZANIE:

Jak zawsze znalazłem rozwiązanie po prośbie o pomoc (-;

Montowanie (jak powiedział Luke404) / partycja gdzie indziej i wykonywanie du -sh / mnt / coś powiedziało, że jest 15G danych, więc to samo jak w df.

W czym był problem?

uchwyt!

Później utworzyłem partycję / home, dodałem do / etc / fstab, skopiowałem pliki z / home (na / partycji) do / home (na / partycji domowej), ale ZAPOMNIAŁEM usunąć pliki z / home na / partition.

Więc nadal miałem moje stare pliki na / home (na / partition).

Ale dlaczego du -sxh powiedział mi 8G? Łatwo...

-x zmusza do nie sprawdzania różnych punktów montowania, więc ... nie sprawdził / home podczas montowania. I był mój zaginiony / dom.

Dzięki Luke404 i pidpawel, którzy pomogli mi na IRC.

Po napisaniu tego rozdziału EDIT zobaczyłem odpowiedzi tutaj, a Scrivener dostał punkt tutaj!

Głupie problemy są głupie (-;

morsik
źródło
Prześlij swoją odpowiedź i zaakceptuj ją po upływie tego czasu. Ewentualnie zaakceptuj Scrivenera, ponieważ doprowadziłby cię do tego.
Andrew B
Właściwie zamontowanie tego w innym miejscu powiedziało mi wszystko, ale odpowiedź Scrivenera najlepiej tłumaczy, więc niech przyszli ludzie zobaczą, że to dobrze (-;
morsik
Chodziło o to, że to pytanie wymagało zaakceptowanej odpowiedzi, niezależnie od tego, czy udzieliłeś odpowiedzi (możesz publikować odpowiedzi na własne pytanie), czy też ich. :) Dzięki!
Andrew B
O przyjętej odpowiedzi - wiem. Ale nie wiedziałem, że mogę zaakceptować własne (-; Dzięki za informacje.
morsik

Odpowiedzi:

13

Ten rodzaj problemu jest zawsze bardzo zabawny.

Zgaduję że? Masz pliki pod jednym z punktów montowania. Co to znaczy? Cóż, du -sh przejdzie ręcznie przez wszystkie znalezione pliki.

Powiedzmy, że mam katalog A. Jeśli zrzucę wiązkę plików do A, a następnie zamontujmy, powiedzmy, / dev / sdb na A, df -h powie, że mam kilka plików, których du nie chce być w stanie znaleźć!

Zdarza się to najczęściej w punktach montowania, które regularnie montują i podłączają, takich jak dyski USB, dyski sieciowe itp. Znacznie rzadziej można je zobaczyć, gdy monity odbywają się automatycznie podczas uruchamiania, ponieważ okno, w którym ma się odbyć, jest znacznie mniejsze.

Scrivener
źródło
2
Pod Linuksem mount --bindjest całkiem przydatny do identyfikowania ich bez odmontowywania systemu plików. tzn. mount --bind / /mnt/tmpspójrz poniżej swoich punktów montowania. Będziesz mógł znaleźć zamaskowane pliki i bezpiecznie je usunąć.
Andrew B,
3

Czy sprawdziłeś pliki w (obecnie) niedostępnych miejscach? Jak rzeczy w /home głównym systemie plików , których dunie widzisz, ponieważ podłączyłeś inny system plików /home?

Możesz na nie spojrzeć, instalując system plików w innym miejscu:

# mkdir /foo
# mount -o bind / /foo
# cd /foo
# du...
Luke404
źródło