如何安全、循序渐进地增加 Linux 服务器的硬盘空间?
在 Linux 系统中扩展或增加磁盘空间是系统管理员、DevOps 工程师和服务器用户的常见任务,尤其是在数据库、日志或 AI 模型数据量增长的情况下。本指南将详细介绍如何操作。 步步 我们根据命令行解释了如何在不同的环境中(云数据中心中的虚拟机、专用服务器或本地虚拟机)增加磁盘空间。.
增加硬盘空间前的准备工作和安全提示
在对分区或 LVM 进行任何更改之前, 完整备份 或者拍个快照,以便在发生错误时可以恢复系统。.
“在对分区表、LVM 或文件系统进行更改之前,务必先进行有效的、可恢复的备份。”
初审的重要说明:
df -hlsblk -fblkidfdisk -l或者lsblk -o 名称、大小、类型、挂载点识别硬件
在云环境中,首先通过控制面板或 API 增加磁盘容量,然后在操作系统中执行相关操作。.
场景回顾——LVM 与非 LVM 及文件系统
整理各种情景有助于你选择正确的方法:
- 情景一: 磁盘空间增大, 大型资产管理 已使用(最常用于云服务器)。.
- 情景二: 扩展磁盘,但不包含 LVM(根分区包含文件系统) ext4 或者 XFS).
- 情景三: 增加单独分区(例如 /var 或 /home)的大小。.
笔记: 常见的文件系统包括: ext4, XFS 和 btrfs 没错。. ext4 可离线或在线调整大小; XFS 仅支持挂载模式下的生长。.
逐步指南:如何在 LVM 系统上增加硬盘空间
1. 从控制面板增加磁盘大小(针对虚拟机)
在云端或虚拟化面板中,增加磁盘大小(例如,从 50G 增加到 100G)。对于安装了 QEMU 的本地计算机,请使用以下命令:
qemu-img resize disk.img +50G2. 识别新设备
要查看设备的当前状态 lsblk 使用示例:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 100G 0 disk
└─vda1 252:1 0 40G 0 part /3. 在 Linux 系统中重新扫描设备
对于 SCSI/virtio:
echo 1 | sudo tee /sys/class/block/vda/device/rescan
# یا
sudo partprobe /dev/vda4. 对位于整个磁盘上的 PV 进行 pvresize
如果 PV 位于整个磁盘上(/dev/vdb),那就足够了:
sudo pvresize /dev/vdb
sudo pvs
sudo vgs5. 使用 growpart 扩展 PV 分区(例如 /dev/vda1)。
当 PV 位于分区内时,使用 growpart:
sudo apt install cloud-guest-utils
sudo growpart /dev/vda 1
sudo pvresize /dev/vda1
sudo lvdisplay
sudo lvextend -l +100%FREE /dev/mapper/vg0-root
# برای ext4:
sudo resize2fs /dev/mapper/vg0-root
# برای XFS:
sudo xfs_growfs /6. LVM 管理的关键命令
常用命令:
sudo pvs; sudo vgs; sudo lvs
sudo lvextend -r -l +100%FREE /dev/vg0/lv_root
# گزینه -r فایلسیستم را بهصورت خودکار resize میکند逐步指南:如何在非LVM(标准分区)系统上增加硬盘空间
1. 从控制面板增加磁盘空间并扫描系统内部
与 LVM 模式一样,首先从面板增加音量,然后执行重新扫描。.
2. 使用 growpart 和 resize2fs 处理 ext4 文件系统
对于根分区或任何分区 ext4:
sudo growpart /dev/vda 1
sudo resize2fs /dev/vda1第二个分区示例:
sudo growpart /dev/vda 2
sudo resize2fs /dev/vda2笔记: 如果 resize2fs 需要卸载,请使用单用户模式或 Live CD。.
3. XFS 扩展
为了 XFS 仅在挂载模式下可展开:
sudo growpart /dev/vda 1
sudo xfs_growfs /mountpoint
# معمولاً:
sudo xfs_growfs /4. 使用 parted/fdisk 修改分区表(谨慎操作)
如果需要删除并重新创建一个具有新大小的分区,请务必: 起始部门 保留并使用分区表备份。.
sudo parted /dev/vda
# در داخل parted:
print
rm 1
mkpart primary ext4 START 100%实际示例:在云端 Ubuntu 中扩展根目录
步骤示例:
- 在面板中:将磁盘从 40G 增加到 80G。.
- 在虚拟机内运行:
sudo lsblk
sudo growpart /dev/vda 1
# اگر LVM:
sudo pvresize /dev/vda1
sudo lvextend -r -l +100%FREE /dev/mapper/ubuntu--vg-root
# یا برای non-LVM:
sudo resize2fs /dev/vda1
# تایید:
df -h关于加密文件系统(LUKS)的说明
如果分区已加密,请先打开加密容器,然后再执行调整大小操作。.
sudo cryptsetup status cryptroot
sudo cryptsetup luksOpen /dev/vda1 cryptroot
# سپس:
sudo pvresize /dev/mapper/cryptroot
# یا برای فایلسیستم:
sudo resize2fs /dev/mapper/cryptroot如果在 LUKS 中使用 LVM,请执行 pvresize 操作。 /dev/mapper/cryptroot 完成,然后执行 lvextend。.
磁盘扩展后的性能和安全提示
表现: 对于 SSD/NVMe,请使用挂载选项,例如 没时间 和 nodiratime 使用方法(如有需要) 丢弃 考虑 TRIM。.
可持续性: 在 /etc/fstab 使用 UUID,这样更改设备名称就不会导致问题:
sudo blkid监控和警报: 建议安装并配置 Prometheus node_exporter 或监控工具,以便在有可用空间时发出警报。.
“限制 SSH 访问、使用 SSH 密钥以及定期备份是磁盘更换后确保安全的最佳实践。”
常见错误及解决方法
错误: “设备不包含可识别的分区表” — 检查是否已执行重新扫描,以及分区表是否正确 (fdisk -l)。.
错误: resize2fs 显示文件系统已挂载,需要检查 — 运行 e2fsck -f /dev/… 未挂载或单用户模式下。.
XFS: 请确保设置正确的挂载点。 xfs_growfs 你看,错误的挂载点会导致错误。.
应用特定案例——交易、游戏、人工智能、渲染
用于交易的VPS服务器: 需要日志空间和回测数据;建议使用 SSD 并每日创建快照。.
游戏服务器: 游戏和临时文件的空间很大;建议使用 NVMe 以减少 I/O 延迟。.
GPU/AI: 模型和数据集可能达到几十甚至几百GB;建议添加单独的磁盘并将其挂载到 /数据 或者使用精简版 LVM。.
渲染: 将临时文件和缓存文件保存在不同的磁盘上对于防止根目录被填满非常重要。.
结论和最终建议
一般步骤:从面板增加卷 → 在系统中重新扫描 → growpart/parted → pvresize 或 resize2fs/xfs_growfs → lvextend(在 LVM 的情况下)。.
务必做好备份,如有任何疑问,请联系公司支持部门或技术人员寻求帮助。在进行任何更改之前创建快照可以显著降低风险。.









