第34天-文件_system (2013.09.04)

  1.推荐书籍 《编程珠玑》

  2.磁盘碎片整理 : 本质是整理块

  3.对目录 :

        r  : 浏览子文件夹和文件  ls

        w : 创建和删除子文件夹和文件  mkdir  touch  rm rmdir mv

        x  : 进入该目录      cd

  4.磁盘是一种顺序的存储介质

  5.磁盘分区格式化成ext2文件系统后的存储布局:

Boot Block (启动块)  Block group0(块组)   Block group n(块组)

    Block group0分布

Super Block(超级块) Group Descriptor Table(块组描述符表)   Block Bitmap(块位图) inode Bitmap(位图) inode Table(表) Data Blocks(数据块)

      super Block : 描述整个分区的文件系统信息

      GDT : 由很多块组描述符组成,整个分区分成多少个块组就对应有多少个块组描述符(块组描述符表在每个块组的开头也都有一份拷贝)

      Block Bitmap : (数据块存储所有文件的数据), 块位图就是用来描述整个块组中哪些块已用哪些块空闲的

              提示: df :命令统计整个磁盘的已用空间非常快,因为它只需要查看每个块组的块位图即可。du则需要搜索遍整个空间,比较慢。

              扩展: mke2fs 格式化命令 -b 参数指定大小

                          -g 参数可以手动指定一个块组有多少个块

                          -i 参数可以手动指定每多少字节分配一个inode

      inode Bitmap : 本身占一个块,其中每个bit 表示一个inode是否空闲可用

      inode 表 : 存储文件信息, 每个文件都有一个inode, 一个块组中的所有的inode组成了inode表

      数据块 :存储文件内容

          该目录下的所有文件夹名和目录名存储在数据块中。

          对于符号链接,如果目标路径名较短则直接保存在inode中以便更快地查找,如果目标路径较长则分配一个数据块来保存。

          设备文件.FIFO和socket等特殊文件么有数据块,设备文件的主设备号和次设备号保存在inode中

  6.硬链接个数 :   文件最少1个, 目录最少2个

    互为硬链接的两个文件占用同一个inode

  7.实例 :

      1.首先创建一个1MB的文件并清零

          dd if=/dev/zero of=fs count=256 bs=4k

      2.对文件进行格式化 (把这个文件的数据块合起来看成一个1MB的磁盘分区, 在这个分区上再划分出块组)

          mke2fs fs

      3.用dumpe2fs工具可以查看这个分区的超级块和块组描述符表中的信息

          dumpe2fs fs

      4.把常规文件制作而成的文件系统也可以像磁盘分区一样mount到某个目录

          sudo mount -o loop fs /mnt

          卸载挂载

          sudo umount /mnt

      扩展 : 光盘 : iso9660    harddisk : ntfs, vfat  u盘

  8.目录中的文件型编码

0 Unknown
1 Regular file
2 Directory
3 Character device
4 Block device
5 Named pipe
6 Socket
7 Symbolic link

  9.使用man2 查看 stat   access  ,chmod,  chown,   utime, mtime, atime,   link, unlink,  rename,  readlink,  mkdir, rmdir,   opendir, readdir, closedir

    10.英语 ;  pipe(管)  bitmap(位图)  table(表)

原文地址:https://www.cnblogs.com/cxw825873709/p/3301815.html