On Wed, 29 Nov 2000, Andreas Dilger wrote:
> What people who have the problem should be doing is:
> [desc snipped]
> > ls -li holed.file # find inode number
> 10732 -rw-r--r-- 1 root root 6000000 Nov 29 16:17 holed.file
> > du -sk holed.file # see what "stat" thinks
> 983k holed.file
> > debugfs /dev/XXX
> debugfs> stats # find out ext2 block size
> ...
> Block size = 1024, fragment size = 1024
> ...
> debugfs> stat <10732> # (with < and >)
> Inode: 10732 Type: regular Mode: 0644 Flags: 0x0 Generation:
> 4048594821
> User: 0 Group: 0 Size: 6000000
> File ACL: 0 Directory ACL: 0
> Links: 1 Blockcount: 1966
> ^^^^ these are 512-byte blocks, so / 2 for ~kB
> they include indirect blocks and such
> Fragment: Address: 0 Number: 0 Size: 0
> ctime: 0x3a258e82 -- Wed Nov 29 16:17:22 2000
> atime: 0x3a258e82 -- Wed Nov 29 16:17:22 2000
> mtime: 0x3a258e82 -- Wed Nov 29 16:17:22 2000
> BLOCKS:
> 47512 47513 47514 47515 47516 47517 47518 47519 47520 ... 48723 48724
> TOTAL: 983
> ^^^ these are ext2fs sized blocks, not necessarily kB
>
> If what debugfs says doesn't match du, then it is du/libc/stat that is
> broken. If debugfs says the file actually has 6000000 bytes of data,
> then it is the filesystem that is broken.
I just did what suggested, and it seems that DU reports correct values,
I have attached 'sript' log of the above example on my filesystem.
Here are some highlights:
[adam@pepsi /tmp]$ ls -lis holed.file
3085069 5872 -rw-rw-r-- 1 adam adam 6000000 Nov 30 09:11 holed.file
Block size = 4096, fragment size = 4096
Links: 1 Blockcount: 11744
TOTAL: 1468
so it seems DU reports correct values as :
1966/2 =983
11744/2=5872
and
4096*1468=6012928
1024*983 =1006592
--
Adam
http://www.eax.com The Supreme Headquarters of the 32 bit registers
Script started on Thu Nov 30 09:11:40 2000
[adam@pepsi /tmp]$ dd if=/dev/zero of=holed.file bs=1000 seek=5000 count=1000
1000+0 records in
1000+0 records out
[adam@pepsi /tmp]$ ls -lis holed.file
3085069 5872 -rw-rw-r-- 1 adam adam 6000000 Nov 30 09:11 holed.file
[adam@pepsi /tmp]$ du -sh holed.file
5.7M holed.file
[adam@pepsi /tmp]$ df .
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/hde3 25474728 16986488 7173180 70% /
[adam@pepsi /tmp]$ su
Password:
root@pepsi /tmp]# /usr/sbin/debugf /dev/hde3
debugfs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
debugfs: stats
Filesystem is read-only
Volume name = (none)
Last mounted directory = (none)
Filesystem UUID = dacab8b6-cbae-11d3-867d-00200084fdb4
Filesystem features:(none)
Last mount time = Thu Nov 23 23:18:05 2000
Last write time = Thu Nov 30 09:12:56 2000
Mount counts = 1 (maximal = 20)
Filesystem OS type = Linux
Superblock size = 1024
Block size = 4096, fragment size = 4096
Inode size = 128
6579936 inodes, 6014036 free
6575310 blocks, 2122060 free, 328765 reserved, first block = 0
32768 blocks per group
32768 fragments per group
32736 inodes per group
201 groups (2 descriptors blocks)
Group 0: block bitmap at 3, inode bitmap at 4, inode table at 5
0 free blocks, 30118 free inodes, 106 used directories
[....]
Group 200: block bitmap at 6553603, inode bitmap at 6553604, inode table at 6553605
13151 free blocks, 29887 free inodes, 334 used directories
debugfs: stat <3085069>
Inode: 3085069 Type: regular Mode: 0664 Flags: 0x0 Generation: 6660658
User: 500 Group: 500 Size: 6000000
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 11744
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x3a266023 -- Thu Nov 30 09:11:47 2000
atime: 0x3a243c51 -- Tue Nov 28 18:14:25 2000
mtime: 0x3a266023 -- Thu Nov 30 09:11:47 2000
BLOCKS:
213226 [....] 167493
TOTAL: 1468
debugfs: quit
adam@pepsi: /tmp[root@pepsi /tmp]# exit
exit
adam@pepsi: /tmp[adam@pepsi /tmp]$ exit
exit
Script done on Thu Nov 30 09:16:27 2000