设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
Linux 发行版讨论区 —— LinuxSir.cn
›
Gentoo Linux
›
EXT4的磁盘空间占用是怎么计算的?[基本解决,又是du的 ...
返回列表
查看:
1148
|
回复:
4
EXT4的磁盘空间占用是怎么计算的?[基本解决,又是du的问题..]
[复制链接]
Celinda
Celinda
当前离线
积分
315
IP卡
狗仔卡
发表于 2009-12-17 23:27:44
|
显示全部楼层
|
阅读模式
我真晕菜了..
本来机器上的有一个Media文件夹,du -sh 查看,占用空间97G,在一个EXT4格式的分区。
晚上把这个文件夹临时copy到移动硬盘,移动硬盘也格式化成EXT4,拷完了发现他在移动硬盘上只要占用95G,我以为漏拷了东西,查看两边文件数量,完全一致,用rsync再同步一次,rsync什么都没复制过去,检查下就退出了。
好了,就算他全拷过去了吧。
然后过一个小时把这些数据从移动硬盘copy回来,期间对移动硬盘没有任何操作..
copy回来后du -sh,占了115G,文件数量一致,rsync检查也没问题!
谁遇到这种问题了? ,今天太晚了,明天有时间给所有文件作个hash,我就不信邪了,拷两遍他还能附送个电影?
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
Celinda
Celinda
当前离线
积分
315
IP卡
狗仔卡
楼主
|
发表于 2009-12-17 23:32:07
|
显示全部楼层
忘说了,copy到移动硬盘上后就把原文件夹删了,还重启了机器,
现在重启几次了,他就是占用115G,气死我了,本来空间就不够...
lorelei ~ # rsync -av --delete /mnt/iso/Media /data/data/
sending incremental file list
sent 70774 bytes received 227 bytes 142002.00 bytes/sec
total size is 123125005248 speedup is 1734130.58
lorelei ~ # du -sh /data/data/Media/
115G /data/data/Media/
lorelei ~ # du -sh /mnt/iso/Media/
95G /mnt/iso/Media/
lorelei ~ # dumpe2fs /dev/sda4 | head -n 50
dumpe2fs 1.41.9 (22-Aug-2009)
Filesystem volume name: <none>
Last mounted on: /data
Filesystem UUID: 3af31210-1352-4675-abbc-d619c9abd2d7
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 12697600
Block count: 50777448
Reserved block count: 2538872
Free blocks: 15827686
Free inodes: 12673812
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1011
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Tue Nov 24 18:12:48 2009
Last mount time: Thu Dec 17 22:26:13 2009
Last write time: Thu Dec 17 22:26:13 2009
Mount count: 108
Maximum mount count: 38
Last checked: Tue Nov 24 18:12:48 2009
Check interval: 15552000 (6 months)
Next check after: Sun May 23 18:12:48 2010
Lifetime writes: 453 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 3d83434c-477f-48d8-9f81-86d32c0da7e4
Journal backup: inode blocks
Journal size: 128M
Group 0: (Blocks 0-32767) [ITABLE_ZEROED]
Checksum 0x971f, unused inodes 0
Primary superblock at 0, Group descriptors at 1-13
lorelei ~ # dumpe2fs /dev/sdb1 | head -n 50
dumpe2fs 1.41.9 (22-Aug-2009)
Filesystem volume name: <none>
Last mounted on: /mnt/iso
Filesystem UUID: 20909507-8cf9-4d9b-bd7b-646baee43a7e
Filesystem magic number: 0xEF53
Filesystem revision #: 1 (dynamic)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags: signed_directory_hash
Default mount options: (none)
Filesystem state: clean
Errors behavior: Continue
Filesystem OS type: Linux
Inode count: 7331840
Block count: 29304560
Reserved block count: 1465228
Free blocks: 3904780
Free inodes: 7329502
First block: 0
Block size: 4096
Fragment size: 4096
Reserved GDT blocks: 1017
Blocks per group: 32768
Fragments per group: 32768
Inodes per group: 8192
Inode blocks per group: 512
Flex block group size: 16
Filesystem created: Thu Dec 17 17:16:51 2009
Last mount time: Thu Dec 17 23:34:14 2009
Last write time: Thu Dec 17 23:34:14 2009
Mount count: 4
Maximum mount count: 38
Last checked: Thu Dec 17 17:16:51 2009
Check interval: 15552000 (6 months)
Next check after: Tue Jun 15 17:16:51 2010
Lifetime writes: 101 GB
Reserved blocks uid: 0 (user root)
Reserved blocks gid: 0 (group root)
First inode: 11
Inode size: 256
Required extra isize: 28
Desired extra isize: 28
Journal inode: 8
Default directory hash: half_md4
Directory Hash Seed: 8f665176-66a6-4f93-8628-76d2ae361e56
Journal backup: inode blocks
Journal size: 128M
Group 0: (Blocks 0-32767) [ITABLE_ZEROED]
Checksum 0x9646, unused inodes 8180
Primary superblock at 0, Group descriptors at 1-7
lorelei ~ #
复制代码
回复
支持
反对
使用道具
举报
显身卡
lifc
lifc
当前离线
积分
490
IP卡
狗仔卡
发表于 2009-12-17 23:34:16
|
显示全部楼层
du -bsh看一下,du全称disk usage,并不一定等于文件实际尺寸,实际占用空间受块尺寸、文件空洞数量、是否压缩等很多因素影响
回复
支持
反对
使用道具
举报
显身卡
Celinda
Celinda
当前离线
积分
315
IP卡
狗仔卡
楼主
|
发表于 2009-12-17 23:51:16
|
显示全部楼层
lorelei ~ # du -bsh /mnt/iso/Media/
115G /mnt/iso/Media/
复制代码
楼上厉害 - -
不过这下我更不明白了,显然是加了-b之后的错了,我移动硬盘没这么大,标称120G的硬盘,格式化后只有111G..
他是怎样统计的,才造成了这么大的误差呢..?
回复
支持
反对
使用道具
举报
显身卡
lifc
lifc
当前离线
积分
490
IP卡
狗仔卡
发表于 2009-12-18 08:57:26
|
显示全部楼层
这是gnu coreutils du的一个老问题了。首先在一个目录下执行du它会计算目录结构所占据空间("."文件)。另外不加-b选项它会用sb.st_blocks(512块数)*512来当成一个文件的实际尺寸,加-b选项就用sb.st_size(实际尺寸),显然前者在多数情况下会偏大,少数情况(例如文件空洞,所谓的稀疏文件或者压缩)会偏小。
如果想准确计算字节数,可以用du -bshc *这种写法,最后给出的统计是全部文件stat64.st_size字段的总和,偏差应该不会太大。
回复
支持
反对
使用道具
举报
显身卡
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
浏览过的版块
Debian Linux
Redhat/Fedora/CentOS Linux
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表