硬盘是计算机主要存储媒介之一,由一个或多个铝制或玻璃制的碟片组成,碟片外覆盖有铁磁性材料,硬盘内部由磁道、柱面、扇区、磁头等部件组成。
linux系统中硬件设备相关配置文件存放在/dev/下,根据不同的磁盘接口,在系统中识别的设备名称不一样:IDE硬盘接口--->/dev/hda
SAS、SCSI/STAT硬盘接口--->/dev/sda
高效云盘硬盘接口-->/dev/vda
硬盘的最小存储单位叫做扇区(sector),每个扇区存储512字节。
操作系统一次性读取多个扇区称为一个块(block)
块是文件存取的最小单位
/boot分区的block一般为1kb,而/data/分区或者/分区的block为4kb。查看块大小的方法如下:
dumpe2fs /dev/sdb1|grep “Block size”
tune2fs -l /dev/sdb1|grep “Block size”
stat /boot/ |grep “IO Block”
每个block只能存放一个文件,一个文件可以占用多个block,设置更小的block能节省更多的空间,
常用的block大小为1k、2k、4k。
硬盘block与inode
操作系统进行格式或分区时,操作系统自动将硬盘分成两个区域,一个是数据区域,用于存放文件数据,
另一个是inode table 区,用于存放inode包含的元信息
文件系统将文件内容存储到block中,而将权限与属性存放至inode中
在硬盘分区中,还有一个超级区块(superblock),用于记录整个文件系统的整体信息,包括inode、block的总量、使用大小、剩余大小等信息。详细说明如下:
superblock:用于记录整个文件系统的整体信息,包括inode、block的总量、使用大小、剩余大小等信息
inode:记录文件的属性、权限,同时记录该文件的数据所在block编号
block:存储文件的内容,如果文件操作block的大小,会自动占用多个block。
每个inode与block都有编号,而每个文件都会占用一个inode,inode内记录了文件数据存放的block号码,如果能找到文件的inode,就可以找到该文件所放置数据的block,从而读取该文件内容。、
每个inode节点的大小可以在格式化时指定,默认为128字节或256字节,/boot分区inode默认为128字节,其他分区默认为256字节,查看linux系统inode的方法如下:
dumpe2fs /dev/sdb1|grep “Inode size”
tune2fs -l /dev/sdb1|grep “Inode size”
stat /boot |grep “Inode”
格式化磁盘时,可以指定默认inode、block的大小,-b指定默认block值,-I指定inode值
如:mkfs.ext4 -b 4096 -I 256 /deb/sdb