Ubuntu LVM 磁盘扩容指南:以 Hyper-V 为例

详细介绍如何在 Hyper-V 环境下为 Ubuntu 虚拟机扩展 LVM 磁盘空间

  • Hyper-V 虚拟机运行 Ubuntu 系统
  • 使用 LVM(Logical Volume Management)进行磁盘管理
  • 具有 root 或 sudo 权限

对于熟悉 LVM 的用户,以下是扩容的快速步骤:

  1. 检查当前分区:fdisk -l
  2. 启动分区工具:parted
  3. 扩展分区:resizepart,选择分区 3,输入 100%
  4. 扩展物理卷:pvresize /dev/sda3
  5. 扩展逻辑卷:lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
  6. 调整文件系统:resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
  7. 验证结果:df -h

首先查看文件系统使用情况:

bash

$ df -h
Filesystem                         Size  Used  Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv  3.9G  3.2G   489M  87% /
/dev/sda2                         976M   77M   833M   9% /boot
# ... 其他输出省略

查看详细的磁盘分区信息:

bash

$ sudo fdisk -l
Disk /dev/sda: 25 GiB, 26843545600 bytes, 52428800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: ED41F7A6-5D09-457B-A55C-C7F1E30DE419

Device      Start      End    Sectors  Size Type
/dev/sda1    2048     4095      2048    1M BIOS boot
/dev/sda2    4096  2101247   2097152    1G Linux filesystem
/dev/sda3 2101248 52426751  50325504   24G Linux filesystem
  1. 关闭虚拟机
  2. 打开 Hyper-V 管理器
  3. 选择目标虚拟机 → 设置
  4. 找到硬盘驱动器 → 编辑
  5. 选择"扩展"并输入新的大小
  6. 启动虚拟机

使用 parted 工具调整分区大小:

bash

$ sudo parted
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.

# 查看当前分区情况
(parted) print
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 26.8GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start   End     Size    File system  Name  Flags
1      1049kB  2097kB  1049kB               bios_grub
2      2097kB  1076MB  1074MB  ext4
3      1076MB  26.8GB  25.8GB

# 调整分区大小
(parted) resizepart
Partition number? 3
End? [26.8GB]? 100%

(parted) quit
  1. 扩展物理卷(PV):

    bash

    $ sudo pvresize /dev/sda3
    Physical volume "/dev/sda3" changed
    1 physical volume(s) resized
  2. 扩展逻辑卷(LV):

    bash

    $ sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
    Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB to 23.00 GiB.
    Logical volume ubuntu-vg/ubuntu-lv successfully resized.
  3. 调整文件系统大小:

    bash

    $ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
    resize2fs 1.44.1 (24-Mar-2018)
    Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 3
    The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 6029312 (4k) blocks long.

bash

$ df -h
Filesystem                         Size  Used  Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv   23G  3.2G    19G  15% /
/dev/sda2                         976M   77M   833M   9% /boot
# ... 其他输出省略
  1. 分区未显示新增空间

    • 检查 Hyper-V 设置中的磁盘大小是否正确更改
    • 确认虚拟机是否完全重启
  2. LVM 扩展失败

    • 确保 PV、VG 和 LV 的名称正确
    • 检查是否有足够的未分配空间
    • 查看系统日志获取详细错误信息
  3. 文件系统扩展失败

    • 确保文件系统支持在线调整
    • 检查文件系统是否有错误(使用 fsck)