GParted
是一款适用于 Linux
的图形化磁盘分区管理工具,通过它可以便捷地为 VMware
中的 Ubuntu Desktop
增大磁盘空间。然而你可能正在使用 Ubuntu Server
,并不想要安装或并不被允许安装图形化界面,本文介绍了如何在不使用 GParted
的情况下,通过命令行使用自带的工具为 VMware
中的 Ubuntu Server
增大磁盘空间。
请注意辨别磁盘空间是真的接近耗尽,而不是在系统安装时只真正使用了大约一半空间。参见 Ubuntu server 20.04 安装后没有分配全部磁盘空间
背景介绍 环境如下:
VMware® Workstation 17 Pro 17.5.0 build-22583795
Ubuntu 20.04.6 LTS (GNU/Linux 5.4.0-169-generic x86_64)
尽管最初按照心理预期为 Ubuntu Server
分配了 50G
的磁盘空间,主要用于运行一些 Docker
容器,但是不知不觉之间发现磁盘空间的占用率还是上升到了 90%
。一时之间想不到可以清理什么,决定先增大一些磁盘空间。
使用 df -h
命令显示文件系统的总空间和可用空间信息。可知 /dev/mapper/ubuntu--vg-ubuntu--lv
已使用 95%
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 3.0M 1.6G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 48G 43G 2.5G 95% / tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup vmhgfs-fuse 932G 859G 73G 93% /mnt/hgfs /dev/sda2 2.0G 209M 1.6G 12% /boot /dev/loop0 64M 64M 0 100% /snap/core20/2015 /dev/loop1 64M 64M 0 100% /snap/core20/2105 /dev/loop2 41M 41M 0 100% /snap/snapd/20290 /dev/loop3 92M 92M 0 100% /snap/lxd/24061 /dev/loop4 41M 41M 0 100% /snap/snapd/20671 tmpfs 1.6G 0 1.6G 0% /run/user/1000
解决步骤 调整虚拟磁盘大小
不论如何,需要先修改 VMware
的相关设置。
先将客户机 Ubuntu server
关机
然后通过“虚拟机设置 -> 硬盘 -> 扩展 -> 最大磁盘大小”将最大虚拟磁盘大小设置为目标值(50G -> 80G
)
根据提示可知,在 VMware
中的扩展操作仅增大虚拟磁盘的大小,分区和文件系统的大小不受影响。你必须从客户机操作系统内部对磁盘重新进行分区和扩展文件系统。
调整分区大小 分区管理
使用 sudo cfdisk
命令进入分区管理的交互式界面。可知可用空间为新增的 30G
。
使用上下方向键选择准备调整大小的分区 /dev/sda3
,使用左右方向键选择 Resize
操作。
输入新的分区大小,默认为原大小加上可用空间大小等于 78G
。
使用左右方向键选择 Write
操作,写入修改。然后输入 yes
确认。
提示分区表已改变。然后使用左右方向键选择 Quit
操作,退出分区管理的交互式界面。
退出时提示如下。
1 2 3 4 $ sudo cfdisk GPT PMBR size mismatch (104857599 != 167772159) will be corrected by write. Syncing disks.
调整物理卷大小
使用 sudo pvresize /dev/sda3
命令调整 LVM
中物理卷的大小。
1 2 3 $ sudo pvresize /dev/sda3 Physical volume "/dev/sda3" changed 1 physical volume(s) resized or updated / 0 physical volume(s) not resized
调整逻辑卷大小
使用 sudo fdisk -l
命令显示物理卷和逻辑卷的大小差异。在末尾可见 /dev/sda3
的大小为 78G
,/dev/mapper/ubuntu--vg-ubuntu--lv
的大小为 47.102G
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 $ sudo fdisk -l Disk /dev/loop0: 63.48 MiB, 66547712 bytes, 129976 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop1: 63.93 MiB, 67014656 bytes, 130888 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop2: 40.88 MiB, 42840064 bytes, 83672 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop3: 91.85 MiB, 96292864 bytes, 188072 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop4: 40.44 MiB, 42393600 bytes, 82800 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/fd0: 1.42 MiB, 1474560 bytes, 2880 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x90909090 Device Boot Start End Sectors Size Id Type /dev/fd0p1 2425393296 4850786591 2425393296 1.1T 90 unknown /dev/fd0p2 2425393296 4850786591 2425393296 1.1T 90 unknown /dev/fd0p3 2425393296 4850786591 2425393296 1.1T 90 unknown /dev/fd0p4 2425393296 4850786591 2425393296 1.1T 90 unknown Disk /dev/sda: 80 GiB, 85899345920 bytes, 167772160 sectors Disk model: VMware Virtual S Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 81C6F71E-C634-49E6-BC3D-9272C86326A4 Device Start End Sectors Size Type /dev/sda1 2048 4095 2048 1M BIOS boot /dev/sda2 4096 4198399 4194304 2G Linux filesystem /dev/sda3 4198400 167772126 163573727 78G Linux filesystem Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 47.102 GiB, 51535413248 bytes, 100655104 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
使用 sudo lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
命令调整逻辑卷的大小。
1 2 3 $ sudo lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv Size of logical volume ubuntu-vg/ubuntu-lv changed from <48.00 GiB (12287 extents) to <78.00 GiB (19967 extents). Logical volume ubuntu-vg/ubuntu-lv successfully resized.
调整文件系统大小
使用 sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
命令调整文件系统的大小。
1 2 3 4 5 $ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv resize2fs 1.45.5 (07-Jan-2020) Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required old_desc_blocks = 6, new_desc_blocks = 10 The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 20446208 (4k) blocks long.
使用 df -h
命令显示文件系统的总空间和可用空间信息。确认 /dev/mapper/ubuntu--vg-ubuntu--lv
的大小已调整为 77G
。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 3.1M 1.6G 1% /run /dev/mapper/ubuntu--vg-ubuntu--lv 77G 43G 31G 59% / tmpfs 7.8G 0 7.8G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup vmhgfs-fuse 932G 859G 73G 93% /mnt/hgfs /dev/sda2 2.0G 209M 1.6G 12% /boot /dev/loop0 64M 64M 0 100% /snap/core20/2015 /dev/loop1 64M 64M 0 100% /snap/core20/2105 /dev/loop2 41M 41M 0 100% /snap/snapd/20290 /dev/loop3 92M 92M 0 100% /snap/lxd/24061 /dev/loop4 41M 41M 0 100% /snap/snapd/20671 tmpfs 1.6G 0 1.6G 0% /run/user/1000
参考文章