鸟哥的Linux学习笔记之三

第8章 Linux磁盘与文件系统管理

1 磁盘组成与分区:

磁盘由  圆的盘片、磁头、主轴马达 等组成。

盘片主要有:

扇区(Sector)为最小的物理存储单位,每个扇区512bytes

将扇区组成一个圆,就是柱面(Cylinder),是分区的最小单位。

第一个扇区最重要,里面有MBR(主引导记录)、分区表;MBR占446字节,分区表占64bytes。

分区表最多支持4个分区,成为 主primary分区或者 扩展Extended分区。

扩展分区最多有一个;

逻辑分区是由扩展分区分出来的。

能被格式化的只有主分区和逻辑分区。

各种接口的磁盘在Linux 中的文件名为:

/dev/sd[a-p][1-15]:为SCSI、SATA、USB,Flash等接口设备

/dev/hd[a-p][1-63]:为IDE接口的磁盘。

2. 文件系统特性

分区完后之所以要进行格式化,是因为每种操作系统所设置的文件属性权限不相同,为了存放这些文件所需的数据,因此需要将分区进行进行格式化,以成为操作系统能够利用的文件格式。

Linux正规文件系统为Ext2(Linux second Extended file system,Ext2fs),默认情况下,windows是不识别Linux的Ext2文件系统的。

传统情况下,一个分区只能格式化为一个文件系统,也就是一个文件系统就是一个分区。但是新技术的发展,我们常通道LVM与软磁盘阵列(software raid)可以将一个分区格式化成多个文件系统个,,也能够将多个分区合成一个文件系统。目前我们已经不在说针对分区进行格式化了,而是一个可被挂在的数据为一个文件系统而不是一个分区。

Linux较新的文件系统,除了文件数据外还有很多属性,如rwx与文件属性(owner、group、time parameter等)。文件系统通常会将这两部分数据分别存在不同的块,权限和属性放在inode中,数据放在data block中,另外还有个超级快(super block)会记录整个文件系统的整体信息,包括 inode 与 block的总量、使用量、剩余量等。

super block:记录文件系统整体信息,包括inode与block的总量、使用量、剩余量、文件系统的格式与相关信息等。

inode: 记录文件属性,一个文件占用一个inode,同时记录文件数据所在的block。

block: 记录文件的数据,若文件太大,会占用多个block。

这种访问方法称为: 索引式文件系统(indexed allocation)。

3 Linux的Ext2文件系统(inode)

文件系统一开始就将inode与block规划好了,除非重新格式化或者利用resize2fs等命令更改文件系统大小,否则inode与block固定后就不再变动。

在Ext2格式化时是将分区分为多个块组(block group),每个块组都有独立的inode/block/super block,文件系统最前面有一个启动扇区(boot sector),这个启动扇区用来安装引导装载程序的。

每个块组有6个主要内容组成:

data block:

在Ext2中支持的block大小有1kb、2kb、4kb三种,在格式化时block大小就固定了,且每个block都有编号,以方便inode的记录。block大小决定文件系统能支持的最大单一文件大小如下:

inodetable:

inode记录的文件数据有以下几个:

该文件的访问模式(rwx);

文件所有者与组(owner、group);

文件大小;

文件创建或者状态改变的时间(ctime)

最近一次读取时间(atime);

最近修改时间(mtime);

定义文件特性的标志flag,如SetUID等

该文件真正执行的数据内容;

inode的数量和大小在格式化时就已经确定了,

每个inode大小均为128bytes;

每个文件占有一个inode;

文件系统能够创建的文件数量和inode的数量有关;

系统读取文件时先找到对应的inode,分析inode所记录的权限与用户是否符合,若符合才能开始读取指向的block块。

inode/block与文件大小的关系:

inode结构如下:

inode有12个直接指向、1个间接、一个双间接和一个三间接记录区。

假如1k的block,每条block记录需要4bytes,因此1k的block可以记录256个block记录。

super block:

记录的信息主要有:

block与inode的总量;

未使用与已使用inode、block的数量

block与inode的大小(1k、2k、4k; 128bytes);

文件系统的挂载时间、最近一次写入数据的时间、最近一次检查磁盘(fsck)的时间等文件系统相关信息;

一个validbit数值,表示文件系统是否被挂载。

一般来说,superblock大小为1024bytes。相关信息可以用dumpe2fs命令来查看。

文件系统描述(file system description):

用来描述每个block group的开始与结束block 号码,以及每个区段的superblock inode block 分别位于哪个block之间;

block bitmap:

用来记录那些block用过,那些block未用。

inode bitmap:

记录inode的使用与未使用情况。

dumpe2fs [-bh] 设备文件名

-b:列出保留为坏道的部分

-h:列出superblock的数据,不会列出其他的区段内容。

df  :这个命令调出目前挂载设备

4. Ext2/Ext3文件访问与日志文件系统:

一般来说,将inode table和data block成为数据区域,将其他区域成为metadata(中间区域)。

日志文件系统:

1:预备,当系统写入一个文件中,现在日志记录总记录够格文件准备要写入的信息。

2:实际写入:开始吸入文件权限和数据,开始更新meta data数据

3: 结束:完成数据与meta data更新,在日志记录块当中完成该文件的记录。

这样当断电等,系统只要检查日志记录块就知道那些文件出现问题,针对该问题再进行一致性检查。

5 Linux文件操作:

当系统加载一个文件到内存中,如果该文件没有被改过,则在内存区段的文件数据会设置为clean;如果发生改过,此时内存中的数据会被设置成dirty,系统会不定时的将内存中设置为dirty的数据歇会磁盘,保持磁盘与内存数据的一致性。

可以利用sync命令强制内存中dirty的文件写回到磁盘。

时间: 2024-10-25 08:50:48

鸟哥的Linux学习笔记之三的相关文章

鸟哥的linux学习笔记

linux 帮助指令: man info /usr/share/docman : man + [指令] 查看指令的使用方法."q"退出说明.info: info + [指令] 查看指令的使用方法."q"退出说明.各种软件的帮助文件: /usr/share/doc 简单的文本编辑器 "nano" nano [file name]命令: [Ctrl] + X(某个字母) 查看哪些用户在线: who查看网络联接状态: netstat -a查看后台执行程

马哥Linux学习笔记之三——加密

1.明文传输 ftp,http,smtp,telnet 2.机密性:plaintext-->转换规则-->ciphertext ciphertext-->转换规则-->plaintext 完整性:单项加密算法,提取数据特征码.输入一样,输出必然一样:雪崩效应,输入的微小改变,将会引起结果的巨大改变:无论原始数据是多少,结果大小都是相同的:不可逆,无法根据特征码还原原来的数据. 3.密钥 4.对称加密:有加密算法,有密钥 5.密钥交换算法 IKE(Internet Key Excha

拜师鸟哥之linux学习体会(1)——计算器概论

之前一段时间看了鸟哥的linux私房菜,觉得写得很好,是一本很好的初识linux系统的书籍.接下来的每一天我都会对这本书的每一章的重点知识进行叙述,也算是对学习这本书的一个体会吧.今天讲一下概述部分,鉴于linux是一个操作系统,所以有必要先介绍下计算机方面的知识. 1.    计算机主要由以下几部分组成:输入单元.输出单元.CPU内部的控制单元.算术逻辑单元和主存储器.可以通过下图来描述. 主要介绍下CPU部分,CPU有两种类别:精简指令集RISC和复杂指令集CISC. 2.    本章的一个

拜师鸟哥之linux学习体会(9)——vim程序编辑器

1.    在linux下也是可以编程的哦,采用的是vim程序编辑器,如果你学会使用vim并能看懂一个vim程序,那就很了不得了.在介绍vim之前,我们先学习下他的前身vi.vi具有三种模式:一般模式.编辑模式和指令列命令模式.三者之间是这样转换的: 2.    一般打开一个vim程序就进入一般模式,之后输入o,O,a,A,i,I,r,R中的任何一个就进入编辑模式,之后左下方会出现INSERT或REPLACE.若要回到一般模式,就必须按下Esc来退出编辑模式.在一般模式下,输入:/?中的任意一个

拜师鸟哥之linux学习体会(2)——Linux是什么

鉴于明天是年三十,可能没空开电脑,所以趁着晚上(现在也是第二天了)写下对第二章linux是什么的体会.用过linux的人都知道它是一个操作系统,并且有逐步取代windows的趋势.那么linux到底是什么呢?这就不得不提一个人——托瓦兹(脱袜子),linux的核心原型就是由他在1991年提出来的.具体的历史就不在这里讲了. 1.    linux其实就是一个操作系统最底层的核心及其提供的核心工具.目前市场上有很多版本的linux distribution,都可以从网络上下载得到.例如red ha

拜师鸟哥之linux学习体会(8)——档案与文件系统的压缩与打包

1.    对文件的另一个操作是压缩文件.压缩文件算是linux与windows少有的相似之处.一般常用的压缩文件的扩展名大多是.tar(tar程序打包的数据),.tar.gz(tar程序打包的数据,经过gzip压缩),.tgz,.gz(gzip压缩的文件),.Z(compress程序压缩的文件),.bz2(bzip2压缩的文件).其中gzip与bzip2最常用,而compress已经过时了.另外单纯的tar功能仅仅是打包而已,也就是将很多档案集结为一个档案,事实上他并没有压缩的功能. 2.  

拜师鸟哥之linux学习体会(5)——linux的档案权限与目录设置

上文曾经提到,linux的一个最大的特点是允许多人多任务,但是万一一个用户也能访问另一个用户的文件,不就存在安全隐患吗?鉴于此,为了让各个使用者具有较保密的档案数据,linux对档案的权限管理进行了处理,将档案可存取的身份分为owner/group/others,而三种身份各有read/write/execute三种权限. 1.    owner很好理解,就是档案所有者.这个档案是你生成的,那你就是owner. group从整体的角度,例如你是3班的,这样三班的其他学生就是和你属于3班这个组,他

拜师鸟哥之linux学习体会(3)——主机规划与磁盘分区

反正现在也睡不着,比赛还有一段时间才开始,那就熬夜再写点心得体会吧,主要针对第三章主机规划与磁盘分区. 一开始我也不太清楚,linux的操作不是只需要掌握一些重要的指令就行了吗?但是后来在项目中要移植一个linux系统到arm芯片上,才知道必须要掌握整个linux系统,就像我们需要掌握windows系统后才能对其进行操作. 1.    linux中所有的信息.数据等都是以文件的形式记录下来的,更加通俗的说,每个装置都被当成一个档案来进行访问,例如IDE接口的硬盘文件名是/dev/hda等.数据的

拜师鸟哥之linux学习体会(4)——首次登录与在线求助man page

这一节开始正式介绍一些linux 的相关指令,并介绍下图形界面与文字界面的区别. 1.    linux预设了6个terminal来让登入者登录,切换的方式是ctrl+alt+F1~F6,此外F7则进入图形界面,也就是我们一般安装Ubuntu或Centos会进入的界面.后面会详细介绍这几种terminal,总的可以分成图形界面和非图形界面,若想从非图形界面进入图形界面,可以在终端输入startx指令,即可. 2.    若要注销系统,指令为exit. 3.    在一行中输入指令如果太长的话,可