Ubuntu 22.04 虚拟机中添加新硬盘并扩容存储空间

本文内容由 AI 辅助生成,已经人工审核和编辑。

在日常运维工作中,硬盘空间的不足是常见的问题之一,尤其是在虚拟机环境中,硬盘扩展和存储管理尤为重要。本文将介绍如何在 Ubuntu 22.04 虚拟机中添加新硬盘并扩容当前存储空间的步骤,涵盖硬盘添加、分区、格式化、挂载及扩展现有文件系统等操作。

场景背景

假设我们有一台 Ubuntu 22.04 Desktop 虚拟机,由于数据增长,硬盘空间不足导致系统性能下降,甚至部分服务无法正常运行。此时,扩展存储空间成为了必须的任务。以下步骤将帮助你在不丢失数据的情况下,通过增加新硬盘扩容虚拟机的存储空间。


步骤 1:添加虚拟硬盘

  1. 关闭虚拟机
    首先,确保虚拟机处于关闭状态,以便我们进行硬件调整。无论是使用 VMware、VirtualBox、KVM 还是其他虚拟化平台,都可以通过管理界面来添加新的硬盘。

  2. 添加新的虚拟硬盘
    在虚拟化平台的设置界面中,选择虚拟机并进入硬件配置。添加一个新的虚拟硬盘(通常为 .vmdk.vdi 文件),设置你需要的硬盘容量。例如,我们可以为虚拟机分配 100GB 的额外存储空间。

  3. 启动虚拟机
    硬盘添加完成后,启动虚拟机,准备后续的操作。


步骤 2:识别新硬盘

在 Ubuntu 系统中,我们使用 fdisk 命令来查看新硬盘是否被系统识别。

  1. 查看新硬盘
    打开终端,输入以下命令查看磁盘信息:

    sudo fdisk -l
    

    你应该看到新硬盘被列为 /dev/sdb(或者类似名称,具体根据你的虚拟化环境而定)。


步骤 3:分区和格式化新硬盘

  1. 分区新硬盘
    使用 fdisk 对新硬盘进行分区操作。假设新硬盘为 /dev/sdb,执行以下命令:

    sudo fdisk /dev/sdb
    

    然后执行以下步骤:

    • 输入 n 创建新分区。

    • 输入 p 选择主分区。

    • 按照默认选项,设置分区的大小。

    • 输入 w 保存并退出。

  2. 格式化新硬盘
    分区完成后,我们需要格式化分区。在这里,我们使用 ext4 文件系统,当然也可以使用 xfs 或其他文件系统:

    sudo mkfs.ext4 /dev/sdb1
    

    如果你使用的是 xfs,命令会是:

    sudo mkfs.xfs /dev/sdb1
    

步骤 4:挂载新硬盘

  1. 创建挂载点
    挂载新硬盘之前,我们需要创建一个挂载目录。例如,创建一个挂载点 /mnt/newdisk

    sudo mkdir /mnt/newdisk
    
  2. 挂载新硬盘
    将新硬盘挂载到这个目录:

    sudo mount /dev/sdb1 /mnt/newdisk
    
  3. 验证挂载
    使用以下命令查看硬盘是否成功挂载:

    df -h
    

    你应该能够看到 /mnt/newdisk 目录下的新硬盘空间。


步骤 5:扩展现有文件系统

如果你的目标是扩展现有的根分区(如 /)的存储空间,而不是挂载新硬盘,可以选择使用 LVM 或扩展现有分区。以下是基于 LVM 的操作示例。

1. 扩展 LVM 逻辑卷

假设你在 Ubuntu 系统中已经使用了 LVM 管理存储,以下是扩展 LVM 逻辑卷的步骤:

  1. 查看现有 LVM 配置
    运行以下命令查看现有的物理卷、卷组和逻辑卷:

    sudo pvscan   # 查看物理卷
    sudo vgscan   # 查看卷组
    sudo lvscan   # 查看逻辑卷
    
  2. 将新硬盘添加到 LVM
    假设新硬盘为 /dev/sdb1,可以将它添加到现有的卷组(例如 ubuntu-vg):

    sudo pvcreate /dev/sdb1
    sudo vgextend ubuntu-vg /dev/sdb1
    
  3. 扩展逻辑卷
    假设要扩展的逻辑卷是 /dev/ubuntu-vg/root,执行以下命令:

    sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
    
  4. 扩展文件系统
    执行以下命令扩展文件系统:

    • 对于 ext4 文件系统:

      sudo resize2fs /dev/ubuntu-vg/root
      
    • 对于 xfs 文件系统:

      sudo xfs_growfs /dev/ubuntu-vg/root
      

2. 扩展传统分区

如果没有使用 LVM,你将需要调整分区表。这通常涉及到使用 gpartedparted 工具来调整分区大小,可能需要删除现有的分区并重新创建它们,因此这类操作需谨慎进行,建议先进行完整的备份。


步骤 6:配置自动挂载

为了确保在系统重启后新硬盘能够自动挂载,我们需要将其添加到 /etc/fstab 文件中。

  1. 编辑 /etc/fstab
    打开并编辑 /etc/fstab 文件:

    sudo nano /etc/fstab
    
  2. 添加挂载项
    在文件末尾添加以下行,确保每次重启后新硬盘都能自动挂载:

    /dev/sdb1  /mnt/newdisk  ext4  defaults  0  2
    
  3. 保存并退出


步骤 7:验证配置

  1. 重启虚拟机
    重启虚拟机并验证新硬盘是否在重启后自动挂载。

  2. 使用 df -h 检查磁盘使用情况
    你应该能够看到新硬盘被正确挂载,并且系统可以正常使用扩展的存储空间。


从阿里云到火山引擎:Rocky Linux 8.10 下 Halo 博客完整迁移实战 2026-04-07