加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux文件系统

发布时间:2022-09-17 15:31:44 所属栏目:Linux 来源:
导读:  磁盘与目录

  磁盘是文件系统的底层支持,目录是文件系统的具体表现

  磁盘与磁盘分区

  磁盘组成:主轴、盘片、读写磁头

  盘片上的圆环称为磁道;多张盘片构成的半径相同的磁道的圆柱
  磁盘与目录
 
  磁盘是文件系统的底层支持,目录是文件系统的具体表现
 
  磁盘与磁盘分区
 
  磁盘组成:主轴、盘片、读写磁头
 
  盘片上的圆环称为磁道;多张盘片构成的半径相同的磁道的圆柱面称为柱面(一张盘片有多少磁道磁盘就有多少柱面
 
  盘片上被细分为多个大小相同的扇区,扇区是磁盘的基本单位,一般一个扇区大小为51 2字节
 
  磁盘的第一个扇区,叫做引导扇区,非常重要,记录了关键信息:主引导记录、磁盘分区、魔数
 
  磁盘在除可以划分主分区外,还可以划分出一个扩展分区,而扩展分区可以再次划分,由扩展分区划分出的第一个逻辑分区的第一个扇区中
 
  编号从14预留给主分区表中的设备文件使用,即主分区表中的分区不足4个,逻辑分区的设备文件也不能用编号14
 
  虽然磁盘分区表中最多可以存储4个分区的信息,但使用时一般只用两个分区,即一个主分区一个扩展分区。
 
  主分区可以马上被使用,但不能再分;扩展分区必须再划分为逻辑分区才能使用;因为系统不能识别未划分的扩展分区
 
  目录结构
 
  Linux会在安装的时候根据文件系统层次化标准(FHS)建立完整的目录结构
 
  FHS采用树形结构组织文件,定义了系统中每个区域的用途、所需要的最低限量的文件和目录等
 
  Linux目录结构只有一个树状结构,根目录\存在于所有目录和文件的路径,是唯一的根节点
 
  Linux目录中按照规定存放功能相似的文件,发行版本中常用的目录以及目录存放的文件如下:
 
  inode与dentry
 
  数据存放的区域成为数据区。文件属性又被称为元数据,存放文件属性的取余成为元数据区
 
  索引节点与目录项
 
  文件有三个组成:内容、文件名、inode
 
  索引节点
 
  实质是结构体,保存文件的属性信息
 
  在系统中每个文件都会分配一个inode,系统会在inode表中获取一个空闲的inode来分配这个文件
 
  文件编号可以用ls -i 文件
 
  目录项
 
  Linux系统索引节点并不保存文件名
 
  且不在文件中保存,而是在保存在存放该文件的目录中
 
  Linux有一个目录项dentry的结构体,存储文件的文件名和inode编号
 
  dentry中允许同一个inode对应不同的文件名,但不允许相同的文件名对应不同的inode
 
  Linux文件系统
 
  文件系统是管理操作系统中文件的一组规则,它规定了数据在磁盘上的组织存储形式,规定了系统访问的数据方式,文件的存储与访问都要依赖文件系统
 
  文件系统版本
 
  第一代扩展系统:
 
  第二代:
 
  官方建议默认的文件系统:
 
  fdisk/mke2fs
 
  创建和管理磁盘分区——dfisk
 
  创建文件系统——mke2fs
 
  fdisk
 
  fdisk 选项 参数
 
  mke2fs
 
  为已完成分区的磁盘创建一个文件系统,或者是对磁盘进行高级格式化(逻辑格式化)
 
  高级格式化:根据用户选定的文件系统,在磁盘的特定区域写入特定数据,以达到初始化磁盘或磁盘分区,清除原磁盘或磁盘分区中的所有文件的目的。
 
  会对主引导记录中分区表的相应区域进行重写,并将分区空间化为两部分,一部分用于存储数据另一部分用于存储分区文件管理相关的数据
 
  mke2fs 选项 参数
 
  mke2fs ext2 /dev/sda5 为该磁盘建立ext2文件系统
 
  类似的,也可以使用 mkfs -t ext2
 
  文件系统中存储数据的最小单位是块,在mke2fs中使用b参数来指定,一般为1、2、4kb
 
  单单进行低级格式化是不能直接使用格式化后的硬盘的,因为不存在文件系统(自己认为的,没找到资料考证
 
  低级格式化是高级格式化之前的一项操作
 
  ext2/ext3文件系统ext2文件系统
 
  一般情况,磁盘中的空间被划分为多个分区,分区中的空间会再被划分为更小的子空间,这些子空间被称为块组
 
  每个块组都由相同个块组成,块是文件系统中存储数据的基本单位,块的大小在创建文件系统时确定
 
  格式化时使用mke2fs对其进行设置
 
  磁盘分区中存储数据的单位是块,即便一个文件的大小不足一个块,它也要占用一个块来存储(1025字节的文件在1024块中就要占2个块
 
  ext2文件系统布局
 
  第一个部分称为启动块,占用一个块的空间,存储次哦按的分区信息和启动信息
 
  之后包含多个块组,每个块组包含6个部分:超级块、组描述符表,块位图、inode位图、inode表、数据块
 
  超级块
 
  描述整个分区所用文件系统的信息,包括块的大小、块组中的块的数量、inode占用的字节数、文件系统的版本类型
 
  是分区正常使用的前提
 
  为避免损坏导致的异常,一般会在其他组中备份超级块
 
  组描述符表
 
  存储块组描述符信息
 
  块组描述符存储:存储一个块的描述信息,包括表中的inode表的位置、数据块的位置、空闲的inode数以及空闲的数据块数量等
 
  一旦超级块与描述符表损坏或者丢失,系统将无法正常获取整个分区中文件的信息与块组的描述的信息,分区也不能正常使用;在其他块组中也存在块组描述符的备份
 
  块位图
 
  类似堆空间的使用
 
  块组中最多有8B个块;若整个分区中块的数量为s,那么就可以有s/(8B)个块组
 
  inode位图
 
  记录块组中inode的使用情况
 
  每一位对应一个inode的使用情况
 
  inode表
 
  记录文件的属性信息,保存在inode结构体中,每个文件都有一个inode,一个块组中的所有inode构成一个inode表
 
  占据的空间是由分区格式化取定的
 
  默认8k(mke2fs默认8k)
 
  inode的数量要尽量合理,因为无论是数据块不足还是inode耗尽,分区都无法存储文件;过多会导致存储空间的浪费
 
  数据块
 
  是块组中专门用于存储文件数据的块,系统通过文件的inode编号找到文件的inode结构体,再从中获取数据块在磁盘上的位置,进而读取数据信息
 
  ext2的优点管理员可根据预期的文件平均长度来选择最佳的块大小,从而提高效率,减少系统损耗管理员可根据给定分区的大小预计该分区中存放的文件数,从而确定分区中inode的数量,保证空间利用率将磁盘块划分为组,每组包含存放在相邻磁道上的数据块和索引节点,能降低对存放于单独块组中的文件并行访问时磁道的平均磁道时间支持快速符号链接致命缺点
 
  不包含日志功能
 
  ext3文件系统特点
 
  完全兼容2,在此基础上加上了日志功能
 
  文件系统变化时,先将相关信息写入系统日志中,在将变化应用到主文件系统的文件系统
 
  默认为 data=ordered
 
  详细链接
 
  虚拟文件系统
 
  主要功能,实现多种文件系统操作接口的统一
 
  挂载
 
  将物理地址与目录进行映射的方式
 
  指将一个设备(通常是存储设备)挂接到一个已存在的目录上。(这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。)
 
  mount
 
  将某个分区挂载到目录
 
  mount 选项 参数 设备 挂载点
 
  unmount文件类型
 
  linux的文件类型不以扩展名区分。扩展名只代表与程序的关联
 
  文件类型概述
 
  ls -l命令下第一个首字母代表的文件类型
 
  普通文件
 
  以字节为单位的数据流,包括二进制文件、文本文件、可执行文件
 
  目录文件
 
  以文件的形式存储
 
  设备文件
 
  I/O设备的文件
 
  特殊文件
 
  常见的是符号链接文件,实际是软链接文件
 
  硬链接文件本质是普通文件
 
  链接文件
 
  创建链接文件
 
  ln 选项 源文件 目标文件
 
  选项缺省创建一个硬链接文件;-s系统创建出一个软链接
 
  软链接
 
  创建一个新文件,执行-s命令时,目标文件获取一个inode
 
  设备文件
 
  ls -l /dev
 
  文件操作
 
  打开文件、读文件、写文件、关闭文件
 
  打开文件是文件IO操作的前提
 
  文件描述符
 
  内核通过文件描述符来引用系统中已打开的文件
 
  系统为每一个进程维护一个打开的文件描述符表,用于存储进程打开的文件的文件描述符
 
  表从0开始,0~2在程序启动时被系统标准文件占用,所以进程打开的文件从3开始
 
  不同的描述符可以指向同一个文件,对于多个进程而言,数值相同的文件描述符可以指向不同的文件
 
  文件I/Oopen()
 
  存在于系统函数库fcntl.h
 
  如果使用成功返回一个整数Linux 磁盘管理,不成功返回-1
 
  write
 
  存在与unistd.h
 
  件操作
 
  打开文件、读文件、写文件、关闭文件
 
  打开文件是文件IO操作的前提
 
  文件描述符
 
  内核通过文件描述符来引用系统中已打开的文件
 
  系统为每一个进程维护一个打开的文件描述符表,用于存储进程打开的文件的文件描述符
 
  表从0开始,0~2在程序启动时被系统标准文件占用,所以进程打开的文件从3开始
 
  不同的描述符可以指向同一个文件,对于多个进程而言,数值相同的文件描述符可以指向不同的文件
 
  文件I/Oopen()
 
  存在于系统函数库fcntl.h
 
  如果使用成功返回一个整数,不成功返回-1
 
  write
 
  存在与unistd.h
 
  后面还有很多,先写这些,如果考试考这些或者以后要用到再来往上补充吧
 

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!