![如何增加 Ubuntu 16.04 LTS Virtualbox VM 上的磁盘大小分配](https://linux22.com/image/1508016/%E5%A6%82%E4%BD%95%E5%A2%9E%E5%8A%A0%20Ubuntu%2016.04%20LTS%20Virtualbox%20VM%20%E4%B8%8A%E7%9A%84%E7%A3%81%E7%9B%98%E5%A4%A7%E5%B0%8F%E5%88%86%E9%85%8D.png)
我使用 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 分配给此计算机的磁盘。在正常使用中,虚拟机无法从主机“窃取”资源。