如何在 Hyper-V 上扩展 Ubuntu 20.04 LTS 文件系统卷

Jon*_*Roy 20 linux filesystems windows-server hyper-v ubuntu

我在 Hyper-V 上创建了一个 Ubuntu 20.04 LTS 虚拟机 (VM),现在磁盘空间不足,需要增加文件系统空间。

Kel*_*inh 26

我在 18.04 上尝试了现有的解决方案,发现它不适用于“无事可做”输出。一些进一步的搜索具有相似但略有不同的步骤,并且需要合并网络上其他解决方案的一些不同的零碎内容才能发挥作用。

设置:Hyper-V;VHDX文件作为硬盘;Ubuntu-18.04

脚步:

  1. 如现有解决方案中所述,通过 Hyper-V 扩展 VDHX 文件,然后在 VM 内扩展:

  2. fdisk -l

    查看当前 Ubuntu 设置是哪个分区 - 根据大小应该很明显(在我的例子中是 sda3)

  3. growpart /dev/sda 3

    请注意提到的空格。

  4. pvresize /dev/sda3

    这是很多地方都没有提到的步骤;它是允许逻辑卷扩展步骤工作的中间步骤。

  5. lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv

    /dev/部分可以在步骤 1 的 fdisk 输出中看到。

  6. resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

    完成上述准备工作后,这一步就可以进行了。需要一些时间,然后可以验证df -h分区是否已扩展。


Jon*_*Roy 18

这是我多次遇到的问题,我决定公开如何快速解决这个问题。

\n
    \n
  1. 在 Hyper-V 中,编辑虚拟机并进入 \xe2\x80\x9cHard Drive\xe2\x80\x9d
  2. \n
  3. 单击\xe2\x80\x9cEdit\xe2\x80\x9d,选择\xe2\x80\x9cExpand\xe2\x80\x9d并输入所需的大小
  4. \n
  5. 重新启动虚拟机
  6. \n
  7. 通过 SSH 进入虚拟机
  8. \n
  9. 运行sudo lvdisplay获取逻辑卷名称
  10. \n
  11. 运行sudo lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv以将卷扩展到可用的最大大小
  12. \n
  13. 运行df -h以查看文件系统可用空间的状态
  14. \n
  15. 获取目标文件系统的名称(通常是/dev/mapper/ubuntu--vg-ubuntu--lv
  16. \n
  17. 运行sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv以调整文件系统大小
  18. \n
  19. 再次运行df -h,您现在应该看到您的卷已扩展
  20. \n
\n

那\xe2\x80\x99就是它!重新启动可能不是一个坏主意。

\n

  • 您还可以使用 gparted GUI 工具来调整 ubunu 分区的大小 (3认同)
  • 这个答案缺少两个关键步骤: 在步骤 6 之前,需要扩展保存 LVM 物理卷的分区。然后,需要扩展物理卷(`pvresize`)。请参阅 Kelly Trinh 的回答。 (2认同)

小智 12

对我来说,sudo lvdisplay出于某种原因,不起作用并且没有返回任何内容。GParted也拒绝启动。

所以我必须寻找其他方法。以下是带来好运的因素:

  • 再次启动 VM 并安装 Guest Utils:
$ sudo apt install cloud-guest-utils
Run Code Online (Sandbox Code Playgroud)
  • 如果不使用英语,请覆盖区域设置以避免非英语区域设置出现问题:
$ LC_ALL=C
Run Code Online (Sandbox Code Playgroud)
  • 将分区扩展到可用空间:
$ sudo growpart /dev/sda 5
# NB: space between `partition` and `id`!
Run Code Online (Sandbox Code Playgroud)
  • 调整大小:
$ sudo resize2fs /dev/sda5
# NB: *no space* between partition and id!
Run Code Online (Sandbox Code Playgroud)