第1章:初识Linux系统——第10节:磁盘管理
管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照用途进行定义:"development"和"sales",而不是使用物理磁盘名"sda"和"sdb"。扩展分区下可以包含更多的逻辑分区,也就是说主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的。随着学院学生的增多,服务器的存储需求在增加,为此,IT协会的学生在服务器上安装了一块SCS
目录
一、Linux环境下的设备

盘的分区由主分区、扩展分区和逻辑分区组成,其中主分区(包括扩展分区)的最大个数是4个。主分区(包含扩展分区)的个数由硬盘的主引导记录MBR决定的,MBR存放启动管理程序(GRUB)和分区表记录。其中扩展分区也算一个主分区;扩展分区下可以包含更多的逻辑分区,也就是说主分区(包括扩展分区)范围是从1-4,逻辑分区是从5开始的。
二、设备的使用
1.磁盘分区
(1) fdisk
fdisk是传统的linux硬盘分区工具,也是linux最长使用的分区工具之一。
- fdisk [options] <disk> 修改分区表
- fdisk [options] -l <disk> 显示指定磁盘设备的分区表信息。
- fdisk -s <partition> 显示分区的大小。
使用命令“fdisk 设备名”,就可以进入fdisk程序的交互模式,在交换模式中可以通过输入fdisk程序所提供的指令如表6-2所示,通过相应指令完成相应的操作。

(2)parted
parted [选项]... [设备 [命令 [参数]...]...]
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行。
- -h, --help:显示此求助信息
- -l, --list:列出所有设别的分区信息
- -i, --interactive:在必要时,提示用户
- -s, --script:从不提示用户
- -v, --version:显示版本
交互模式下使用的操作命令:
- mkpart 分区类型 [文件系统类型] 起始点 终止点 #创建一个分区
- mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区
- print [MINOR] #打印分区表,或者分区
- quit #退出程序


2.使用mkfs创建文件系统
语法:mkfs [-V] [-t 文件系统] [存储设备]
功能:在特定的分区上建立 linux 文件系统。(格式化)
只有创建完文件系统后,此分区才能存取文件。 device :预备检查的硬盘分区,如:/dev/sda1。
- -V : 详细显示模式。
- -t : 给定文件系统类型,默认为ext2。
- -c : 在建立文件系统前,检查该分区是否有坏道。
常见的文件系统类型有以下几种:
- ext3/ext4/xfs:这些是linux系统中使用最多的文件系统
- swap:用于linux磁盘交换分区的特殊文件系统。
- vfat:扩展的dos文件系统(fat32),支持长文件名。
- msdos:dos、windows和os/2使用该文件系统。
- nfs:网络文件系统。
- smbfs/cifs:支持smb协议的网络文件系统。
- iso9660:cd-rom的标准文件系统。
3.gpt分区表类型是否有扩展分区
GPT 分区表类型没有扩展分区,这是 GPT 和传统 MBR 分区表的核心区别之一。
(1)关键区别与原因
-
MBR 分区表的扩展分区设计目的MBR 存在 4 个主分区 的数量限制,为了突破这个限制,才引入了扩展分区 + 逻辑分区的机制:
- 最多创建 3 个主分区 + 1 个扩展分区
- 扩展分区本身不能直接使用,需在其中划分多个逻辑分区
-
GPT 分区表的优势(无需扩展分区)GPT 从设计上就解决了 MBR 的限制,因此不需要扩展分区:
- 分区数量无硬性限制:理论上支持无限个分区,受操作系统限制(如 Linux 默认支持 128 个主分区)
- 所有分区均为主分区:GPT 中没有 “扩展分区”“逻辑分区” 的概念,所有创建的分区都是主分区,可直接格式化并挂载使用
- 更大的磁盘支持:GPT 支持超过 2TB 的磁盘,而 MBR 最大仅支持 2TB
(2)补充说明
- 查看磁盘分区表类型可使用命令:
lsblk -d -o NAME,TYPE,PTTYPE或gdisk -l /dev/sda - GPT 还带有 GUID 分区唯一标识,配合
lsblk -f看到的 UUID,能更稳定地挂载分区
(3)MBR 与 GPT 分区表核心参数对比表


4.lsblk 命令的核心功能
lsblk 是 list block devices 的缩写,其核心作用是列出系统中所有的块设备信息。
块设备是指以 “块” 为单位进行数据读写的硬件设备,常见的有硬盘(sda、sdb)、固态硬盘、U 盘、分区(sda1、sda2)、光驱等。
该命令默认输出的信息包括:
- NAME:设备名称(如
sda表示第一块 SCSI 硬盘,sda1表示该硬盘的第一个分区) - MAJ:MIN:设备的主设备号和次设备号(系统识别设备的标识)
- RM:是否为可移动设备(
1是可移动,如 U 盘;0是不可移动,如内置硬盘) - SIZE:设备容量大小
- RO:是否为只读设备(
1只读,0可读写) - TYPE:设备类型(
disk表示磁盘,part表示分区,rom表示光驱等) - MOUNTPOINT:设备的挂载点(若未挂载则为空)
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238.5G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
├─sda2 8:2 0 20G 0 part /
└─sda3 8:3 0 217.9G 0 part /home
sdb 8:16 1 14.9G 0 disk
└─sdb1 8:17 1 14.9G 0 part /mnt/usb
(1)lsblk -f 选项的作用
-f 是 filesystem 的缩写,该选项用于显示块设备的文件系统相关信息,补充默认输出中没有的文件系统细节。
使用 lsblk -f 会额外展示以下关键信息:
- FSTYPE:设备的文件系统类型(如
ext4、xfs、ntfs、vfat等) - LABEL:文件系统的卷标(自定义的设备标识)
- UUID:文件系统的唯一标识符(系统挂载时常用 UUID,比设备名更稳定)
- MOUNTPOINT:挂载点(和默认输出一致,若未挂载则为空)
NAME FSTYPE FSVER LABEL UUID MOUNTPOINT
sda
├─sda1 vfat FAT32 1234-ABCD /boot/efi
├─sda2 ext4 1.0 a1b2c3d4-1234-5678-90ab-cdef01234567 /
└─sda3 xfs b2c3d4e5-6789-0abc-def1-23456789abcd /home
sdb
└─sdb1 vfat FAT32 USB c3d4e5f6-2345-6789-abcd-0123456789ef /mnt/usb
(2)常用组合选项
-l:以列表形式输出(非树形结构),便于脚本解析-p:显示设备的完整路径(如/dev/sda而非sda)lsblk -flp:同时显示文件系统信息、列表格式、完整路径
5.fsck
语法:fsck [选项] 设备名
功能:fsck命令主要用于检查文件系统的正确性。并对Linux磁盘进行修复。
- -t:给定文件系统类型。
- -s:一个一个地执行fsck命令进行检查。
- -C:显示完整的检查进度。
- -a:如果检查中发现错误,则自动修复。
- -r:如果检查有错误,询问是否修复。
6.文件系统挂载
Linux对一块磁盘进行分区和格式化后,只有将分区挂载在系统目录树中的某个挂载点后,才能供用户使用。
(1)mount
语法:mount [选项] [设备] [挂载点]
功能:将设备挂载到挂载点处,设备是指要挂载的设备名称,挂载点是指文件系统中已经存在的一个目录名。
- -t <文件系统类型>:指定文件系统的类型,通常不必指定,mount 会自动选择正确的类型。
- -a:挂载/etc/fstab文件中记录的设备。
- -o <参数>:主要用来描述设备或档案的挂载方式。
常用的参数有:
- loop:用来把一个文件当成硬盘分区挂载上系统。
- ro:采用只读方式挂载设备。
- rw:采用读写方式挂载设备。
- iocharset:指定访问文件系统所用字符集。
注意:(2选1)推荐②
①挂载之前应先用“fdisk –l”或“more /proc/partitions”查看系统的硬盘和硬盘分区情况。
②在之前需要查看,命令:df -Th
(2) umount
对于已经挂在的设备,如果不使用了,可以卸载掉。
语法:umount [选项] [挂载点]或[设备名]
功能:将使用mount命令挂载的文件系统卸载。
如: [root@localhost ~]# umount /dev/cdrom 或 [root@localhost ~]# umount /mnt
(3)自动挂载
fstab (file system table) 是一个纯文本文件,开机后,系统会自动搜索该文件中的内容,对与该文件中的文件系统进行自动挂载。虽然用户可以使用mount命令来挂载一个文件系统,但是,若将挂载信息写入/etc/fstab文件中,当系统启动时,就会自动将指定的文件系统挂载到指定的目录。

7.其他的磁盘命令
(1) df
功能:检查文件系统的磁盘空间占用情况,利用该命令来获取磁盘被占用了多少空间,目前还剩下多少空间。显示磁盘空间的使用情况包括文件系统安装的目录名、块设备名、总字数节、已用字数节、剩余字数节数、挂载点等。
(2) du
功能:统计目录(或文件)所占磁盘空间的大小,显示磁盘空间的使用情况。该命令逐级进入指定目录的每一个子项目并显示该目录占用文件系统数据块(1024B)的情况,若没有给出Nnames,则对当前目录进行统计显示目录或文件所占磁盘空间大小。
8.文件系统的备份与还原
(1)dump
例1:将/home这个目录里面的东西备份成/tmp/user.bak文件,备份层级为0。并查看备份时间文件。
[root@localhost ~]#dump -0f /tmp/user.bak /home
[root@localhost ~]# cat /etc/dumpdates
(2)restore
例1:还原/home中的备份文件。
[root@localhost ~]#restore -f /tmp/user.bak /home
例2:查看备份文件中的内容。
[root@localhost ~]#restore -tf /tmp/user.bak
三.LVM管理
1.LVM的相关概念
LVM 是逻辑盘卷管理(Logical Volume Manager)的简称,它是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。通过LVM系统管理员可以轻松管理磁盘分区,如:将若干个磁盘分区连接为一个整块的卷组 (volumegroup),形成一个存储池。管理员可以在卷组上随意创建逻辑卷组(logicalvolumes),并进一步在逻辑卷组上创建文件系统。管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管理和分配,例如按照用途进行定义:"development"和"sales",而不是使用物理磁盘名"sda"和"sdb"。而且当系统添加了新的磁盘,通过LVM管理员就不必将磁盘的文件移动到新的磁盘上以充分利用新的存储空间,而是直接扩展文件系统跨越磁盘即可。
2.LVM的管理
-
(1) PE(Physical Extent,物理块):是 LVM 中最小的存储单元(默认 4MB),物理卷(PV)会被划分成多个 PE,后续存储数据的最小单位就是 PE。
-
(2) PV(Physical Volume,物理卷):是 LVM 的底层存储载体,可以是整块硬盘、硬盘分区或 RAID 设备,需通过
pvcreate命令初始化后才能用于 LVM。 -
(3) VG(Volume Group,卷组):是 LVM 的存储池,由一个或多个 PV 组成,相当于把多个物理存储设备 “合并” 成一个逻辑上的大磁盘,后续的逻辑卷(LV)从这里分配空间。
-
(4) LV(Logical Volume,逻辑卷):是 LVM 的最终可用存储单元,从 VG 中划分出来,可直接格式化、挂载使用(相当于传统的 “分区”),且能动态扩展 / 缩小容量。
简单说:LVM 的逻辑是 “物理设备→PV→VG→LV→文件系统”,这四个概念是实现动态磁盘管理的核心。
1. PV(物理卷)操作
- 创建 PV:
pvcreate /dev/sdb1 /dev/sdc1(初始化磁盘 / 分区为 PV) - 查看 PV:
pvdisplay(详细信息)/pvs(简洁信息) - 删除 PV:
pvremove /dev/sdb1(需先从 VG 中移除)
2. VG(卷组)操作
- 创建 VG:
vgcreate vg_data /dev/sdb1 /dev/sdc1(将 PV 加入卷组) - 扩展 VG:
vgextend vg_data /dev/sdd1(新增 PV 到 VG) - 查看 VG:
vgdisplay(详细)/vgs(简洁) - 删除 VG:
vgremove vg_data(需先删除 LV)
3. LV(逻辑卷)操作
- 创建 LV:
lvcreate -L 100G -n lv_data vg_data(从 vg_data 分配 100G) - 扩展 LV:
- 先扩展 LV:
lvextend -L +50G /dev/vg_data/lv_data - 再扩展文件系统(ext4):
resize2fs /dev/vg_data/lv_data
- 先扩展 LV:
- 查看 LV:
lvdisplay(详细)/lvs(简洁)
4. 其他常用操作
- 格式化 LV:
mkfs.ext4 /dev/vg_data/lv_data - 挂载 LV:
mount /dev/vg_data/lv_data /mnt/data
5.LVM系统中经常使用的命令如下表所示

四、xfs_growfs /dev/卷组名/逻辑卷名功能
这是针对XFS 类型文件系统的工具,作用是扩展已挂载的 XFS 文件系统容量—— 当通过 LVM 扩展了逻辑卷(LV)的空间后,需用该命令让 XFS 文件系统识别并使用新增的磁盘空间。
五、resize2fs /dev/卷组名/逻辑卷名功能
这是针对ext 系列文件系统(ext2/ext3/ext4)的工具,作用是扩展已挂载的 ext 类文件系统容量—— 在 LVM 扩展逻辑卷(LV)后,通过该命令让 ext 系列文件系统适配并使用新增的磁盘空间。

六、/etc/fstab
文件是什么配置:
/etc/fstab 是 Linux 系统的文件系统自动挂载配置文件,用于定义系统启动时需要自动挂载的存储设备(磁盘、分区、网络存储等)。
它的每一行对应一个挂载项,格式包含 6 个固定字段,示例如下:
UUID=xxxxxx /mnt/data ext4 defaults 0 2
各字段含义:
- 设备标识:存储设备的唯一标识(如 UUID、/dev/sda1)
- 挂载点:文件系统要挂载到的目录(如 /mnt/data)
- 文件系统类型:如 ext4、xfs、ntfs 等
- 挂载选项:如
defaults(默认权限)、ro(只读)等- 备份标记:
0= 不备份,1= 优先备份- 检查顺序:
0= 不检查,1= 优先检查(仅根分区用)、2= 后续检查
七、什么是磁盘容量硬/软限制?文件个数硬/软限制?
-
磁盘容量软限制:是 “警告阈值”—— 当用户 / 目录占用的磁盘容量超过该值时,系统会发出警告,但仍允许暂时继续写入(通常有宽限期)。
-
磁盘容量硬限制:是 “强制上限”—— 用户 / 目录占用的磁盘容量不能超过该值,达到后无法再写入新数据。
-
文件个数软限制:是文件数量的 “警告阈值”—— 当用户 / 目录的文件数量超过该值时,系统发出警告,但仍可暂时创建新文件(有宽限期)。
-
文件个数硬限制:是文件数量的 “强制上限”—— 用户 / 目录的文件数量不能超过该值,达到后无法再创建新文件。
八.RAID管理
RAID是独立冗余磁盘阵列Redundant Array of Independent Disks的简写。RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。
RAID分为硬RAID和软RAID。硬RAID通过磁盘阵列控制卡实现,采用dmraid 工具管理;软RAID基于Linux 的内核仿真磁盘阵列的功能实现,采用mdadm 工具管理。
1. 常见的RAID级别
- RAID 0 :它代表了所有RAID级别中最高的存储性能。没有数据冗余,没有数据校验的磁盘陈列。适用于对性能要求较高,而对数据安全不太在乎的领域,如图形工作站等。对于个人用户,RAID 0也是提高硬盘存储性能的绝佳选择。实现RAID 0至少需要两块以上的硬盘。
- RAID 1 :磁盘阵列中单位成本最高的。镜像磁盘阵列,具有最高的安全性,但只有一半的磁盘空间被用来存储数据。主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。实现RAID 1至少需要两块以上的硬盘。
- RAID 3 :以一个硬盘来存放数据的奇偶校验位 ,硬盘利用率得到了很大的提高,主要应用于那些写入操作较少,读取操作较多的应用环境,如数据库和web服务器等。实现RAID3至少需要三块硬盘。
- RAID 5:一种存储性能、数据安全和存储成本兼顾的存储解决方案。为系统提供数据安全保障,但保障程度要比Mirror低而磁盘空间利用率要比Mirror高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高。实现RAID5至少需要三块硬盘。
2.创建软 RAID
(1)首先准备若干类型为“fd”的分区。
(2)创建并启用软RAID设备
语法:mdadm --create|-C <raid设备> [其他选项] <需要加入的RAID磁盘>
功能:创建MD设备。
- -l LEVEL|--level=LEVEL:指定RAID级别,如:0、1、5
- -n N|--raid-devices=N:指定组成RAID的设备数量。
- -x M|--spare-devices=M:指定备用的附加设备数量。
- -a yes|--auto=yes:自动重建MD设备文件。
- v|--verbose:显示详细地创建过程。
(3)为软RAID设备创建文件系统。
九.磁盘配额
磁盘配额是一种磁盘空间的管理机制,使用磁盘配额可限制用户或组在某个特定文件系统中所能使用的最大空间。磁盘限额可以限制用户或组可以拥有的inode数(即文件个数) 或者限制分配给用户或组的磁盘空间。配额必须由 root 用户或者有 root 权限的用户启用和管理。
1.为什么要进行磁盘配额
核心是合理管控磁盘资源,保障系统存储稳定有序:
- 避免单个用户、应用或目录过度占用磁盘,导致其他用户 / 服务因空间不足无法运行;
- 实现多用户 / 多服务环境下的存储资源公平分配;
- 降低磁盘空间耗尽引发的系统异常、服务中断等风险。

2.实现磁盘配额的步骤
(1) 启动系统的磁盘配额功能;
编辑/etc/fstab文件,启用文件系统的quota挂装选项。
(2)创建quota配额文件;
quotacheck:扫描支持磁盘配额的分区,并建立磁盘配额文件。 [root@localhost ~] # quotacheck [-afuvg] [挂载点]
- -a:扫描所有支持磁盘配额的分区,使用此选项后不必再使用挂载点。
- -u:针对用户扫描文件与目录的使用情况,会建立aquota.user文件。
- -g:针对用户组扫描文件与目录的使用情况,会建立aquota. group文件。
- -v:显示扫描过程的信息。
- -f:强制扫描。
(3)设置用户和组群的磁盘配额;
edquota:更改指定用户或用户组的磁盘配额。
[root@localhost ~]# edquota [-u用户J[-g用户组]
(4)启动磁盘限额功能。
①quotaon:启用用户和用户组配额功能。
[root@localhost ~]# quotaon [-avug] [挂载点]
- -a:扫描所有支持磁盘配额的分区,使用此选项后不必再使用挂载点。
- -u:针对用户开启磁盘配额。
- -g:针对用户组开启磁盘配额。
- -v:显示扫描过程的信息。
②quotaoff:关闭用户和用户组配额功能,该命令选项与“quotaon"命令相同。
[root@ localhost ~]# quotaoff [-avug] [挂载点]
③repquota:查看磁盘配额。
[root@ localhost ~]# repquota
-a|挂载点[-vug] -a:显示所有支持磁盘配额分区的使用情况,使用此选项后不必再使用挂载点。
-u;显示用户的磁盘配额。
-g:显示用户组的磁盘配额。
-v:输出所有的磁盘配额使用情况。
十、RAID5创建
随着学院学生的增多,服务器的存储需求在增加,为此,IT协会的学生在服务器上安装了一块SCSI的硬盘,为了保证服务器上数据的安全性,将存放数据的磁盘分区设置为RAID5,以实现磁盘容错。具体要求为:
(1) 新增加的硬盘为/dev/sdc;
(2) 创建扩展分区,在此基础上划分大小都为1GB,分区类型为fd的逻辑分区;
(3) 利用4个分区组成RAID5;
(4) 1个分区为热备分区,其大小为1GB;
(5) 将RAID5挂载到/raid目录下。



更多推荐



所有评论(0)