Was bedeutet es unter Linux, wenn ein Verzeichnis die Größe 0 anstelle von 4096 hat?

7

Hier ist eine seltsame Sache, die ich noch nie gesehen habe - ein Verzeichnis, dessen Größe von ls als 0 anstelle von 4096 angegeben wird und in dem ich keine Dateien erstellen kann.

# ls -ld lib home
drwxr-xr-x.  2 root root    0 Feb  7 03:10 home  <-- it has zero size
dr-xr-xr-x. 11 root root 4096 Feb  4 09:28 lib
# touch home/foo
touch: cannot touch `home/foo': No such file or directory  <-- and I can't create files in it
# rm home
rm: cannot remove `home': Is a directory   <-- look, it really is a dir

Was bedeutet es für ein Verzeichnis, die Größe 0 anstelle von 4096 zu haben?

Das Dateisystem ist ext4 auf Fedora Core 14.

Die Ausgabe von mountist:

/dev/mapper/vg_dev-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")
/dev/vda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

Ausgabe von du -s /home:

0   /home

Ausgabe von stat /home:

  File: `/home'
  Size: 0           Blocks: 0          IO Block: 1024   directory
Device: 15h/21d Inode: 34913       Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-02-07 03:45:46.188995765 -0800
Modify: 2011-02-07 03:11:59.980995019 -0800
Change: 2011-02-06 07:58:45.874995002 -0800
kdt
quelle
Können Sie uns die Ausgabe von "mount" geben?
MadHatter
Was stat homesagt das? Auch du -s home?
Bis auf weiteres angehalten.

Antworten:

10

Ich vermute, Sie verwenden Autofs für Ihre Home-Verzeichnisse.

So werden einige verschiedene Pseudo-Dateisysteme angezeigt. Pseudo-Dateisysteme sind Dateisysteme, die keine Dateien enthalten. Sie werden feststellen, dass / proc auch so ist. Grundsätzlich liegt es daran, dass nichts in / home ist, keine Dateien, nichts. Wenn Sie versuchen, darauf zuzugreifen, sehen Autofs die Anforderung und versuchen, das entsprechende Basisverzeichnis wie angefordert bereitzustellen. Mit proc sind diese nicht wirklich Dateien, sondern nur Darstellungen von Dateien, wie sie von den verschiedenen Treibern (und dem Kernel) bereitgestellt werden, die auf dem System ausgeführt werden.

Bearbeiten: Schalten Sie autofs aus und es wird wie ein normales Verzeichnis angezeigt.

Patrick
quelle
0

Es bedeutet, dass etwas nicht stimmt und Sie das Dateisystem überprüfen müssen.

Mark Wagner
quelle
1
Hrm, wie gehst du zu fsck / proc?
Patrick
0

df -i könnte interessant sein - könnten Sie in diesem Dateisystem keine Inodes mehr haben?

Jeff Albert
quelle