Linux磁盘管理(block与inode)

1  硬盘block与inode详解

1.1  Sector(扇区)与Block(块)

1)  硬盘的最小存储单位:sector(扇区),每个扇区储存512字节;操作系统会一次性连续读取多个扇区,即一次性读取多个扇区称为一个block(块)

2)  文件存取的最小单位:block(块),由多个扇区组成;block的大小常见的有1KB、2KB、4KB,在linux中常见设置为4KB,即连续8个扇区组成一个block;/boot分区的block一般为1KB

3)  查看block的方法:

ext3与ext4格式化文件系统:

       dumpe2fs /dev/sda1 | grep "Block size"

       tune2fs -l /dev/sda1 | grep "Block size"

       stat /boot/ | grep "IO Block"

   xfs格式化文件系统:

       xfs_info /dev/sda1

 

stat /boot/ | grep "IO Block"

4)  每个block只能存放一个文件,如果文件的大小比block大,会申请更多的block;如果文件的大小比block小,仍会占用一个block,剩余的空间会浪费

例:有1万个文件,大小为10B,block为4KB

理论上占用空间大小:10000 * 10B=97.656MB

实际上占用空间大小:10000 * 4KB = 40GB

1.2  硬盘block与inode详解

1.2.1   superblock、inode与block

操作系统对于文件数据的存放包括两个部分:1文件内容、2权限及文件属性

在硬盘分区中,还有一个超级区块(superblock)

1)  superblock:记录文件系统的整体信息,包括inode与block的总量、使用大小、剩余大小以及文件系统的格式与相关信息等

2)  inode:记录文件的属性、权限,同时会记录该文件的数据所在的block编号

3)  block:存储文件的内容

1.2.2   inode与block

每个inode与block都有编号,而每个文件都会占用一个inode,inode内则有文件数据放置的block号码;能够找到文件的inode就可以找到该文件所放置数据的block号码,从而读取文件内容

1)在格式化时可以指定默认的inode与block的大小;-b指定默认block值,-I指定默认inode值,例:mkfs.ext4 –b 4096 –I 256 /dev/sdb

2)查看inode的方法:

ext3与ext4格式化文件系统:

dumpe2fs /dev/sda1 | grep "Inode size"

tune2fs -l /dev/sda1 | grep "Inode size"

 

   xfs格式化文件系统:

 

2  硬链接

硬链接:Linux系统多个文件名可以指向同一个inode,这意味着可以用不同的文件名访问同样的内容,对文件内容进行修改会影响到所有文件名;但删除一个文件名不会影响另一个文件名的访问。

硬链接不能跨分区链接,只能对文件生效,对目录无效,链接后的文件不占用系统多余的空间

命令:ln test1.txt test2.txt         #test1.txt为源文件,test2为目标文件

 

3  软链接(符号链接)

软链接文件的Inode号不同,可以跨分区链接,支持目录同时也支持文件的链接;不管是删除源文件还是重启系统,该软链接还存在,但文件内容会丢失,一旦新建源同名文件,软链接文件恢复正常

命令:ln –s test1.txt test2.txt

 

猜你喜欢

转载自www.cnblogs.com/longBlogs/p/9577700.html