Ext2文件系统

  • 一个磁盘可以有多个分区,每个分区可以设置不同文件系统,如Ext2,Ext3, FAT,NTFS,以前一个分区对应一个文件系统,但是由于新技术的出现,一个分区可以被设置成多个文件系统,多个分区也可以合成一个文件系统
  • 所以说,目前我们在格式化时已经不再说成针对分区来格式化了, 通常我们可以称呼一个可被挂载的数据为一个文件系统而不是一个分区喔!(以文件系统为讨论单位,并且不止磁盘有文件系统,内存也有文件系统如proc类型
  • 文件系统被划分为多个区块群组(block group)一个区块群组包括一套独立的inode/block/superblock 系统和一定数量的block。文件系统最前面有一个启动扇区(boot sector),这个启动扇区可以安装启动管理程序(引导程序)2.3 磁盘和文件系统 - 图1
    • data block:块,大小1k,2k,4k
    • inode table:存放inode的地方
    • inode对照表:记录哪些inode用了 哪些没用
    • block对照表:同上,记录block使用情况
    • 文件系统描述:描述每个 block group 的开始与结束的 block 号码
    • superblock:
  • 使用Linux VFS (Virtual Filesystem Switch)管理所 有 文件系统,不用你自己操心。2.3 磁盘和文件系统 - 图2
  • 目录树

    • 新建目录时,同新建一个文件,分配一个inode, block, block记录其下所有文件名称和对应的inode号2.3 磁盘和文件系统 - 图3
    • 挂载点:挂载点一定是目录,该目录为进入该文件系统的入口(一个文件系统的最根目录),如/dev/hdc1文件系统的挂载点是/home。通过/home进入该文件系统。通过/etc进入另一个文件系统。那些这些根目录存在哪?统一存在2号inode(应该是主文件系统的2号inode)
      • 疑问:怎么进入不同文件系统?我知道了,就是上面提到的VFS,输入路径,自动切换

        文件系统的简单操作

  • 查看所有挂载设备(文件系统):df

    • 查看指定路径所属文件系统信息,包括大小,剩余大小等:df -h /etc
  • 查看文件占据存储大小:du [options] [path]
    • 默认显示当前目录下所有目录以及子目录的大小
    • path:可以用通配符:/usr/* ,表示usr下的所有文件和目录
    • 只显示给定path的总大小(默认只显示目录大小)-s:du -s /*
    • 不要重复计算目录大小:-S (就是计算一个目录下,除了子目录以外文件的总大小。如果不排除的话,外层目录大小肯定比内层目录大小要大,且是重复计算的
  • 查看挂载设备的文件系统:dumpe2fs /dev/hdc2