1.磁柱是分割槽的最小单元,分割槽的第一扇区记录了磁柱的起始终止位置,包括了MBR和分割表。node
2.为何要格式化磁盘呢,由于每种操做系统文件配置的属性权限不相同,为了存储这些文件所需的数据,须要将分割槽进行格式化,以成为操做系统能力利用的文件系统格式,文件权限属性放在inode和数据内容放在date block,还有一个superblock用来记录文件系统总体信息,包括inode,dateblock总量,使用量,剩余量等。下面是linux的文件系统的存储格式,能够一口气读出多个block,甚至并发读取,很像GFS的nameNode和block模式。索引读取这种格式是比较少使用磁盘整理功能的。linux
下面是FAT文件系统格式,有点像链表,若是存的时候block分撒的厉害,磁盘很难转一圈就读出全部数据,可能会多转几圈读取,因此性能相对ext2可能较弱些。这就是windows有时候须要碎片整理的操做,目的就是把这些过于离散的block聚合在一块儿以改善读取的效率。windows
3.而实际的ext2像下表格式所示,实际上又会被分割成多个block群,每一个小的block实现本身的索引功能。这样固然是避免inode和block过大不利于管理和效率问题考虑。这种设计不但能够支持多系统引导,由于启动区和MBR是分开的,就不用从新格式化整个分区了。架构
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的倍数。
这样理解,虽然目录是存放档名和档对应的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档名不一样,即便删除某个硬链接档名仍是会经过另一个档名找到和修改实际的文件的。
通常hardlink占用的数据很小,因此新建一个链接通常不会占用掉磁盘空间的。(虽然有时可能正好block满了)。目录如今是不能创建硬链接的,由于目录数据若是创建硬链接的话每次更新都会同步,这个工程太比较繁琐。硬链接有个特色就是只要一个硬链接存在,真实的数据就不会被清除。
23.softlink由于会建立一个新的文件链接,至关于new一个指针链接,因此会占用必定的空间。
24.hardlink只要有一个存在,实际的文档的就不会被删除,仍是依然能够打开的。因为softlink和原始档是关联的,因此对softlink的修改其实是对原始档的修改。
25.建立目录时会增长两个link的数量,一个是. 还有一个是 ..,因此说目录中可使用它们的链接指向进行跳转。
26.磁盘分割,格式化,校验,挂载。这些是加入一个新磁盘须要考虑的问题,具体的配置信息是须要按用途经验的管理的。
a.其中fdisk -l仍是比较经常使用的,能够列出磁盘的partation信息。b.df 后而后用fdisk /dev/sda2查看时可能会提示管理磁柱的范围有限。里面有一些操做信息,只有w后才会生效。