Linux磁盘系统

一,硬盘组成和分区

  1. 扇区,柱面,分区

    • 扇区sector,最小物理存储单位,每个扇区512bytes;第一个扇区最重要,其含有硬盘主引导记录MBR和分区表,MBR占446bytes,partition table占64bytes;
    • 柱面cylinder,分区的最小单位,是扇区组成的圆;
    • 分区partition,指起始柱面到结束柱面之间的块;
    • 磁盘分区:告诉操作系统可访问区域是由A柱面到B柱面之间的块;
    • 每块硬盘只有唯一的MBR,但是每个文件系统最前面都有一个启动扇区(boot sector),如此,就可以将不同引导装载程序安装到个别的文件系统最前端,这样就能够制作出多重引导的环境;
  2. 分区

    • 磁盘第一个扇区:在硬盘的开头,也就是0磁头(head)、0柱(cylinder)、0面(side)、0磁道(track)、0扇区(sector)总共512字节存放着硬盘最重要的信息MBR(Master Boot Record,主引导记录)和分区的相关信息,由于记录空间只有那么大,所以也只能记录这4个分区的信息;
    • 由上可知,分区表中记录了个分区的柱面范围,最多能记录4个分区,成为主分区(primary)或扩展分区(extended);
    • 由操作系统的限制,扩展分区最多只能有一个,扩展分区可以再分出逻辑分区(logical);
    • 能被格式好后作为数据访问的分区是主要分区或逻辑分区,扩展分区无法格式化;
    • 至于逻辑分区的数量依操作系统而不同,具体多IDE硬盘和SATA硬盘的支持数量也不同;

二,文件系统特效

  1. 为什么分区后需“格式化”

    • 因为每种操作系统设置的文件属性/权限并不相同,为了存放这些文件所需的数据,因此需要将分区进行格式化,以成为操作系统能够利用的文件系统格式;
    • 格式化是在分区上建立文件系统,也就是告诉系统按照什么规则存取文件。格式化操作是以分区为单位进行的,一次格式化会破坏该分区上的所有数据。
    • 每种操作系统能够使用的文件系统并不相同。Windows 98以前的操作系统使用的文件系统是FAT(或FAT16),Windows 2000以后的版本使用NTFS文件系统,而Linux使用的是Ext2,默认情况下,Windows操作系统不会认识Linux的Ext2;
    • 传统磁盘与文件系统应用中,一个分区只能被格式化成一个文件系统,可以说成一个文件系统就是一个分区。随着技术发展,现在可将一个分区格式化成多个文件系统(例如,LVM),也可以将多个分区合并成一个文件系统(例如,LVMRAID)。所以目前,在格式化时,已经不再说成针对分区格式化了,而是通常称呼一个可被挂载的数据为一个文件系统而不是一个分区;
  2. inode和block简述

    • 较新的操作系统的文件数据除了文件实际内容外(data block),还有非常多的属性(inode);
    • Linux操作系统中,文件系统将文件权限(rwx)和文件属性(所有者、群组、时间参数)放置在inode中,将文件实际数据内容放置在data block中;另外还有一个超级块(superblock)记录整个文件系统的整体信息,包括inode与block的总量,使用量,剩余量,以及文件系统的格式与相关信息等;
    • inode,记录文件的属性,一个文件对应一个inode,inode中还记录了此文件的数据所在的block号码,便于索引到文件;
    • block,实际记录文件的内容,若文件太大,则文件会占用多个block;
    • inode和block分属于不同的块,通过inode中记录的block编号,可以同时将多个记录的block中的数据读出来,这种数据访问方式叫做索引式文件系统(indexed allocation),Ext2属索引式文件系统,这种方式有别于u盘用的的FAT格式访问方式,FAT文件系统中没有inode的存在,每个block的号码都记录在前一个block中,所以不能同时读取所有block数据,只能一个个依次读取;
  3. data block数据块细节

    • block的大小和数量在格式化完就不能再改变了(除非重新格式化);
    • Ext2文件系统中所支持的block的大小有1kb、2kb、4kb三种 ,其对应的最大单一文件限制和最大文件系统总容量也都各不一样;
    • 每个block内最多只能放置一个文件的数据;
    • 如果文件大于block的大小,则一个文件会占用多个block数量,如果文件小于block,则该block的剩余空间就不能够再被使用了(磁盘空间会浪费);
  4. inode细节

    • inode的数量和大小也是在格式化时就已经固定了,每个inode大小固定为128bytes,每个文件都仅会占用一个inode而已;
    • 因此文件系统能够创建的文件数量与inode的数量有关;

    - 系统读取文件时需要先找到inode,并分析inode所记录的权限是否与用户符合,若符合才能够开始实际读取block的内容;

猜你喜欢

转载自blog.csdn.net/WalleIT/article/details/69054519
今日推荐