Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)


前言

  • 磁盘(disk)是指利用磁记录技术存储数据的存储器
    磁盘是计算机主要的存储介质,可以存储大量的二进制数据,并且断电后也能保持数据不丢
    早期计算机使用的磁盘是软磁盘(Floppy Disk,简称软盘),如今常用的磁盘是硬磁盘(Hard disk,简称硬盘)
  • 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法
    操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统

一、磁盘基础

硬盘一般指电脑硬盘,是计算机最主要的存储设备(Hare Disk Drive,简称HDD)

1.磁盘结构

Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)

1.1 硬盘的物理结构

  • 盘片:硬盘有多个盘片,每盘片2面
  • 磁头:每面一个磁头

1.2 硬盘的数据结构

  • 扇片:盘片被分为多个扇形区域,每个扇区存放512字节的数据,硬盘的最小存储单位
  • 磁道:当磁盘旋转时,磁头若保持在一个位置,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道
  • 柱面:在有多个盘片构成盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的圆柱面

1.3 硬盘的储存容量

  • 硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数(512字节
  • 可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域

1.4 硬盘的接口类型

名称 解释
ATA(IDE) 并口数据线连接主板与硬盘,抗干扰性太差,且排线占用空间较大,不利电脑内部散热,已逐渐被 SATA 所取代
SATA(Serial ATA) 抗干扰性强,支持热插拔等功能,速度快,纠错能力强
SCSI 小型机系统接口,SCSI硬盘广为工作站级个人电脑以及服务器所使用,资料传输时CPU占用率较低,转速快,支持热插拔等
SAS(Serial Attached SCSI) 是新一代的scSI技术,和sATA硬盘相同,都是采取序列式技术以获得更高的传输速度,可达到 6Gb/s

2.MBR与磁盘分区表示

2.1 MBR-主引导记录

  • MBR是主引导记录(MBR:Master Boot Record),位于硬盘的第一个物理扇区处
  • MBR中包含硬盘的主引导程序和硬盘分区表
  • 分区表有4个分区记录区,每个分区记录区占16字节
  • 主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区
    或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区
  • Linux中将硬盘、分区等设备均表示为文件
    Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)

2.2 磁盘分区结构

  • 磁盘中的主分区数目只有4个
  • 主分区和扩展分区的序号限制在1~4
  • 扩展分区再分为逻辑分区
  • 逻辑分区的序号将始终从5开始

Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)

3.文件系统类型

  • 文件系统类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件类型
  • 在windows操作系统中,经常使用的文件系统类型包括FAT32、NTFS(查看你的C盘属性可以找到这个)等格式
  • 而在Linux系统中,最常用的文件系统主要包括以下几种格式:

3.1 XFS文件系统

  • 存放文件和目录数据的分区
  • 高性能的日志型文件系统,特别擅长于处理大文件,可支持上百万TB的存储空间
  • 即使宕机也不怕数据遭到破坏,可以根据日志记录在短时间内进行数据恢复
  • CentOS 7系统中默认使用的文件系统

3.2 SWAP交换文件系统

  • 为Linux系统建立交换分区(相当于虚拟内存,一定程度上缓解物理内存不足的问题)
  • 一般设置为物理内存的1.5~2倍
  • 交换分区不用于直接存储用户的文件和目录等数据

3.3 Linux支持的其他文件系统类型

  • 广泛支持其他各种类型的文件系统
  • EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统
  • FAT32、NTFS、LVM…

二、检测并确定新硬盘

  • 在Linux服务器中,当现有硬盘的分区规划不能满足要求(例如,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间
  • 实现上述操作需要用到fdisk磁盘及分区管理工具,fdisk是大多数Linux系统中自带的基本工具之一

1.faisk命令-查看或管理磁盘分区

  • 格式:

    • fdisk -l [磁盘设备]
    • 列出当前系统中所有硬盘设备设备及其分区的信息

      Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)
      fdisk [磁盘设备]
      Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)
  • 解释

    • Device(设备):分区的设备文件名词
    • Boot:是否是引导分区
      若是,则有"*"标识
    • Start:该分区在硬盘中的起始位置(柱面数)
    • End:该分区在硬盘中的结束位置(柱面数)
    • Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为 1024 字节
    • ID:分区对应的系统 ID 号
      例,83表示Linux中的XFS分区或EXT4分区、8e表示LWM逻辑卷
    • System:分区类型

2.管理磁盘分区

  • fdisk /dev/sda
    Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)
  • 常用命令
    • m:获取帮助菜单(很详细)
    • n: 新建分区
    • p:查看分区情况
    • d:删除分区
    • t:变更分区的类型
    • w:保存分区操作并退出
    • q:不保存分区操作并退出

三、创建文件系统

  • 在Linux系统中,使用fdisk工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中指定的目录,然后才能用于存储文件、目录等数据,接下来将学习如何格式化并挂载分区
  • 创建文件系统的过程也即格式化分区的过程,在Linux系统中使用mkfs(Make Filesystem,创建文件系统)命令格式可以格式化XFS , EXT4 ,FAT等不同类型的分区,而使用mkswap命令可以格式化Swap交换分区

1.mkfs命令-创建文件系统(格式化)

  • 格式:
    mkfs -t 文件系统类型 分区设备

2.mkswap命令-创建交换文件系统

  • 格式:
    mkswap 分区设备

四、挂载、卸载文件系统

  • 在Linux系统中,对各种存储设备中的资源访问(如读取,保存文件等)都是通过目录结构进行的,虽然系统核心能够通过“设备文件”的方式操纵各种设备,但是对于用户来说,还需要增加一个“挂载”的过程,才能像正常访问目录一样访问存储设备中的资源
  • 当然,在安装Linux操作系统的过程中,自动建立或识别的分区通常会由系统自动完成挂载,如“/”分区,“boot”分区等
    然而对于后来新增加的硬盘分区,光盘等设备,有时候还需要管理员手动进行挂载,实际上用户访问的是经过格式化后建立的文件系统
    挂载一个分区时,必须为其制定一个目录作为挂靠点(或称为挂载点),用户通过这个目录访问设备中 的文件,目录数据

1.mount命令-挂载文件系统、ISO镜像到指定文件夹

  • 格式
    • mount [-t 类型] 储存设备 挂载点目录
    • mount -o loop ISO镜像文件 挂载点目录
      • -t:用于指定文件系统类型,通常可以省略,由系统自动识别
      • -o:挂载参数列表,以英文逗号分隔;或用来描述特殊设备,用loop指定

2.umount命令-卸载已挂载的文件系统

  • 格式
    • umount [-lf] 存储设备目录或者挂载点目录
  • 选项
    • -l 表示解除正在繁忙的文件系统
    • -f 表示强制执行

3.设置文件系统的自动挂载

  • 系统中的/etc/fstab文件可以视为mount命令的配置文件,其中存储了文件系统的静态挂载数据,Linux系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统
  • 默认的fstab文件中包括了根分区,/boot分区,交换分区及proc,tmpfs等伪文件系统的挂载配置
  • /etc/fstab配置文件
    • 包含需要开机后自动挂载的文件系统记录
      Linux-磁盘与文件系统管理(管理磁盘及分区、文件系统的管理)
  • 在/etc/fstab文件中,每一行记录对应一个分区或设备的挂载配置信息,从左到右包括六个字段,含义如下:
字段 解释
第1字段 设备名或设备卷标名
第2字段 文件系统的挂载点目录的位置
第3字段 文件系统类型,如 xfs、swap 等
第4字段 挂载参数,即mount命令"-o"选项后可使用的参数;例如,defaults(默认参数)、rw(可读写)、ro(只读)、noexe c(禁用执行程序)
第5字段 表示文件是否需要 dump 备份(dump是一个备份工具);一般设为1时表示需要,设为0时将被dump忽略
第6字段 该数字决定在系统启动时进行磁盘检查的顺序。0表示未进行检查,1表示优先检置,2表示其次检查。根分区可设为1,其他分区设为2

4.df命令-查看磁盘使用情况

  • 不带选项和参数的mount命令可以显示分区的挂载情况,若要了解系统中已经挂载各文件系统的磁盘使用情况(如剩余磁盘空间等),可以使用df命令
  • df命令使用文件或者设备作为命令参数
    常用选项:
    • “-h”:用于显示更容易读的容量单位
    • “-T”:用于显示对应文件系统的类型
    • “-i”:用于用于显示分区的inode号码数量