在管理 CentOS 服务器的过程中,随着数据量的增长或业务需求的变更,我们常常需要为服务器增加额外的存储空间,对于 VPS(虚拟专用服务器)而言,这通常意味着挂载一块新的虚拟硬盘,本文将详细、清晰地介绍在 CentOS 系统中挂载新硬盘的完整流程,从识别硬盘到实现开机自动挂载,确保每一步都易于理解和操作。
第一步:识别新硬盘
在挂载之前,我们首先需要知道系统识别到了哪块新硬盘,CentOS 提供了多种工具来查看磁盘信息,lsblk
是最直观和推荐使用的命令。
打开终端,输入以下命令:
lsblk
该命令会以树状结构列出所有可用的块设备,输出结果可能如下所示:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 19.5G 0 part
├─centos-root 253:0 0 17.5G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 50G 0 disk
在这个例子中:
sda
是系统盘,包含了/boot
分区和 LVM 卷。sdb
是我们新增的硬盘,大小为 50G,它下面没有任何分区(part
)或挂载点(MOUNTPOINT
),这就是我们需要操作的硬盘,您的硬盘名称可能是/dev/vdb
、/dev/xvdb
等,这取决于 VPS 提供商使用的虚拟化技术,但识别方法是相同的。
第二步:对新硬盘进行分区
新添加的硬盘是一块“空白”的原始空间,我们需要对其进行分区才能创建文件系统,这里我们使用经典的 fdisk
工具。
假设我们的新硬盘是 /dev/sdb
,执行以下命令开始分区:
fdisk /dev/sdb
进入 fdisk
的交互式界面后,按照以下步骤输入命令:
- 输入
n
创建一个新分区。 - 输入
p
选择创建主分区。 - 输入分区号,直接按回车键使用默认的
1
。 - 输入起始扇区,直接按回车键使用默认值。
- 输入结束扇区,直接按回车键使用默认值,这将使用整个硬盘的空间。
- 输入
p
打印分区表,确认我们创建的分区/dev/sdb1
信息无误。 - 输入
w
将分区表写入硬盘并退出fdisk
。
操作完成后,系统会提示分区表已更新,此时再次运行 lsblk
,你将看到 /dev/sdb
下面多出了一个 sdb1
分区。
第三步:格式化分区
分区创建后,还需要为其指定一个文件系统,ext4
,这是 Linux 系统中最常用、最稳定的文件系统之一。
使用 mkfs.ext4
命令来格式化刚刚创建的分区 /dev/sdb1
:
mkfs.ext4 /dev/sdb1
这个过程会持续几秒到几十秒,具体取决于硬盘大小。格式化操作会清除分区上的所有现有数据,请确保操作的是正确的分区。
第四步:创建挂载点并挂载
文件系统创建完毕后,我们需要在系统中创建一个目录作为“入口”,也就是挂载点,然后将新分区挂载到这个目录上。
创建挂载点:我们选择在根目录下创建一个名为
data
的目录。mkdir /data
执行挂载操作:使用
mount
命令将分区挂载到目录。mount /dev/sdb1 /data
验证挂载结果:使用
df -hT
命令可以查看当前已挂载的文件系统及其详细信息。df -hT
在输出中,你应该能看到一行关于
/dev/sdb1
的记录,它挂载在/data
目录,文件系统类型为ext4
,至此,硬盘已经成功挂载,你可以开始向/data
目录写入数据了。
第五步:设置开机自动挂载
当前的挂载是临时的,服务器重启后会失效,为了让系统能在每次启动时自动挂载这块硬盘,我们需要修改 /etc/fstab
文件。
/etc/fstab
是 Linux 系统中用于定义文件系统静态信息的配置文件,为了防止因设备名变化(例如在某些情况下 /dev/sdb
可能变成 /dev/sdc
)导致挂载失败,我们推荐使用分区的 UUID(通用唯一标识符)来代替设备名。
获取分区的 UUID:
blkid /dev/sdb1
输出结果类似于:
/dev/sdb1: UUID="a1b2c3d4-e5f6-7890-abcd-ef1234567890" TYPE="ext4"
,请复制这串 UUID。编辑 fstab 文件:
vi /etc/fstab
在文件末尾添加一行,格式如下:
UUID=<你的UUID> /data ext4 defaults 0 0
将
<你的UUID>
替换为上一步中获取的实际 UUID,这行配置的含义是:使用这个 UUID 对应的分区,将其挂载到/data
目录,文件系统类型为ext4
,使用默认挂载选项,不进行备份,不进行磁盘检查。测试 fstab 配置:在重启前,最好先测试一下配置文件是否有误,执行
mount -a
命令,系统会尝试挂载fstab
中所有未挂载的条目,如果没有报错,说明配置正确。mount -a
完成以上所有步骤后,新的硬盘就已经被正确地挂载到 CentOS 系统中,并配置为开机自动挂载,可以永久使用了。
步骤 | 操作命令 | 说明 |
---|---|---|
识别硬盘 | lsblk | 查看所有块设备,找到新增的硬盘(如 /dev/sdb)。 |
硬盘分区 | fdisk /dev/sdb | 进入交互模式,创建主分区(如 /dev/sdb1)。 |
格式化分区 | mkfs.ext4 /dev/sdb1 | 将新分区格式化为 ext4 文件系统。 |
创建挂载点 | mkdir /data | 创建一个用于挂载的目录。 |
挂载分区 | mount /dev/sdb1 /data | 将分区临时挂载到指定目录。 |
获取UUID | blkid /dev/sdb1 | 获取分区的唯一标识符,用于 fstab 配置。 |
配置开机挂载 | vi /etc/fstab | 添加 UUID=... /data ext4 defaults 0 0 行。 |
测试配置 | mount -a | 测试 fstab 文件是否正确,避免重启后无法开机。 |
相关问答FAQs
问题1:我的新硬盘设备名是 /dev/vdb
而不是 /dev/sdb
,这有什么区别吗?操作步骤一样吗?
解答: 没有本质区别,操作步骤完全一样,设备名的前缀不同通常是由于 VPS 提供商采用的虚拟化技术不同导致的。sd
前缀(如 sda, sdb)通常用于模拟 SCSI/SATA 磁盘,而 vd
前缀(如 vda, vdb)是 VirtIO 驱动的命名方式,后者在虚拟化环境中性能通常更好,无论设备名是什么,您只需在所有命令中将 /dev/sdb
替换为您的实际设备名(/dev/vdb
)即可,整个分区、格式化、挂载的逻辑和命令都是通用的。
问题2:如果我有一块存有重要数据的旧硬盘,想挂载到新的 CentOS 服务器上,是否需要跳过分区和格式化步骤?
解答: 是的,必须跳过! 分区(fdisk
)和格式化(mkfs.ext4
)是破坏性操作,它们会创建新的分区表和文件系统,从而导致硬盘上原有的所有数据被永久清除,对于存有数据的旧硬盘,正确的流程是:
- 识别硬盘:使用
lsblk
找到这块旧硬盘。 - (可选)检查文件系统:如果不确定文件系统类型,可以使用
blkid
查看。 - 创建挂载点:
mkdir /old_data
。 - 直接挂载:使用
mount
命令直接挂载,mount /dev/sdb1 /old_data
。 - 配置 fstab:同样使用
blkid
获取其 UUID,并将其添加到/etc/fstab
中以实现开机自动挂载。
只有处理全新的、空白的硬盘时才需要进行分区和格式化。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复