在使用云服务器或 VPS 时,厂商提供的“数据盘”通常需要手动初始化才能使用。如果直接往系统里塞数据,很快就会撑爆系统盘导致服务宕机。
本文将带你走完查看、分区、格式化、挂载、持久化的完整磁盘配置流程。
🛠️ 磁盘配置工作流
1️⃣ 探视:确认新硬盘身份
在动刀之前,先确认新硬盘的设备名称。
1 | lsblk |
- vda/sda:通常是系统盘(System Disk)。
- vdb/sdb:通常是新加的数据盘(Data Disk)。如果它的
MOUNTPOINT为空,说明它还没被派上用场。
2️⃣ 操刀:创建磁盘分区
对于全新的磁盘,我们需要通过分区表告诉系统如何利用这段空间。
1 | sudo fdisk /dev/vdb |
交互命令说明:
- 输入
n:新建分区(New)。 - 输入
p:选择主分区(Primary)。 - 回车 x2:起始和结束扇区均选择默认值,即分配全部空间。
- 输入
w:将修改写入磁盘(Write)并退出。
3️⃣ 洗礼:格式化文件系统
分区完成后,系统会出现 /dev/vdb1。我们需要把它格式化为 Linux 最常用的 ext4(或高性能的 xfs)格式。
1 | sudo mkfs.ext4 /dev/vdb1 |
⚠️ 高能预警:此操作会擦除该分区所有数据!请务必确认操作的是正确的分区。
4️⃣ 定居:创建挂载点并挂载
在 Linux 中,硬盘必须挂载到一个具体的目录(文件夹)才能访问。
1 | # 1. 创建挂载目标目录 |
5️⃣ 恒久:配置开机自动挂载
如果仅执行上面的 mount,机器重启后硬盘会再次消失。我们需要修改 /etc/fstab。
🚀 进阶推荐:使用 UUID 挂载
设备名(如 /dev/vdb1)在多次插拔硬盘后可能会变,但 UUID 是唯一的。
获取 UUID:
1
2sudo blkid /dev/vdb1
# 输出:/dev/vdb1: UUID="xxxx-xxxx-xxxx" TYPE="ext4" ...编辑系统配置:
1
sudo nano /etc/fstab
添加配置行:
在末尾添加(用你查到的实际 UUID 替换):1
UUID=你的UUID /data ext4 defaults,nofail 0 2
nofail:如果硬盘意外损坏或丢失,系统仍能正常启动,不会卡在开机自检界面。
6️⃣ 验核:确保配置无误
修改完 fstab 后,千万不要直接重启! 先进行测试:
1 | sudo umount /data # 先卸载 |
如果 df -h 重新看到了 /data,说明配置完美。
💡 运维小贴士
- 分流存储:挂载成功后,记得修改 Docker 的
data-root路径或 MySQL 的存储目录到/data,让系统盘保持清爽。 - 扩容注意:如果是云服务商提供的“在线扩容”,分区和挂载步骤会有所不同,通常需要使用
resize2fs来调整文件系统大小。 - 定期巡检:定期通过
smartctl(如果支持)检查硬盘健康度,数据安全大于一切。
🎉 总结
挂载硬盘是 Linux 运维的必经之路。掌握了 UUID 挂载法,你就已经超越了 80% 的新手,避开了系统因磁盘变动而无法启动的深坑。
你会选择将哪些服务迁移到新硬盘上?欢迎分享你的分区的方案!