在 CentOS 7 系统管理中,磁盘分区与挂载是一项基础且至关重要的技能,它不仅关系到系统存储空间的合理规划,还直接影响数据的安全性、系统的性能以及后续的维护管理,无论是为新添加的硬盘分配空间,还是为了将数据与系统分离以实现独立备份,掌握分区挂载的流程都是每一位系统管理员的必修课,本文将详细介绍在 CentOS 7 环境下,如何对一块新磁盘进行分区、格式化、挂载并设置开机自动挂载的完整过程。
准备工作
在开始操作之前,请确保您具备以下条件:
- 拥有 root 权限:所有磁盘分区和挂载操作都需要管理员权限。
- 已添加新磁盘:在虚拟机或物理机上已经安装了一块新的、尚未使用的硬盘,本文将以
/dev/sdb
为例进行说明。
您可以使用 lsblk
或 fdisk -l
命令来查看当前系统已识别的磁盘设备。
lsblk
该命令会以树状结构列出所有块设备,您可以很容易地识别出新的磁盘,它通常没有挂载点,并且大小符合您新添加的硬盘。
分区与挂载的详细步骤
整个过程可以分解为五个核心步骤:识别磁盘、创建分区、格式化分区、创建挂载点、挂载分区并实现开机自动挂载。
创建分区
我们将使用 fdisk
工具来对新磁盘 /dev/sdb
进行分区。fdisk
是一个功能强大且经典的交互式分区工具。
启动
fdisk
对目标磁盘进行操作:fdisk /dev/sdb
进入
fdisk
交互界面后,按照提示输入命令:- 输入
n
创建一个新分区。 - 输入
p
选择创建主分区。 - 输入分区号,直接按回车键使用默认的
1
。 - 输入起始扇区,直接按回车键使用默认值。
- 输入结束扇区,直接按回车键使用默认值,这将使用整个磁盘的空间。
- 输入
完成后,输入
w
将分区表写入磁盘并退出fdisk
。
操作完成后,系统会提示分区表已发生改变,您可以再次运行 lsblk
命令,此时应该能看到 /dev/sdb
下出现了一个新的分区,/dev/sdb1
。
格式化分区
新创建的分区还不能直接使用,需要为其指定一个文件系统,在 Linux 中,ext4
是最常用、最稳定的文件系统之一。
使用 mkfs
命令对 /dev/sdb1
分区进行格式化:
mkfs.ext4 /dev/sdb1
这个过程会根据分区大小持续一段时间,格式化完成后,该分区就具备了存储数据的能力。
创建挂载点
挂载点是系统中的一个目录,分区将“挂载”到这个目录上,之后对该目录的所有读写操作实际上都是在操作对应的分区。
我们会根据用途在根目录下创建挂载点,例如用于存放数据可以创建 /data
目录。
mkdir /data
请确保创建的目录是空的,否则挂载后其原有内容将被暂时隐藏。
挂载分区
使用 mount
命令将格式化好的分区 /dev/sdb1
挂载到刚刚创建的 /data
目录。
mount /dev/sdb1 /data
挂载成功后,可以使用 df -hT
命令来验证,在输出结果中,您应该能看到 /dev/sdb1
已经挂载在了 /data
上,并显示了其文件系统类型、总大小、已用空间等信息。
实现开机自动挂载
通过 mount
命令进行的挂载是临时的,系统重启后会失效,为了让分区在每次开机后自动挂载,需要修改 /etc/fstab
文件。
获取分区的 UUID:使用设备名称(如
/dev/sdb1
)进行挂载存在风险,因为设备名可能会在重启后发生变化,推荐使用分区的 UUID(Universally Unique Identifier)进行标识,它是固定不变的。blkid /dev/sdb1
该命令会输出分区的 UUID,请将其复制下来,格式类似
UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef"
。编辑 /etc/fstab 文件:使用文本编辑器(如
vi
或nano
)打开/etc/fstab
文件,在文件末尾添加一行记录。vi /etc/fstab
格式如下:
UUID=<您复制的UUID> /data ext4 defaults 0 0
UUID="a1b2c3d4-e5f6-7890-1234-567890abcdef" /data ext4 defaults 0 0
这行记录各字段的含义分别是:
<设备>
:要挂载的设备,这里使用 UUID。<挂载点>
:挂载到的目录。<文件系统类型>
:分区的文件系统,这里是ext4
。<挂载选项>
:defaults
包含了rw
,suid
,dev
,exec
,auto
,nouser
,async
等常用选项,适用于大多数场景。<dump>
:设置为0
,表示不使用 dump 备份。<pass>
:设置为0
,表示开机时不进行磁盘检查。
测试 /etc/fstab 配置:在重启前,可以执行
mount -a
命令,该命令会读取/etc/fstab
文件并挂载所有未挂载的条目,如果没有报错,说明配置正确。
至此,新磁盘的分区、格式化、挂载及开机自动挂载已全部完成。
核心命令速查表
命令 | 用途 | 示例 |
---|---|---|
lsblk | 列出所有块设备 | lsblk |
fdisk /dev/sdX | 对指定磁盘进行分区操作 | fdisk /dev/sdb |
mkfs.ext4 /dev/sdX# | 将指定分区格式化为 ext4 文件系统 | mkfs.ext4 /dev/sdb1 |
mkdir /mount/point | 创建挂载点目录 | mkdir /data |
mount /dev/sdX# /mount/point | 手动挂载分区到指定目录 | mount /dev/sdb1 /data |
blkid /dev/sdX# | 查看分区的 UUID | blkid /dev/sdb1 |
vi /etc/fstab | 编辑开机自动挂载配置文件 | vi /etc/fstab |
mount -a | 根据 /etc/fstab 挂载所有未挂载的文件系统 | mount -a |
相关问答FAQs
问题1:MBR 和 GPT 分区方案有什么区别?我应该选择哪一个?
解答: MBR(Master Boot Record)和 GPT(GUID Partition Table)是两种不同的分区表方案。
- MBR:较老的方案,支持最多 4 个主分区(或 3 个主分区 + 1 个扩展分区),且只能管理不超过 2TB 的磁盘,它在传统的 BIOS 启动模式下兼容性极好。
- GPT:较新的方案,是 UEFI 启动标准的一部分,它几乎没有分区数量限制(Windows 系统支持最多 128 个),并且能够管理远超 2TB 的大容量磁盘,GPT 在分区表末尾和开头都有备份,数据更安全。
选择建议:对于所有现代操作系统和新购买的硬盘,强烈推荐使用 GPT,除非您需要与非常古老的、仅支持 BIOS 的系统兼容,否则 GPT 在容量、安全性和灵活性上都全面优于 MBR,在 CentOS 7 中,fdisk
默认使用 MBR,而 parted
或 gdisk
工具则更适合创建和管理 GPT 分区。
问题2:如何卸载一个正在使用的分区?
解答: 卸载分区使用 umount
命令,基本语法是 umount <挂载点|设备名>
,umount /data
或 umount /dev/sdb1
。
如果分区正在被某个进程使用(有用户正在访问该目录下的文件),系统会提示 “target is busy” 错误,拒绝卸载,您需要找到并终止占用该分区的进程。
- 查找占用进程:可以使用
lsof
或fuser
命令。-
lsof /data
:列出所有正在使用/data
目录下文件的进程。 -
fuser -mv /data
:显示正在使用/data
文件系统的进程。
-
- 终止进程:根据上一步查找到的进程 ID(PID),使用
kill -9 <PID>
命令强制终止进程。 - 重新卸载:进程终止后,再次执行
umount /data
命令即可成功卸载。
在生产环境中,建议先温和地通知用户停止相关操作,再使用 kill <PID>
(不带 -9
)尝试正常终止进程,只有在无法正常终止时才使用 kill -9
。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复