在 CentOS 7 系统中,硬盘管理是系统管理员一项至关重要的日常工作,无论是部署新的服务器、扩展现有存储容量,还是进行数据恢复,都离不开对硬盘的熟练操作,本文将系统性地介绍在 CentOS 7 环境下管理硬盘的核心知识,从基础概念到实战操作,旨在为读者提供一个清晰、全面的指南。

硬盘识别与基础概念
在对硬盘进行任何操作之前,首先需要让系统识别到它,并理解其命名规则和分区方案。
当一块新的物理硬盘连接到服务器后,CentOS 7 内核会为其分配一个设备文件,传统的 SATA/SAS/SCSI 硬盘通常被命名为 /dev/sda、/dev/sdb、/dev/sdc 等,a、b、c 代表系统检测到的顺序,而对于现代的 NVMe(Non-Volatile Memory Express)硬盘,命名规则则为 /dev/nvme0n1、/dev/nvme0n2 等。
要查看当前系统连接的所有存储设备及其分区情况,最常用且直观的命令是 lsblk。
lsblk
该命令会以树状结构展示设备名称、大小、类型以及挂载点,另一个传统但功能强大的命令是 fdisk -l,它会列出所有磁盘的详细分区表信息。
在分区之前,必须了解两种主流的分区表格式:MBR(Master Boot Record)和 GPT(GUID Partition Table),它们决定了硬盘如何被划分和管理。
| 特性 | MBR (主引导记录) | GPT (GUID 分区表) |
|---|---|---|
| 支持容量 | 最大 2TB | 理论上高达 18EB (1EB = 1024PB) |
| 分区数量 | 最多 4 个主分区,或 3 个主分区 + 1 个扩展分区(可含逻辑分区) | Windows 系统下最多 128 个分区,Linux 下理论上无限制 |
| 兼容性 | 较旧,兼容绝大多数旧式系统和 BIOS | 较新,需要 UEFI 固件支持(现代系统标配) |
| 冗余性 | 无,分区表和引导信息在一处,易损坏 | 在磁盘头部和尾部各存一份分区表备份,更安全 |
对于 CentOS 7 的新部署,尤其是在使用大容量硬盘时,强烈推荐使用 GPT 分区方案。
硬盘分区、格式化与挂载流程
完整地使用一块新硬盘通常包含三个步骤:分区、格式化和挂载,下面我们将以一块新硬盘 /dev/sdb 为例,演示整个流程。
第一步:分区
我们使用 parted 工具进行 GPT 分区,因为它比传统的 fdisk 更现代,对大容量硬盘和 GPT 支持更好。
启动 parted 并选择磁盘:
sudo parted /dev/sdb
进入
parted的交互模式。设置分区表类型为 GPT:
(parted) mklabel gpt
创建分区:
假设我们要将整块硬盘划分为一个分区,可以使用mkpart命令。
(parted) mkpart primary 0% 100%
这里
primary是分区名称,0%和100%表示使用磁盘的全部空间,你也可以指定具体大小,1MB 500GB。查看并退出:
(parted) print (parted) quit
print命令可以确认分区是否创建成功,退出后,系统会生成一个新的分区设备,/dev/sdb1。
第二步:格式化(创建文件系统)
分区完成后,它只是一个原始的空白区域,需要格式化为特定的文件系统才能存储数据,CentOS 7 默认和推荐的文件系统是 XFS,它在大文件和高并发 I/O 场景下性能优异。ext4 也是一个非常稳定和通用的选择。
使用 mkfs 命令进行格式化:
- 格式化为 XFS 文件系统:
sudo mkfs.xfs /dev/sdb1
- 格式化为 ext4 文件系统:
sudo mkfs.ext4 /dev/sdb1
第三步:挂载
格式化后的分区需要挂载到系统的一个目录(挂载点)上才能访问。
创建挂载点:
通常在/mnt或自定义目录(如/data)下创建。sudo mkdir -p /data
执行挂载:
sudo mount /dev/sdb1 /data
你就可以通过
/data目录访问这块新硬盘了,使用df -hT命令可以查看挂载结果和文件系统类型。实现开机自动挂载:
为了让系统重启后挂载依然生效,需要编辑/etc/fstab文件,推荐使用分区的UUID(通用唯一标识符)而不是设备名(如/dev/sdb1),因为设备名可能会在添加或删除硬盘时改变。获取分区的 UUID:
sudo blkid /dev/sdb1
输出可能类似:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" TYPE="xfs"
使用文本编辑器(如
vi)打开/etc/fstab,在文件末尾添加一行:UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /data xfs defaults 0 0的含义依次是:
<设备文件或UUID><挂载点><文件系统类型><挂载选项><是否备份><开机自检顺序>。添加后,可以执行
sudo mount -a命令来测试/etc/fstab文件是否有误,若无任何输出,则表示配置正确。
逻辑卷管理(LVM)简介
除了传统的分区管理方式,CentOS 7 还广泛支持逻辑卷管理,LVM 在硬盘分区和文件系统之间增加了一个抽象层,带来了极高的灵活性,它允许你轻松地调整分区大小、跨多个物理硬盘创建卷、以及创建快照进行备份,虽然配置相对复杂,但对于需要动态调整存储环境的生产服务器而言,LVM 是一个强大而可靠的解决方案。
相关问答 FAQs
我已经将新硬盘连接到服务器,但是使用 lsblk 命令看不到它,应该怎么办?
解答: 这种情况通常由以下几个原因导致,可以按顺序排查:
- 物理连接问题:首先检查硬盘的电源线和数据线(SATA/SAS/NVMe)是否插紧,对于热插拔硬盘,确保其已完全插入插槽。
- 系统未识别:在极少数情况下,内核可能没有自动扫描新的硬件,可以尝试手动重新扫描 SCSI 总线(适用于 SCSI/SATA 硬盘),通过
lsscsi或ls /sys/class/scsi_host/找到 host 的编号,然后执行echo "- - -" > /sys/class/scsi_host/hostX/scan(将hostX替换为实际的 host 编号)。 - 虚拟机环境:如果你在虚拟机中操作,请确保已在虚拟机设置中正确添加了新的虚拟硬盘,并且虚拟机已经关机再重启(某些虚拟化平台需要)以使硬件更改生效。
在 CentOS 7 中,我应该选择 XFS 还是 ext4 文件系统?它们有什么主要区别?
解答: 选择 XFS 还是 ext4 取决于你的具体应用场景。
- ext4:是第四代扩展文件系统,非常成熟、稳定,是多年来 Linux 的默认选择,它在处理大量小文件时表现良好,并且有大量的工具支持,修复工具(如
e2fsck)相对成熟,对于通用服务器、桌面环境或对稳定性要求极高且不涉及海量数据的应用,ext4 是一个安全可靠的选择。 - XFS:是一个高性能的日志文件系统,特别擅长处理大文件和高并发 I/O 负载,它支持的最大文件系统和文件尺寸远大于 ext4,XFS 的在线调整大小(仅支持扩大)和配额管理功能也非常强大,对于数据库服务器、视频流媒体、大数据分析或任何需要处理大文件和高吞吐量的场景,XFS 通常是更好的选择,CentOS 7 默认使用 XFS 也反映了其在现代企业应用中的优势。
如果你的应用是典型的 Web 服务、文件共享等,ext4 完全够用,如果你在构建高性能计算、数据库或虚拟化平台,优先考虑 XFS。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复