发布时间:2014-09-05 16:55:48作者:知识屋
13.Linux 的EXT3文件系统
在标准的ext3文件系统中,将每个文件的内容分为两个部分存储,一个是文件的属性,另一个是文件的内容。ext3规划出inode与块来分别存储文件的属性(放在inode中)与文件的内容(放置在块区域中)。当分区被格式化为ext3的文件系统时,它一定会有inode表与块区域这两个区域。
inode是记录“该文件的相关属性,以及文件内容放置在哪一个块内”的信息。块是记录“文件内容数据”的区域。indoe除了记录文件的属性外,同时还必须具有指针(pointer)的功能,即指向文件内容放置的块之中,让操作系统可以正确获取文件的内容。
inode记录的信息主要有:
该文件的拥有者与用户组(owner/group)
该文件的访问模式(rwx)
该文件的类型(type)
该文件建立或状态改变的时间(ctime)、最近一次的读取时间(atime)、最近修改的时间(mtime)
该文件的大小
定义文件属性的标志(flag),如SetUID...
该文件真正内容的指针(pointer)
一个inode的大小为128字节
在linux的ext3文件系统建立一个目录时,ext3会给该目录分配一个inode与至少一个块。inode记录该目录的相关属性,并指向分配到的哪个块。块记录在这个目录下的相关文件(或目录)的关联性
在linux的ext3文件系统建立普通文件时,ext3会给该文件分配至少一个inode与相对于该文件大小的块数量。假设一个块为4kb,要建立一个100kb的文件,linux将分配一个inode与25个块来存储该文件
inode本身并不记录文件名,而是记录文件的相关属性,文件名记录在目录所属的块区域,文件的相关连接回记录在目录的块数据区域
要读取一个文件的内容时,linux会先由根目录/获取该文件的上层目录所在的inode,再由该目录所记录的文件关联性(在该目录所属的块区域)获取该文件的inode,最后通过inode内提供的块指针,来获取最终的文件内容
操作系统根目录/的相关数据可获取/etc目录所在的inode,并读取/etc这个目录的所有相关属性
根据/etc的inode的数据,可以获取/etc目录下所有文件的关联数据是放置在哪一个块中,并前往该块读取文件的关联性内容
由上一步骤的块中,可以知道crontab文件的inode所在地,并前往该inode
由上一步骤的inode中,可以获取crontab文件的所有属性,并且前往由inode所指向的块区域,顺利获取crontab的文件内容
块与inodes在一开始格式化时就已经固定了
一个分区能够容纳的文件数与inode有关
一般来说,每4kb的硬盘空间分配一个inode
一个inode的大小为128字节
块为固定大小,支持1024/2048/4096字节等
块越大,损耗的硬盘空间也越多
对于单一文件,如块大小为1024,最大为16G,若为4096,则为2TB
对于整个分区,若块大小为1024,最大为2TB,若为4096,则为32TB
14.当建立一个ext3的文件系统时,它拥有超级块(superblock)、组描述(group description)、块位图(block bitmap)、inode位图(inode bitmap)、inode表(inode table)、数据块(data blocks)等区域
SuperBlock(超级块):是记录整个文件系统相关信息的地方,没有它就没有这个文件系统,主要信息有:
-块与inode的总量
-未使用与已使用的inode/块数量
-一个块与一个inode的大小
-文件系统的载入时间、最近一次写入数据的时间、最近一次检验磁盘(fsck)的时间等文件系统的相关信息
-有效位(valid bit)数值,若此文件系统已被载入,则有效位为0,未被载入,则为1
Group Description(组描述):记录此块由何处开始记录
Block bitmap(块位图):此处记录块是否使用
Inode bitmap(inode位图):此处记录inode是否使用
Inode table(inode表):为每个inode的数据存放区
Data Blocks(数据块):为每个块的数据存放区
#dumpe2fs /dev/hda1 获取文件系统内的这个信息
15.ext3的数据访问是通过日志与元数据以及数据存放区记录的
linux支持的文件系统有哪些:
#ls -l /lib/modules/`uname -r`/kernel/fs
系统当前已启用的文件系统有:
#cat /proc/filesystems
16.磁盘与目录的容量
#df -ahTi 列出所有的文件系统,人性化,该分区的文件系统名称,inode数量
#du -ahs
17.硬连接只是在某个目录下的块多写入一个关联数据,并不会用掉inode与磁盘空间
作者“allenhu0320”
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能