linux文件系统inode及相关学习

文件系统中最大可容纳的文件个数是有限的,那受何限制呢?
linux文件系统分为inode区和block区,其中inode用来存储文件的属性信息,
block区用来存储文件的实际内容。
所以实际影响文件系统中inode个数的因素有两个:
一个是文件系统inode的数量;
一个是block区的大小。
sh-3.2# touch /tmp/ooxx
sh-3.2# ls -lh /tmp/ooxx
-rw-r--r-- 1 root root 0 Dec 17 02:33 /tmp/ooxx
sh-3.2# du -h /tmp/ooxx
0       /tmp/ooxx
sh-3.2#

sh-3.2# echo 0 > /tmp/ooxx
sh-3.2# ls -lh /tmp/ooxx
-rw-r--r-- 1 root root 2 Dec 17 02:34 /tmp/ooxx
sh-3.2# du -h /tmp/ooxx
4.0K    /tmp/ooxx
sh-3.2#

通过上述实验,发现文件内容可以为空。
如果文件内容为空的话,那么这个文件也不会去占用block空间。
如果实际文件内容不为空,那么实际文件内容大小和该文件所占用的block大小是不同的概念。
这从ls命令和du命令的执行结果就可以看到,
虽然文件内容只有两个两个字节长度,但是仍然要占用4K字节的block空间。
这说明一个block的大小是4K?

如何确认block大小?
stat命令可以用来查看block大小。
sh-3.2# stat -f /mnt/usb/sda1/
  File: "/mnt/usb/sda1/"
    ID: 80100000000 Namelen: 1530    Type: msdos
Block size: 4096
Blocks: Total: 975342     Free: 344921     Available: 344921
Inodes: Total: 0          Free: 0
sh-3.2#

另一种方法是在已知分区大小的提前下,使用df命令确认block的个数,
也可以确认block大小。
sh-3.2# df /mnt/usb/sda1/
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              3901368   2521680   1379688  65% /tmp/mnt/usb/sda1
sh-3.2#

默认情况下使用df命令用来显示block的使用状况。
如果想要查看inode的使用状况,可以使用df命令并制定-i选项。
sh-3.2# df -i /mnt/usb/sda1/
Filesystem              Inodes      Used Available Use% Mounted on
/dev/sda1                    0         0         0   0% /tmp/mnt/usb/sda1
sh-3.2#
sh-3.2# df /mnt/usb/sda1/
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              3901368   2521684   1379684  65% /tmp/mnt/usb/sda1
sh-3.2#
sh-3.2# df -B 4096 /mnt/usb/sda1/
Filesystem           4K-blocks      Used Available Use% Mounted on
/dev/sda1               975342    630421    344921  65% /tmp/mnt/usb/sda1
sh-3.2#

为什么/mnt/usb/sda1的inode个数为0?
这是因为它不是ext2类型文件系统吗?

上面讲了一个文件系统实际可以存储的文件数会受到inode数量以及block数量影响的。
所以会有如下两种情况:
1. 文件系统inode已经用完,但是block仍然有大量剩余,这通常是因为文件大小小的缘故;
2. 文件系统block已经用完,但是inode还有大量剩余,这通常是因为文件大小太大的缘故。
针对这两种情况都会造成文件系统空间浪费的现象。
所以如果用户有特别的需求,都可以重新配置自己的文件系统。
linux下有mkfs命令,通过指定合适的参数来配置自己需要的文件系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值