Linux 磁盘管理与文件系统

磁盘结构及分区表示

磁盘基础

硬盘(Hard Disk Drive,简称 HDD)是计算机常用的存储设备之一,本节将介绍硬盘的基本知识。

  1. 硬盘的结构
    (1)物理结构

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

(2)数据结构

扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。
磁道:当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)。
柱面:在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder)。在这里插入图片描述

(3)存储容量

硬盘存储容量=磁头数x磁道(柱面)数x每道扇区数x每扇区字节数。
可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,用fdisk-查看分区信息。

  1. 硬盘的接口
    硬盘按数据接口不同,大致分为ATA(IDE)和 SATA 以及 SCSI和 SAS,接口速度不是实际硬盘数据传输的速度。

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

磁盘分区表示

  1. MBR

MBR 是主引导记录(Master Boot Record),位于硬盘第一个物理扇区处,MBR 中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区,每个分区记录区占16个字节。

  1. 磁盘分区的表示

常见的硬盘可以划分为主分区、扩展分区和逻辑分区,通常情况下主分区只有四个,而扩展分区可以看成是一个特殊的主分区类型,在扩展分区中可以建立逻辑分区。主分区一般用来安装操作系统,扩展分区则多用来存储文件数据

Linux 内核读取光驱、硬盘等资源时均通过“设备文件”的形式进行,因此在 Linux 系统中,将硬盘和分区分别表示为不同的文件。具体表述形式如下。
》硬盘:对于 IDE接口的硬盘设备,表示为"hdX"形式的文件名;而对于 SCSI接口的硬盘设备,则表示为"sdX"形式的文件名。其中“X"可以为 a、b、c、d 等字母序号。例如,将系统中的第1个 IDE 设备(硬盘)表示为“hda",将第2个SCSI 设备表示为"sdb”。
》分区:表示分区时,以硬盘设备的文件名作为基础,在后边添加该分区(无论主分区、扩展分区、逻辑分区)对应的数字序号即可。例如,第1个IDE 硬盘中的第1个分区表示为"hda1”、第2个分区表示为"hda2”,第2个SCSl 硬盘中的第3个分区表示为“sdb3”、第 5个分区表示为"sdb5"。
—————————————————————————
需要注意的是,由于硬盘中的主分区数目只有4个,因此主分区和扩展分区的序号也就限制在 1~4,而逻辑分区的序号将始终从5开始。例如,即便第1个IDE 硬盘中只划分了一个主分区、一个扩展分区,则新建的第1个逻辑分区的序号仍然是从5开始的,应表示为“hda5”,第 2 个逻辑分区表示为"hda6”。

  1. Linux中使用的文件系统类型

文件系统(File System)类型决定了向分区中存放、读取文件数据的方式和效率,在对分区进行格式化时需要选择所使用的文件系统类型。在Windows操作系统中,经常使用的文件系统类型包括 FAT32、NTFS等格式:而在 Linux 系统中,最常使用的文件系统主要包括以下几种格式。

》XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万T字节的存储空间。由于XFS文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破
坏,这种文件系统可以根据日志记录在短时间内进行数据恢复。
》SWAP:交换文件系统,用于为Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为
物理内存的 1.5~2 倍。例如,对于拥有 512MB 物理内存的主机,其交换分区的大小建议设置为 1024MB。如果服务器的物理内存足够大(如 8GB 以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
》EXT4:第4代扩展文件系统,用于存放文件和目录数据的分区,是Linux系统中默认使用的文件系统(CentOS7默认使用XFS)。EXT4 是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。Linux 系统还广泛支持其他各种类型的文件系统,如JFS、FAT16、FAT32、NTFS 等。

管理磁盘及分区

在 Linux 服务器中,当现有硬盘的分区规划不能满足要求(例如,根分区的剩余空间过少,无法继续安装新的系统程序)时,就需要对硬盘中的分区进行重新规划和调整,有时候还需要添加新的硬盘设备来扩展存储空间。

实现上述操作需要用到 fdisk 磁盘及分区管理工具,fdisk 是大多数 Linux 操作系统中自带的基本工具之一。本节将通过为 Linux 主机新增一块硬盘并建立分区的过程来介绍 fdisk工具的使用。

增加硬盘设备时首先需要在机箱内进行硬盘接口的物理连接。若是在 VMware 虚拟机环境中,可以修改虚拟主机的设置,添加一块“Hard Disk"硬盘设备(如添加一块 100GB 的SCSI 硬盘)。

检测并确认新硬盘

挂接好新的硬盘设备并启动主机后,Linux操作系统会自动检测并加载该硬盘,无须额外安装驱动。执行"fdisk-“命令可以査看、确认新增硬盘的设备名称和位置“fdisk-“命令的作用是列出当前系统中所有硬盘设备及其分区的信息,具体操作如下:在这里插入图片描述
上述输出信息中包含了各硬盘的整体情况和分区情况,其中”/dev/sda"为原有的硬盘设备,而”/dev/sdb”为新增的硬盘,没有包含有效的分区信息。对于已有的分区,将通过列表的方式输出以下信息。
》Device:分区的设备文件名称。
》Boot:是否是引导分区。若是,则有“”标识。
》Start:该分区在硬盘中的起始位置(柱面数)。
》End:该分区在硬盘中的结束位置(柱面数)。
》Blocks:分区的大小,以 Blocks(块)为单位,默认的块大小为1024 字节。
》ld:分区对应的系统 |D 号。83 表示 Linux 中的 XFS 分区或 EXT4 分区、8e 表示 LVM逻辑卷。LVM 是 Linux 操作系统中对磁盘分区进行管理的一种逻辑机制,与之相关的知识将在后面的章节介绍。
》System:分区类型:
识别到新的硬盘设备后,就可以在该硬盘中建立新的分区了。在 Linux 操作系统中,分区和格式化的过程是相对独立的,关于格式化分区的操作将在后续内容中讲解。

规划硬盘中的分区

在硬盘设备中创建、删除、更改分区等操作同样通过 fdisk 命令进行,只需使用硬盘的设备文件作为参数。例如,执行"fdisk /dev/sdb"命令,即可进入交互式的分区管理界面中,如图 5.2 所示。
在这里插入图片描述
在该操作界面中的"Command (m for help):"提示符后,输入特定的分区操作指令可以完成各项分区管理任务。例如,输入"m"指令后,可以查看各种操作指令的帮助信息,如图 5.3 所示。在这里插入图片描述

  1. “p”指令——列出硬盘中的分区情况

使用“p"指令可以列出详细的分区情况,信息显示的格式与执行"fdisk-!"命令相同。硬盘中尚未建立分区时,输出的列表信息为空,具体操作如下:
在这里插入图片描述

  1. “n”命令——新建分区

使用“n"指令可以进行创建分区的操作,包括主分区和扩展分区。根据提示继续输入"p”选择创建主分区,输入"e"选择创建扩展分区。之后依次选择分区序号、起始位置、结束位置或分区大小即可完成新分区的创建。

选择分区号时,主分区和扩展分区的序号只能为1~4。为保证分区连续,分区起始位置一般由 fdisk 默认识别即可,结束位置或大小可以使用"+sizeM"或"+sizeG”的形式,如“十20G"表示将该分区的容量设置为20GB。
(1)创建两个主分区
首先建立第一个主分区(/dev/sdb1),容量指定为20GB,具体操作如下:在这里插入图片描述
按照类似的操作步骤继续创建第二个主分区(/dev/sdb2),容量也指定为20GB,完成后可以输入“p"指令查看分区情况,具体操作如下:在这里插入图片描述
(2)创建一个扩展分区和两个逻辑分区
使用剩余的硬盘空间可以创建扩展分区,然后在扩展分区中创建逻辑分区。需要注意的是,若主分区、逻辑分区均已创建完毕(四个主分区号已用完),则再次输入"n"指令后将不再提示选择分区类别。
首先使用剩下的所有空间建立扩展分区(/devsdb4)(全部空间分配完毕后,将无法再建立新的主分区),具体操作如下:在这里插入图片描述
接下来在扩展分区中建立第一个逻辑分区(/dev/sdb5),容量指定为2GB,具体操作如下:在这里插入图片描述
然后按照类似的操作步骤继续创建第二个逻辑分区(/dev/sdb6),容量指定为 10GB,完成后可以再次输入“p"指令查看分区情况,具体操作如下:
在这里插入图片描述在这里插入图片描述

  1. “d”命令——删除分区

使用"d”指令可以删除指定的分区,根据提示继续输入需要删除的分区序号即可。在执行删除分区时一定要慎重,应首先使用p指令查看分区的序号,确认无误后再进行删除。需要注意的是,若扩展分区被删除,则扩展分区之下的逻辑分区也将同时被删除。因此建议从最后一个分区开始删除,以免 fdisk 识别的分区序号发生素乱。

下面的操作过程将删除上一步建立的逻辑分区/dev/sdb6。
在这里插入图片描述

  1. “t”指令——变更分区的类型

在 fdisk 分区工具中,新建的分区默认使用的分区类型为 Linux,一般不需要更改。但是若新建的分区需要用作 Swap 交换分区或其他类型的分区,则需要对分区类型进行变更以
保持一致性,以避免在管理分区时产生混淆。
使用“t"指令可以变更分区的 ID 号。操作时需要依次指定目标分区序号、新的 ID号。不同类型的ID 号对应不同的分区类型,不同的分区类型支持不同类型的文件系统,以十六进制数表示,在 fdisk 交互环境中可以输入"!"指令进行列表查看。最常用的XFS、Swap 文件系统对应的 ID 号分别为 83、82,而用于 Windows 中的 NTFS 文件系统对应的 ID 号一般为 86。

执行下面的操作可以将逻辑分区"dev/sdb5”的类型更改为 Swap,通过"p"指令可以确认分区/dev/sdb5 的分区 ID 已由默认的 83 变为 82。
在这里插入图片描述

  1. “w”和“q”指令——退出fdisk分区工具

完成对硬盘的分区操作以后,可以执行"w"或“q"指令退出 fdisk 分区工具。其中"w"指令将保存分区操作,而"q"指令不会保存对硬盘所做的分区操作。对已包含数据的硬盘进行分区时,一定要做好数据备份,保存之前要确保操作无误,以免损坏数据。若无法确定本次分区操作是否正确,建议使用“g"指令不保存退出。“w"指令的具体操作如下:在这里插入图片描述
变更硬盘(特别是正在使用的硬盘)的分区设置以后,建议最好将系统重启一次,或者执行“partprobe”命令使操作系统检测新的分区表情况。在某些 Linux 操作系统中,若不进行这些操作,可能会导致格式化分区时损坏硬盘中已有的数据,严重者甚至引起系统崩溃。例如,执行“partprobe"命令将重新探测"/dev/sdb"磁盘中的分区变化,具体操作如下:在这里插入图片描述

管理文件系统

在 Linux 操作系统中,使用 fdisk 工具在硬盘中建立分区以后,还需要对分区进行格式化并挂载到系统中的指定目录,然后才能用于存储文件、目录等数据。本节将学习如何格式化并挂载分区。

创建文件系统

创建文件系统的过程即格式化分区的过程,在Linux操作系统中使用mkfs(MakeFilesystem,创建文件系统)命令工具可以将分区格式化成XFS、EXT4、FAT 等不同类型的文件系统,而Swap 交换分区是使用mkswap 命令来进行格式化的。

  1. mkfs命令的使用

实际上 mks 命令是一个前端工具,可以自动加载不同的程序来创建各种类型的文件系统,而后端包括多个与 mkfs 命令相关的工具程序,这些程序位于/sbin/目录中,如支持 EXT4文件系统的 mkfs.ext4 程序等。执行如下"ls /sbin/mkfs*“命令,可以査看当前操作系统内与mkfs 命令相关的工具程序。在这里插入图片描述
使用 mkfs 命令时,基本的命令格式如下:在这里插入图片描述
(1)创建XFS文件系统
.
当需要创建 XFS 文件系统时,只需结合”-txfs"选项指定类型,并指定要被格式化的分区设备即可。例如,执行以下操作将把分区/dev/sdb1 格式化为XFS 文件系统。在这里插入图片描述在这里插入图片描述
(2)创建FAT32文件系统
一般来说,不建议在 Linux 操作系统中创建或使用 Windows 操作系统中的文件系统类型,包括 FAT16、FAT32 等,但一些特殊情况,如 Windows 操作系统不可用、U 盘系统被病毒破坏等情况除外。
若要在 Linux 操作系统中创建 FAT32 文件系统,可结合"-t vfat"选项指定类型,并添加"-F32"选项指定 FAT的版本。例如,执行以下操作将把分区/dev/sdb6 格式化为 FAT32 文件系统(先通过 fdisk 工具添加/dev/sdb6 分区,并将 ID 号设为 b)。
在这里插入图片描述
或者
在这里插入图片描述

  1. mkswap命令的使用

在 Linux 操作系统中,Swap 分区的作用类似于 Windows 操作系统中的"虚拟内存”,可以在一定程度上缓解物理内存不足的情况。当 Linux 主机运行的服务较多,需要更多的交换空间支撑应用时,可以为其增加新的交换分区。

使用 mkswap 命令工具可以在指定的分区上创建交换文件系统,目标分区应先通过fdisk 工具将 ID 号设为 82。例如,执行以下操作可以将分区/devisdb5 创建为交换分区。在这里插入图片描述在这里插入图片描述
对于新增加的交换分区,需要使用 swapon 命令进行启用,反之使用 swapoff 命令停用指定的交换分区。例如,以下操作分别展示了启用、停用交换分区/devsdb5 的过程,以及总交换空间的变化情况。在这里插入图片描述

挂载,卸载文件系统

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

  1. 挂载文件系统

mount 命令的基本使用格式如下:在这里插入图片描述
其中,文件系统类型通常可以省略(由系统自动识别),存储设备即对应分区的设备文件名(如/dev/sdb1、/dev/cdrom)或网络资源路径,挂载点即用户指定用于挂载的目录。例如,以下操作用于将光盘设备挂载到/media/cdrom 目录。在这里插入图片描述
——光盘对应的设备文件通常使用"/dev/cdrom",其实这是一个链接文件,链接到实际的光盘设备"/dev/sr0”。使用这两个名称都可以表示光盘设备。由于光盘是只读的存储介质,因此在挂载时系统会出现“mounting read-only"的提示信息。
——挂载 Linux 分区或U盘设备时的用法也一样,只需要指定正确的设备位置和挂载目录即可。例如,以下操作用于将 5.1.2 节建立的/dev/sdb1 分区挂载到新建的/mailbox 目录下。在这里插入图片描述
在 Linux 操作系统中,U盘设备被模拟成 SCSI 设备,因此与挂载普通 SCSI 硬盘中的分区没有明显区别,U 盘一般使用 FAT16 或 FAT32的文件系统。若不确定U盘设备文件的位置,可以先执行“fdisk-“命令进行査看、确认。例如,以下操作会将位于/dev/sdc1的U盘设备挂载到新建的/media/usbdisk目录下。在这里插入图片描述
使用不带任何参数或选项的 mount命令时,将显示当前系统中已挂载的各个分区(文件系统)的相关信息,最近挂载的文件系统将显示在最后边。
在这里插入图片描述在这里插入图片描述
上例中,proc、sysfs、tmpfs 等文件系统是 Linux 运行所需要的临时文件系统,并没有实际的硬盘分区与其相对应,因此也称为"伪文件系统”。例如,proc 文件系统实际上映射了内存及 CPU 寄存器中的部分数据。
mount 命令的“-t"选项用于指定文件系统类型,而“-0"选项则用来描述设备或文件系统的挂载方式,基本使用格式如下:在这里插入图片描述

  1. 卸载文件系统

需要卸载文件系统时使用的命令为umount,使用挂载点目录或对应设备的文件名作为卸载参数。Linux操作系统中,由于同一个设备可以被挂载到多个目录下,所以一般建议通过挂载点的目录位置来进行卸载。例如,执行以下操作将分别卸载前面挂载的 Linux 分区、光盘设备。
在这里插入图片描述

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

系统中的/etc/fstab 文件可以视为 mount 命令的配置文件,其中存储了文件系统的静态挂载数据。Linux操作系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。默认的fstab 文件中包括了根分区、/boot 分区、交换分区挂载配置。执行如下命令可以查看当前系统内自动挂载的设备或分区。在这里插入图片描述
在/etc/fstab 文件中,每一行记录对应一个分区或设备的挂载配置信息,这些信息从左到右包括六个字段(使用空格或制表符分隔),各部分的含义如下所述。
第1字段:设备名或设备卷标名。
第2字段:文件系统的挂载点目录的位置,
第3字段:文件系统类型,如XFS、Swap等。
第 4字段:挂载参数,即 mount命令“-0"选项后可使用的参数。例如,defaults、mw、ro、noexec 分别表示默认参数、可写、只读、禁用执行程序。
第5字段:表示文件系统是否需要 dump 备份(dump 是一个备份工具)。一般设为1时表示需要,设为0时将被 dump 忽略。
第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2 表示其次检查。根分区应设为1,其他分区设为2。
——通过在/etc/fstab 文件中添加相应的挂载配置,可以实现开机后自动挂载指定的分区。

  1. 查看磁盘使用情况

不带选项及参数的 mount 命令可以显示分区的挂载情况,若要了解系统中已挂载各文件系统的磁盘使用情况(如剩余磁盘空间比例等),可以使用f命令。
df命令使用文件或者设备作为命令参数,较常用的选项为"-h"和"-T"。其中,"-h"选项可以显示更易读的容量单位,而“-T"选项用于显示对应文件系统的类型。例如,执行"df -hT
命令可以查看当前系统中挂载的各文件系统的磁盘使用情况,具体操作如下:在这里插入图片描述

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值