如何增加 Ubuntu 16.04 LTS Virtualbox VM 上的磁盘大小分配

如何增加 Ubuntu 16.04 LTS Virtualbox VM 上的磁盘大小分配

我使用 virtualbox 创建了一个新的 Ubuntu 16.04 VM,并创建了一个固定大小的 20GB 单个 VDI 磁盘。在 Ubuntu 安装向导中,我选择接受所有默认分区和磁盘配置并完成安装。

一旦在虚拟机上运行,​​我开始安装和更新各种软件包,直到最后我收到一条错误消息,指出根空间不足。

当我检查磁盘使用情况分析器时,我发现尽管 VDI 磁盘预先分配了 20GB,但根分区的大小只有 5.3 GB。

  • 增加虚拟机上的根分区以便使用所有可用空间的最佳方法是什么?
  • 我如何确保它不会超过 VDI 磁盘总量 20GB?
  • 为什么查看系统“详细信息”时报告磁盘空间为 12.5 GB?

我尝试下载 gparted,但不幸的是它在 Ubuntu 16.04 上不再可用:

VirtualBox:~$ sudo apt-get install gparted
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package gparted

编辑:

df 的输出:

VirtualBox:~$ df
Filesystem                  1K-blocks    Used Available Use% Mounted on
udev                          4067824       0   4067824   0% /dev
tmpfs                          817540    9404    808136   2% /run
/dev/mapper/ubuntu--vg-root  11758232 5151864   5986032  47% /
tmpfs                         4087696   61000   4026696   2% /dev/shm
tmpfs                            5120       4      5116   1% /run/lock
tmpfs                         4087696       0   4087696   0% /sys/fs/cgroup
/dev/sda1                      482922  106763    351225  24% /boot
tmpfs                          817540      64    817476   1% /run/user/1000

lsblk 的输出

VirtualBox:~$ lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   20G  0 disk 
├─sda1                  8:1    0  487M  0 part /boot
├─sda2                  8:2    0    1K  0 part 
└─sda5                  8:5    0 19.5G  0 part 
  ├─ubuntu--vg-root   252:0    0 11.5G  0 lvm  /
  └─ubuntu--vg-swap_1 252:1    0    8G  0 lvm  [SWAP]
sr0                    11:0    1 1024M  0 rom  

更新日期:2016 年 9 月 27 日

我按照 user4556274 的指示操作,似乎有效,结果如下:

VirtualBox:~$ sudo swapoff -v /dev/ubuntu-vg/swap_1
[sudo] password for leigh: 
swapoff /dev/ubuntu-vg/swap_1
VirtualBox:~$ sudo lvm lvreduce /dev/ubuntu-vg/swap_1 -L -6G
  WARNING: Reducing active logical volume to 2.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce swap_1? [y/n]: y
  Size of logical volume ubuntu-vg/swap_1 changed from 8.00 GiB (2048 extents) to 2.00 GiB (512 extents).
  Logical volume swap_1 successfully resized.
VirtualBox:~$ sudo mkswap /dev/ubuntu-vg/swap_1
mkswap: /dev/ubuntu-vg/swap_1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2 GiB (2147479552 bytes)
no label, UUID=9f184d9a-f660-4a8d-965d-7abd6989b531
VirtualBox:~$ sudo swapon -va
swapon /dev/mapper/ubuntu--vg-swap_1
swapon: /dev/mapper/ubuntu--vg-swap_1: found swap signature: version 1d, page-size 4, same byte order
swapon: /dev/mapper/ubuntu--vg-swap_1: pagesize=4096, swapsize=2147483648, devsize=2147483648
VirtualBox:~$ sudo lvm lvextend -r -l +100%FREE /dev/ubuntu-vg/root
  Size of logical volume ubuntu-vg/root changed from 11.52 GiB (2949 extents) to 17.52 GiB (4485 extents).
  Logical volume root successfully resized.
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/mapper/ubuntu--vg-root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/mapper/ubuntu--vg-root is now 4592640 (4k) blocks long.

VirtualBox:~$ df
Filesystem                  1K-blocks    Used Available Use% Mounted on
udev                          4067824       0   4067824   0% /dev
tmpfs                          817540    9404    808136   2% /run
/dev/mapper/ubuntu--vg-root  17951716 5389732  11694420  32% /
tmpfs                         4087696     248   4087448   1% /dev/shm
tmpfs                            5120       4      5116   1% /run/lock
tmpfs                         4087696       0   4087696   0% /sys/fs/cgroup
/dev/sda1                      482922  106763    351225  24% /boot
tmpfs                          817540      76    817464   1% /run/user/1000
VirtualBox:~$ lsblk
NAME                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                     8:0    0   20G  0 disk 
├─sda1                  8:1    0  487M  0 part /boot
├─sda2                  8:2    0    1K  0 part 
└─sda5                  8:5    0 19.5G  0 part 
  ├─ubuntu--vg-root   252:0    0 17.5G  0 lvm  /
  └─ubuntu--vg-swap_1 252:1    0    2G  0 lvm  [SWAP]
sr0                    11:0    1 1024M  0 rom  

但是,当我检查磁盘使用情况分析器时,它仍然报告根共享存在问题,请参见下面的屏幕截图:

磁盘使用情况分析器屏幕截图

有任何想法吗?

答案1

您的 20 GB 虚拟磁盘被分为 3 个大分区:0.5 GB 用于/boot,11.5 GB 用于可见的主磁盘/,8 GB 用于交换分区(大概是由安装程序默认添加的,因为您已为该 VM 分配了 8 GB 的 RAM)。

如果您希望此系统中有 20 GB 的可用文件系统空间,您可以先分配一个 30 GB 的虚拟磁盘,这样在交换并/boot记账后将剩下 20 GB 多一点的空间。

另一方面,如果您确信系统可以在较少的交换量下正常运行,则可以减少交换量并扩展主 lvm 分区。 在修改任何机器上的分区表之前,请确保所有有价值的数据都已备份。

例如,要将交换分区减少到 2 GB 并将主 lvm 分区扩展至 17.5 GB,请执行以下操作。对照您自己的系统仔细检查所有路径,并阅读相关手册页;不要盲目复制粘贴此方法。

## turn off swap, reduce by 6 GB, reswap

$ sudo swapoff -v /dev/ubuntu-vg/swap_1
$ sudo lvm lvreduce /dev/ubuntu-vg/swap_1 -L -6G
$ sudo mkswap /dev/ubuntu-vg/swap_1
$ sudo swapon -va

## next add the space which has been free'd up to the primary lvm partition.
## the -r option should resize the filesystem on the partition to match the new partition size

$ sudo lvm lvextend -r -l +100%FREE /dev/ubuntu-vg/root

如何确保不会将其增加到超过 VDI 磁盘总量(即 20GB)

不用担心;在虚拟机中,您只能看到主机 VirtualBox 分配给此计算机的磁盘。在正常使用中,虚拟机无法从主机“窃取”资源。

相关内容