红联Linux门户
Linux帮助

linux文件系统理论概括

发布时间:2015-03-13 19:45:40来源:红联作者:yuyajun
第一次写这种总结贴,增强自己的记忆吧,写的不好,多多指教、包涵!!

众所周知,linux设备都是以文件类型存在的,因此对linux分区,不可能像windows那样直观的展示出c,d,e…。那么linux是如何让物理硬盘变成可以使用的存储设备的呢?假设PC只有一个IDE接口,其可以连接两个IDE设备,分别是主设备和从设备,在linux中对应的文件名为/dev/hda和/dev/hdb。假设一块新来的硬盘被当作主设备,那么会被linux命名为/dev/had,这就代表着这一整块磁盘。
很显然,你不想直接用一整块磁盘作为一个分区,就像你的windows,你不愿意只有C盘吧。那么linux是如何分区的呢?我们知道每块磁盘以扇区为基本单位,大小为512bytes,其中磁盘的第一个扇区至关重要,它记录了这个磁盘的重要信息,包括:MBR(446bytes)用于指引你的程序(如指向grub等引导加载程序);分区表(64bytes)记录这个磁盘分区的状况;这里主要说明分区表,因为你分区之后,如何找到你的分区就靠它,它记录分区的起始柱面号码。它只能记录四组起始柱面号,也就是说记录四个分区,这是硬盘的限制,因为它只有64bytes。这四个分区对应的文件名为:/dev/hda1,/dev/hda2,/dev/hda3,/dev/hda4,代表4个分区,是为主分区(扩展分区)但是为什么我们的windows可以不止4个分区呢?那是因为他们拿出主分区作为扩展分区,使用额外的扇区记录分区的信息,使得扩展分区指向的哪个区块继续分区,是为逻辑分区。每个分区有自己的启动扇区(boot sector)。有了分区之后,如何进入每个分区呢?熟悉的windows直观的将分区表示成C/D/E/F…等,双击就可进入啦,那么linux呢?linux是通过目录进入的,linux将分区和目录结合在一起,从该目录进入这个分区,是为挂载。
通常呢,一个分区要使用还需要格式化成具体的文件系统才能够使用。linux的Ext2文件系统将这个分区分成若干块组(block group),当然,分区的最开始是启动扇区。每个块组都有:自己的superblock负责本组的整体信息,包括inode和data block的总量,使用量及剩余量;inode表存储文件的属性及文件的实际内容的block编号;block存储实际数据;此外,块对应表和inode对应表分别用于快速查找空闲块和空闲inode。每个inode固定大小128bytes,block大小有1KB,2KB,4KB。
文章评论

共有 1 条评论

  1. yuyajun 于 2015-03-15 12:26:33发表:

    为毛没人支持下呢