建立空文件和符号链接时,不分配block。自己动手实践观察数据,边玩边学习。
实验主机:VMware虚拟机里装的Ubuntu12.04系统。
Linux系统里,可以通过dumpe2fs命令查询一个文件系统里剩余的block和inode,这两个数据分别记录在Free blocks和Free inodes字段里。
通过dumpe2fs命令查询获得的数据量非常大,不容易在屏幕上找到这两个字段,所以就用grep命令把这两行找出来显示,其他的数据不需要显示。
还有,dumpe2fs命令显示的是挂载时的数据,因此需要先卸载后重新挂载刷新dumpe2fs获得的数据。
好了,现在开始我们的实验。
一,列出机子内的文件系统:
root@virtual-machine:~# df -T
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/sda1 ext4 18262340 2653960 14680688 16% /
udev devtmpfs 245940 4 245936 1% /dev
tmpfs tmpfs 101540 820 100720 1% /run
none tmpfs 5120 0 5120 0% /run/lock
none tmpfs 253848 144 253704 1% /run/shm
/dev/sdb5 ext4 41282880 180096 39005736 1% /work
“/work”和“/”不在同一个分区,可以对“/work”卸载后重新挂载。
二,在root家目录建立脚本test.sh方便观察数据,内容如下:
#! /bin/sh
umount /dev/sdb5
mount /dev/sdb5 /work
dumpe2fs /dev/sdb5 | grep "Free";
三,观察开始测试前的数据:
root@virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275698
Free inodes: 2621430
四,建立空文件夹分配:1个inode和1个block
root@virtual-machine:~# mkdir /work/testdir
root@virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275697
Free inodes: 2621429
五,建立空文件分配:1个inode,不分配block
root@virtual-machine:~# touch /work/testfile
root@virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275697
Free inodes: 2621428
六,用vi在上步建立的空文件中增加一个字符后:分配1个block存文件
root@virtual-machine:~# vi /work/testfile
root@virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275696
Free inodes: 2621428
七,建立符号链接:分配1个inode,不分配block
root@virtual-machine:~# ln -s /work/testfile /work/testfile-so
root@virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275696
Free inodes: 2621427
八,建立硬链接:inode和block都没有分配
root@ virtual-machine:~# ln /work/testfile /work/testfile-hd
root@ virtual-machine:~# ./test.sh
dumpe2fs 1.42 (29-Nov-2011)
Free blocks: 10275696
Free inodes: 2621427