您的位置:首页 > 运维架构 > Linux

linux系统管理学习笔记之六---linux文件系统

2010-01-04 09:54 841 查看
linux的文件系统

一、文件系统概述

(一)硬盘的组成:硬盘可由一个或多个盘片组成。每个盘片又有多个磁道,一圈为一个磁道,磁道的多少由柱面决定。由圆心向外划直线,又把磁道划了很多个扇区。扇区是最小的存储单位,大小为512字节。盘片*柱面*扇区*512字节=硬盘容量
(二)MBR:位于0磁道,0扇区,共512字节。
其中446字节用于存放bootloader。常用的bootloader程序有grub,lilo等。
64字节用于存放分区,其中16字节存放一个分区,所以硬盘只能划分四个主分区,要想划分更多的分区,就需要用到扩展分区。
2字节标注MBR是否有效。
(三)分区的文件系统格式:每个分区只能为一个格式。windows的文件系统格式为:fat32,ntfs。 linux为的ext2,ext3
(四)逻辑块:硬盘的物理最小存储大小为扇区,但文件系统的最小存储单位是逻辑块。可以把一个扇区大小指定为一个块,也可以指定扇区*n为块的大小,即逻辑块是扇区的整数倍。一个逻辑块只能存一个文件。建议当文件大小比较大时,块划分大一点。文件比较小时块划分小一点。

二、linux的 ext2/ext3文件系统

1、ext2:由inode和块组成。inode存储文件的属性及文件所在块的索引信息,块存储文件的内容。要将分区格式化为ext2,需要指定inode和块的大小。

2、ext2文件系统中目录的创建:ext2文件系统创建目录时,会分给该目录一个inode和至少一个块(当目录的关联文件较多一个块放不下时,就分多个块)。inode存储目录的属性,并指引分配给目录的那个块;块存储目录的关联文件,即目录所属的文件(本目录下的文件的inode)或下级目录的关联性数据(下级目录的inode)。

3、ext2文件系统中文件的创建:ext2创建文件时,会分配给该文件至少一个inode和相对于该文件大小的块数量。

4、ext2文件系统中文件的查找过程:从inode表中找到文件所在目录的inode--->通过目录inode的指引,找到目录的块(此块中存
有目录中所有文件及下级目录的关联性数据)--->通过目录块中的数据,找到文件的inode--->通过文件的inode中找文件的块所在
地,然后从块从读出文件内容。即找到文件。

目录的最大功能就是提供下级目录或言语件的关联性,即下级目录或文件的inode
5、ext2文件系统的分区:ext2文件系统,每个分区都有一个超级块,根据分区的大小,分为一个或多个块组。即分区为一个超级块再加一个和多个块组组成。

(1)超级块:记录整个分区文件块与inode的总量;未使用块和inode的数量;单个块和inode的大小;文件系统载入时间,修改时间等。

(2)块组:每个块组包括:组描述、块位图(记录块的使用情况)、inode位图(记录inode的使用情况),inode表(inode的存放区),数据块:块的数据存放区。

6、硬盘分区方式及寻找文件过程:
(1)硬盘划分为MBR(存放硬盘分区信息和bootloader)和分区
(2)分区划分为一个超级块(存放整个分区里块和inode的大小,数量,修改时间等信息,不是指inode或块的存放地点)和一个或多个块组(块组中主要存有inode表和数据块(实际存放数据的地方))。
不同分区indoe号可以重复。同一分区inode不可重复。
(3)块组划分为 inode区(元数据存储区)和数据存储块区,元数据存储了块位图、inode位图,和Inode表。数据存储区划分为很多个逻辑块,为扇区大小的整数倍。
(4)查找文件的方式:先从inode区的inode表中查找文件所在目录的inode,然后找到目录的数据块,再从目录数据块中找到文件的inode号,再通过inode号找到文件的数据块。
(5)新建一个文件或目录:先在inode位图中扫描,找到一个未用的inode号给新的文件或目录,然后再把在块位图中扫描,找到没有用过的块分配给新的文件或目录,并把此inode号与此块作关联,存放于inode表中。
(6)删除一个文件或目录:找到要删除的文件或目录的inode,从inode表中删除此项关联信息,并把此inode和相关数据块在inode位图和块位图中标记为未用。其实数据本身并未从数据块中删除,下次分配给新的数据块时,会覆盖。

三、要点及示例:
1、块与inodes在一开始格式化时就已设定好固定的数目。
2、ext2支持块大为 1024/2048/4096字节,都是扇区大小512的倍数。
3、inode的大小为128字节
4、分区能容纳的文件数与inode有关。
5、一般每4kb的硬盘空间分配一个inode.

例:如果一个块大小为4KB,一个文件占用两个块,大小为8KB。分区容量为1G。则inode的数量为:1024M*1024k/8k=131072(1G先换成多少K,然后再除以文件的大小,可以计算出可存放文件数)
131072个文件就需要131072个inode. 而一个inode的大小为128字节。 所以 131072*128=16777216b=16384kb。所以如果1G的分区在还没有存任何数据前就少了16M的内容。

五、常用文件系统命令

1、dumpe2fs /dev/hda1 //即可查看所在分区的信息

下接磁盘管理,与文件系统是相关联的。

本文出自 “网行天下” 博客,请务必保留此出处http://kuangkuang.blog.51cto.com/838/255905
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: