鸟哥Linux私房菜基础学习篇 第二部分 Linux 文件、目录与磁盘格式_Linux文件权限与 目录配置_Linux磁盘与文件系统管理...

1.磁柱是分割槽的最小单元,分割槽的第一扇区记录了磁柱的起始终止位置,包括了MBR和分割表。

2.为什么要格式化磁盘呢,因为每种操作系统文件配置的属性权限不相同,为了存储这些文件所需的数据,需要将分割槽进行格式化,以成为操作系统能力利用的文件系统格式,文件权限属性放在inode和数据内容放在date block,还有一个superblock用来记录文件系统整体信息,包括inode,dateblock总量,使用量,剩余量等。下面是linux的文件系统的存储格式,可以一口气读出多个block,甚至并发读取,很像GFS的nameNode和block模式。索引读取这种格式是比较少使用磁盘整理功能的。

105116_TvKg_1052786.png

下面是FAT文件系统格式,有点像链表,如果存的时候block分撒的厉害,磁盘很难转一圈就读出所有数据,可能会多转几圈读取,所以性能相对ext2可能较弱些。这就是windows有时候需要碎片整理的操作,目的就是把这些过于离散的block聚合在一起以改善读取的效率。

105216_hEHs_1052786.png

3.而实际的ext2像下表格式所示,实际上又会被分割成多个block群,每个小的block实现自己的索引功能。这样当然是避免inode和block过大不利于管理和效率问题考虑。这种设计不但可以支持多系统引导,因为启动区和MBR是分开的,就不用重新格式化整个分区了。

111618_ScVP_1052786.png

4.block的特点是只能存放一个文件的数据,用不了的就空着,file放不下的就多放几个block。所以block的大小是要均衡的,如果文件比bLock小,且数量较多,那么很容易造成使用的浪费。如果过小,inode记录的信息又过多,也会造成索引效率的下降,所以要考虑您将使用的文件大小来规划block的大小。

5.inode记录了文件的权限属性内容和隐藏属性外还有block真正内容的指向信息。inode大小固定128bytes,一个文件占用一个inode,能创建的文件数与inode数量有关。如果文件很大,那inode就用第二指向和第三指向来寻找这些block。如果按1k的block来计算,三间接的可以到16G的文件。

6.“每笔 block 号码的记录会花去 4bytes,因此 1K 的大小能够记录 256 笔记录,因此一个间接可以记录的文件大小如”,我的理解是它只是举了个例子,其实完全可以用超过1k的容量去存放更多的block号码,这个就是由相关的架构来决定了。

7.superblock记录了整个文件系统的信息,所以非常重要,甚至是其余blockgroup的备份共享信息。

8.filesystem description中记录了superblock,bitmap,inode bitmap。

9.bitmap中记录block的使用映射情况对照,就是那些用了,那些没用。iode bitmap记录的是inode的使用情况对照表。只不过看了看很多存储都和block有关系。

10.文件系统详细信息可以用dumpe2fs -h来查看,大部分和block相关,使用时候可能block满了,inode可能还有剩余信息。

11.目录和文件是怎么在ext2中是如何记录数据的呢?下面是目录存储后有一个inode和占用的block,block是记录了这个目录下的文件名与文件占用的inode号码数据。ll展示时候一般都是1024的倍数,因为block大小一般是1,2,4的倍数。

105139_ZDME_1052786.png这样理解,虽然目录是存放档名和档对应的inode映射信息的,如果1个block放不下,那也可能用多个block来保存。

12.因为文件的inode并不会保存文件的名称,而是由目录来获得文件名称的,所以每次都是通过目录的inode和block找着对应文件的inode号码获得block的值的。就这样通过目录inode信息获得block再获下个目录inode信息知道找到对应的文件inode,再找file的inode的每个步骤中都会判断权限是否满足,满足并找到了block就读取出信息。

13.还说过filesystem大小适中的话比较适合性能好效率的考量。

14.存数据时候,根据inodebitmap,blockbitmap信息存放到对应的空的节点上后,再更新对应的supblock及innodebitmap,blockbitmap,他们都是中间数据metadata。如果中途出现意外在更新metadata时造成inconsistent,要重新check一遍数据,如果大而多那得超级慢了。

15.为了解决这个问题,在filesystem中开辟出一块记录操作日志的地方记录写文件的步骤,完毕后去完成这个日志,这样就能检查出问题的日志而不是整个filesystem了,我想这个filesystem的大小比inodebitmap等要小很多,要么速度也不会很快。ext3的提出是ext2的升级,日志系统有了一个良好的升级。

16.由于修改时是在内存中进行的,完成后才写到磁盘上,可以将常用的文件放到主存区的缓冲区,sysnc后会将dirty数据回写到磁盘中,如果掉电,有时重启会进行长时间的磁盘校验,甚至文件系统损毁。

17.并不是你有文件系统就能使用,你必须要挂载到目录树上的某目录,目录就是文件系统的入口。

18.我们可以查看不同文件名的inode号是否相同确实是否为同个文件。这就是/ /. /..是相同文件的体现。

19.每个磁盘分区的文件系统格式可能不同,我们挂载到目录树上后,访问某分区的文件并没有指定具体的文件系统格式,那VFS会主动帮我们做好读取的准备动作。

20.df -h / 可以查看某目录的容量了。如果根节点剩余的空间比较少了就要注意了。

21. du -sh /etc,du -sh /war/* 。要说经常用的可能就是,某目录某文件了,因为ll列出的要是目录只有目录的结构信息的容量,看文件目录或文件的总容量还是的上面的命令。还有一个常被使用的功能,就是列出所有目录那个次目录占用的空间较大可以找出来。

22.hardlink只是目录下新增一笔档名,然后连接到某个inode号码的关联记录而已。不同目录的inode对应的不同block档名不同,即使删除某个硬连接档名还是会通过另外一个档名找到和修改实际的文件的。

092955_3FoL_1052786.png一般hardlink占用的数据很小,所以新建一个连接一般不会占用掉磁盘空间的。(虽然有时可能正好block满了)。目录现在是不能建立硬连接的,因为目录数据如果建立硬连接的话每次更新都会同步,这个工程太比较繁琐。硬连接有个特点就是只要一个硬连接存在,真实的数据就不会被清除。

23.softlink因为会创建一个新的文件连接,相当于new一个指针连接,所以会占用一定的空间。

140557_X9Nw_1052786.png

24.hardlink只要有一个存在,实际的文档的就不会被删除,还是依然可以打开的。由于softlink和原始档是关联的,所以对softlink的修改实际上是对原始档的修改。

25.创建目录时会增加两个link的数量,一个是. 还有一个是 ..,所以说目录中可以使用它们的连接指向进行跳转。

26.磁盘分割,格式化,校验,挂载。这些是加入一个新磁盘需要考虑的问题,具体的配置信息是需要按用途经验的管理的。

a.其中fdisk -l还是比较常用的,可以列出磁盘的partation信息。b.df 后然后用fdisk /dev/sda2查看时可能会提示管理磁柱的范围有限。里面有一些操作信息,只有w后才会生效。

转载于:https://my.oschina.net/u/1052786/blog/881956

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值