一、Linux文件系统

每种操作系统能够使用的文件系统并不相同,Linux的正统文件系统为Ext2(Linux second extended file system, ext2fs)。现在通常可以称呼一个可被挂载的数据为一个文件系统。

文件系统的运行机制与操作系统的文件数据有关,文件数据除了文件内容外,还有文件属性。文件系统通常会把这两部分放在不同的区块。

  • superblock:记录此filesystem的整体信息,包括inode,block的总量、使用量、剩余量,以及文件系统的格式与相关信息等
  • inode:记录文件的属性,一个文件占用一个inode,同时记录此文件的数据所在的block号码
  • block:实际记录文件的内容,若文件太大,会占用多个block(所以一个inode可对应多块block)
    注:文件名是放在block中的,此外,如果一个inode对应过多block(inode大小存不下这么多号码),则需要另外用block来记录这些对应block的号码

文件系统一开始就将inode和block规划好了,除非重新格式化,否则不再变动。但若文件系统过大,inode和block数量过多,不易于管理。所以,Ext2文件系统在格式化的时候基本上区分为多个区块组(block group),每个区块组都有独立的inode/block/superblock系统:

  • boot sector:开机扇区。可以安装开机管理程序,是一个非常重要的设计,这样就能将不同的开机管理程序安装到个别的文件系统的最前端,而不用覆盖整颗磁盘唯一的MBR(多系统)。
  • data block:数据区块。用来放置文件内容数据的地方。
  • inode table:inode表。inode除了记录文件的属性外,还有一些特色:(1)文件系统能够创建的文件数量与inode数量有关(2)系统读取文件时需先找到inode,若inode所记录的权限与使用者符合,才能够读取block内容
    inode结构示意图:
  • superblock:超级区块。记录整个filesystem相关信息。除了block和inode的总量、使用量剩余量外,还记录其大小(block 1, 2, 4K, inode 128, 256Bytes)以及filesystem的挂载事件、最近一次写入数据时间等文件系统相关信息。
    第一个block group内含有superblock,后续的不一定有,如果有,则是第一个的副本。
  • filesystem description:文件系统描述说明。描述每个block group的开始与结束的block号码,以及说明block group内部每个区段之间的block号码范围(可用dumpe2fs观察)
  • block bitmap:区块对照表。记录block区块是否被使用。例如新增时,要找到空的block;删除时将block对用的标志修改为“未使用”
  • inode bitmap:inode对照表。与上类似

二、文件系统的简单操作

2.1 磁盘与目录容量

  • df
# df [-ahikHTm] [目录或文件名]

  • du

2.2 实体链接(硬链接)与符号链接(软链接)

  • Hard Link:硬链接。在某个目录下新增一笔文件名到某inode号码的关联记录(可以理解为c++的智能指针)

    -i 查看inode相关信息,ln创建链接
    发现创建链接后,两个文件名链接到同一个inode,所有相关信息都一样(除了文件名)。链接的优点是安全,类比智能指针,任何一个指针都可以用来修改数据,但只有当最后一个指针离开作用域,内存才被释放。所以,当链接数大于1时,删除的只是文件名,inode和block仍然存在。
    使用限制:(1)不能跨filesystem(2)不能link目录
  • Symbolic Link:软链接(符号链接)。
    符号链接会创建一个独立的文件,存放源文件的文件名。相当于c++的引用(别名)。所以,当源文件删除后,symbolic 的文件则无法打开。
# ln -s 源文件 链接文件

默认为hard link, -s为symbolic link

可以看到,软链接有不同的inode和block(新文件)。
当我们新建一个目录时,其默认链接数为2(当前目录 . 和上层目录 …),
上层目录的链接数+1。

三、磁盘的分区、格式化、检验与挂载

四、Linux磁盘与文件系统管理相关推荐

  1. 鸟哥的Linux私房菜(基础篇)- 第八章、Linux 磁盘与文件系统管理

    第八章.Linux磁盘与文件系统管理 最近升级日期:2009/08/30 系统管理员很重要的任务之一就是管理好自己的磁盘文件系统,每个分割槽不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文 ...

  2. Linux知识点整理(五)—— Linux 磁盘与文件系统管理

    一.Linux磁盘与文件系统管理 1.磁盘组成与分割 磁盘的物理组成,整颗磁盘的组成主要有: 圆形的磁盘(主要是记录数据的部分): 机械手臂,与在机械手臂上的磁盘读取头(可读写磁盘盘上的数据): 主轴 ...

  3. 鸟哥的Linux私房菜-第七章、Linux 磁盘与文件系统管理

    第七章.Linux 磁盘与文件系统管理 前言 一.认识 Linux 文件系统 1.文件系统特性 2.Linux 的 EXT2 文件系统 (1)data block (数据区块) (2)inode ta ...

  4. Linux 磁盘与文件系统管理(鸟哥私房菜)

    本文来自:http://vbird.dic.ksu.edu.tw/linux_basic/0230filesystem.php   第八章.Linux 磁盘与文件系统管理 系统管理员很重要的任务之一就 ...

  5. linux文件系统管理知识导图,Linux磁盘和文件系统管理基础知识自测

    自测简介:本试题为EMC自测专栏第22期,主要考查Linux磁盘和文件系统管理基础知识. 1. Linux系统中,所有设备文件存放在哪一个目录下? A. /etc B. /bin C. /dev D. ...

  6. Linux 磁盘和文件系统管理1

    一.磁盘介绍 磁盘(disk)是指利用磁记录技术存储数据的存储器. 磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢失.早期计算机使用的磁盘是软磁盘(Floppy Di ...

  7. Linux磁盘与文件系统管理

    第八章 总结 系统管理的重要任务之一就是管理好自己的磁盘文件系统,每个分区不可太大也不能太小,太大会造成磁盘容量的浪费,太小则会产生文件无法存储的困扰. 认识EXT2文件系统 Linux最传统的磁盘文 ...

  8. 2.Linux磁盘,文件系统管理--创建文件系统

    第一篇:创建文件系统(格式化) ============================================================================ 概述: === ...

  9. Linux操作系统使用基础05:Linux磁盘与文件系统管理

    目录 1. 文件系统特性 1.1 概述 1.1.1 操作系统相关性 1.1.2 磁盘与文件系统的关系 1.2 文件数据的存放 1.2.1 索引式 1.2.2 链表式 2. Linux的Ext2文件系统 ...

  10. Linux—磁盘和文件系统管理(二)

    LVM逻辑卷管理 a)LVM概述 logical Volume Manager ,逻辑卷管理 作用:动态调整磁盘容量,从而提高磁盘管理的灵活性 需要注意的是:/boot分区用于存放引导文件,不能基于L ...

最新文章

  1. 仓央嘉措《那一天,那一月,那一年,那一世》
  2. Activity的用法(一):Notification Activity
  3. 为什么说OLAP产品毁了BI?
  4. Python 网络爬虫笔记9 -- Scrapy爬虫框架
  5. mysql一直copying to tmp table_mysql提示Copying to tmp table on disk
  6. element ui实现动态显示textarea剩余字数
  7. M3 Build6801 Discovery support Virtual Hard Disks
  8. oracle 如何使用循环语句,Oracle条件语句跟循环语句
  9. 蔡勒星期算法 c语言,C/C++根据年月日计算星期几(蔡勒公式篇)
  10. 五款优秀免费的在线抠图工具
  11. linux 指令熟悉
  12. HMI-40-【节能模式】平均油耗实现
  13. 编写python程序、计算账户余额_《计算机科学丛书PYTHON程序设计(原书第2版)/(美])凯.S.霍斯特曼》【价格 目录 书评 正版】_中国图书网...
  14. 微信公众号运营实用小技巧分享
  15. 4.12 使用格式刷实现单元格样式的快速复制 [原创Excel教程]
  16. 软件测试面试题 | 提BUG相关
  17. 牛小骥和严恭敏松组合中Qk的计算方法对比
  18. LAMP编程之Linux-1
  19. 深度|未来电竞产业的新“十倍空间”
  20. Yaf安装/配置(Windows)

热门文章

  1. 【Linux】两个故事带你使用git命令行
  2. AcWing 1028. 复制书稿 (二分)
  3. C++中的预处理器概述
  4. Win8安装程序出现2502、2503错误解决方法
  5. 《Java入门从笨鸟到菜鸟》读后感(三)
  6. vs 无法启动程序c语言,vs2013运行c语言出现:无法查找或打开 PDB 文件。
  7. 史上最简单的docker入门到放弃——(利用docker部署web应用)
  8. layui 利用tab选项卡实现:上一步,下一步操作
  9. c语言关键字中英翻译机课程设计,课程设计--C语言关键字中英翻译机.doc
  10. 二手闲置物品交易数据快照