认识linux文件系统

linux文件系统

看下ext2文件系统系统的索引方式

image

假设一个文件的属性和权限信息是存放在 3 号的 inode 上,而文件的实际数据是存放在 1、4、6、11 这四个 block 中,那么当操作系统要访问该文件时,就能据此来排列磁盘的阅读顺序,可以扫描一次就将 4 个 block 内容读出来。这种访问方式称为索引式文件系统(indexed allocation)。而且 ext 在每两个文件之间都留有相当巨大的空闲空间。当文件被修改、体积增加时,它们通常有足够的空间来扩展。因此在一定程度上保证了 block 的访问范围不会跨度很大,减小了磁头的移动距离。

再来看下windows下FAT文件系统的索引方式

image

每个 block 号码都记录在前一个 block 当中,形成一个 block 链。当我们需要读取文件的时候,就必须一个一个地将 block 读出,例如上图的读出顺序为 1、6、3、12 。这就会导致磁头无法在磁盘转一圈就获得所有数据,有时候需要来回转好几圈才能读取到这个文件,导致文件读取性能极差。这就是 Windows 经常需要碎片整理的原因——使离散的数据汇合在一起。

ext 文件系统

ext文件系统会将权限和属性存放在inode中,文件的实际数据存放在block中,还有一个superblock会记录整个文件系统的整体信息,包括inode、block的总量,使用量,余量以及文件系统的格式与相关信息等。

ext文件系统在格式化的时候基本上是区分为多个块组的,每个块组都有独立的inode、block、superblock,如下
image

1. 文件系统最前面有一个启动扇区,可以安装启动管理程序grub。
2. super block:记录此文件系统的整体系统,包括 inode 和 block 的总量、使用量、剩余量,以及文件系统类型等。
3. file system description:文件系统描述说明。描述每个 block group 的开始与结束的 block 号码。
4. block bitmap:块对照表。用来快速寻找可用的 block 块。
5. inode bitmap:inode对照表。用来快速寻找可用的 inode 块。
6. inode table:存放 inode 块的地方。它们是文件系统的关键。记录了文件的属性,一个文件占用一个 inode,同时包含多个指针,指向了属于该文件的各个 data block 块
7. data block:真正存放数据的地方。文件太大会占用多个 block 。

Linux磁盘分区

下面介绍下Linux下的磁盘分区:主分区、扩展分区、逻辑分区。其中,主分区和扩展分区的数目之和不能超过4个。

  1. 主分区:能马上使用,但不可再分。
  2. 扩展分区:需要进行逻辑分区后才能使用,可以认为是逻辑分区的“容器”。
  3. 逻辑分区:由扩展分区建立起来的分区。逻辑分区没有数量上限制。

各种磁盘在linux下的标识为 :
- /dev/sd[a-p][1-15]:为SCSI, SATA, U盘, Flash闪盘等接口的磁盘文件名;
- /dev/hd[a-d][1-63]:为 IDE 接口的磁盘文件名;
- linux用sda、sdb、hda、hdb来标识整块磁盘,字母a代表第一块硬盘,b代表第二块硬盘,依次类推
- 数字1-4表示是主分区或扩展分区,从5开始是逻辑分区了。

磁盘分区完还要对磁盘进行格式化,才能进行使用,比如格式化为ext2类型。

常用命令:

  1. df查看文件系统磁盘的使用情况。

    image

    -h: 人类可读的形式

    -a: 列出所有的文件系统,包括系统特有的 /proc 等文件系统;

    -i:显示inode的使用情况,因为默认是显示block。

    -l: 列出本地文件系统。

    -t: 指定文件系统类型。

    -x: 排除文件系统类型。

    -T: 顺便显示文件系统类型。

  2. du查看具体文件空间大小的使用情况。

    image

    -h:以人们较易读的容量格式 (G/M) 显示。

    -s: 只列出总量。

    -a:列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

    -c:最后再加上一个总计(系统默认设置)。

    -l:计算所有的文件大小,对硬链接文件,则计算多次。

  3. fdisk 磁盘分区工具

    -p: 打印指定磁盘的分区信息。

    -n: new 一个分区。

    -l: 列出所有分区信息

    -d: 删除一个分区。

  4. mkfs 格式化分区。

    -V: verbose详细信息。

    -t: 设置文件系统类型。

    -c: 顺便check下是否有坏道。

    mkfs -V -t ext4 -c /dev/sdb1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值