我在 VirtualBox 4.2.4 的动态 VDI 磁盘上运行 Ubuntu 12.04,限制设置为 8GB,实际的 ext4 分区上有超过 40GB 的可用空间。但是,VDI 不会扩展到限制。8GB 足以满足我的需要。
我如何才能释放剩余空间?/ 和 .home 中的可用空间为 41kb。
答案1
VirtualBox 动态磁盘未利用可用磁盘空间来自动扩大分区
这篇文章是为在 Virtualbox 6.1.6 上运行的 Ubuntu Server 18.04 客户操作系统编写的。
我认为这个问题的正确描述应该是这样的:
“尽管创建了一个 32GB 的动态磁盘,但操作系统分区在 4GB 左右时会显示“磁盘已满”消息,并且无法利用 32GB 动态磁盘中的“可用”28GB 自动增加其大小。”
如果你遇到了这个问题,并且你使用 Ubuntu Linux 和 LVM(以及 EXT4 文件系统)设置了客户操作系统,那么解决这个问题的方法是使用lvextend和调整2fs大小命令。请参阅下面的解决方案和说明:
启动虚拟机并登录。登录后,打开终端。
显示有关的信息已分配磁盘存储:
$
df -h
文件系统大小已使用可用使用率%安装在
udev上966M 0 966M 0% /dev
tmpfs 200M 1.1M 199M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 3.9G 2.9G 835M 78% /
tmpfs 997M 0 997M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 997M 0 997M 0% /sys/fs/cgroup
/dev/loop0 97M 97M 0 100% /snap/core/9436
/dev/loop1 97M 97M 0 100% /snap/core/9665
/dev/sda2 976M 212M 697M 24% /boot
tmpfs 200M 0 200M 0% /run/user/1000
输出显示根分区(/)的大小为 3.9G,已使用 2.9G(78%)。
显示块设备的信息:
$
lsblk
名称 MAJ:MIN RM 大小 RO 类型 挂载点
loop0 7:0 0 96.5M 1 循环 /snap/core/9436
loop1 7:1 0 97M 1 循环 /snap/core/9665
sda 8:0 0 32G 0 磁盘
═─sda1 8:1 0 1M 0 部分
═─sda2 8:2 0 1G 0 部分 /boot
└─sda3 8:3 0 31G 0 部分
└─ubuntu--vg-ubuntu--lv 253:0 0 4G 0 lvm /
sr0 11:0 1 1024M 0 rom
输出显示块设备 sda 的物理大小为 32GB。它包含 3 个分区(sda1、sda2 和 sda3)。挂载在 sda3 逻辑卷上的根分区 (/) 仅分配了 4GB 存储空间。这意味着仍有大约 27GB 的未分配(免费)我们可以使用它来增加 LVM 逻辑卷的存储。
显示块设备上的文件系统信息:
$
lsblk --fs
名称 FSTYPE 标签 UUID 挂载点
loop0 squashfs /snap/core/9436
loop1 squashfs /snap/core/9665
sda
═─sda1
═─sda2 ext4 7cafee4a-d300-4b17-957d-c822c73882fc /boot
└─sda3 LVM2_member GwPZus-EMpD-BgZw-e1Nx-Fd9J-LLeN-XnbvEE └─ubuntu--vg-ubuntu--lv ext4 dcc015b4-b6b8-4e05-9a18-93c263cc05ed /
sr0输出显示 lvm 根分区的文件系统是 ext4。
显示物理卷的信息:
$
sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 ubuntu-vg lvm2 a-- <31.00g <27.00g$
sudo pvdisplay
--- 物理卷 --- PV 名称 /dev/sda3
VG 名称 ubuntu-vg
PV 大小 <31.00 GiB / 不可用 0
可分配 是
PE 大小 4.00 MiB
总 PE 7935
可用 PE 6911 已
分配 PE 1024
PV UUID GwPZus-EMpD-BgZw-e1Nx-Fd9J-LLeN-XnbvEE输出提供了 LVM PV sda3 上已分配/未分配空间的另一个视角。
显示卷组的信息:
$
sudo vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 1 1 0 wz--n- <31.00g <27.00g$
sudo vgdisplay
--- 卷组 --- VG 名称 ubuntu-vg
系统 ID
格式 lvm2 元
数据区域 1 元数据
序列号 2
VG 访问 读/写
VG 状态 可调整
大小 最大 LV 0
当前 LV 1
打开 LV 1
最大 PV 0
当前 PV 1
活动 PV 1
VG 大小 <31.00 GiB
PE 大小 4.00 MiB
总 PE 7935
分配 PE / 大小 1024 / 4.00 GiB
可用 PE / 大小 6911 / <27.00 GiB
VG UUID vBmSeb-VWR8-7A8n-CBSa-UnKd-FmJG-LTtMUG输出显示 VG 大小与 PV 大小相同(31GB),并且有 27GB 未分配的可用存储空间来扩展逻辑卷。
显示逻辑卷的信息:
$
sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% 移动日志 Cpy% 同步转换
ubuntu-lv ubuntu-vg -wi-ao---- 4.00g$
sudo lvdisplay
--- 逻辑卷 ---
LV 路径 /dev/ubuntu-vg/ubuntu-lv
LV 名称 ubuntu-lv
VG 名称 ubuntu-vg
LV UUID pnvBcu-FnfT-c3RY-cYCE-AuMX-f833-57WvYi
LV 写入权限 读/写
LV 创建主机,时间 ubuntu-server,2020-07-01 00:00:58 +0000
LV 状态可用
#open 1
LV 大小 4.00 GiB
当前 LE 1024
段 1
分配继承预
读扇区自动
- 当前设置为 256
块设备 253:0输出显示 LV 大小为 4GB。由于 VG 大小为 31GB,我们可以将 LV 再增加 27GB。
7a. 要使用 50% (13GB) 的可用未分配空间来增加逻辑卷 (ubuntu-lv),首先执行以下操作:
$ sudo lvextend -l+50%free /dev/ubuntu-vg/ubuntu-lv
Size of logical volume ubuntu-vg/ubuntu-lv changed from 4.00 GiB (1024 extents) to 17.50 GiB (4480 extents).
Logical volume ubuntu-vg/ubuntu-lv successfully resized.
The output shows that the logical volume has grown from 4GB to 17.5GB (approximately 13GB).
7b. 最后,为了让 EXT4 文件系统知道扩展存储,运行命令:
$ sudo resize2fs /dev/ubuntu-vg/ubuntu-lv
resize2fs 1.44.1 (24-Mar-2018)
Filesystem at /dev/ubuntu-vg/ubuntu-lv is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/ubuntu-vg/ubuntu-lv is now 4587520 (4k) blocks long.
显示有关的信息已分配再次磁盘存储检查新的磁盘存储空间:
$
df -h
文件系统大小已使用可用使用率%安装在
udev上966M 0 966M 0% /dev
tmpfs 200M 1.1M 199M 1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv 18G 2.9G 14G 18% /
tmpfs 997M 0 997M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 997M 0 997M 0% /sys/fs/cgroup
/dev/loop0 97M 97M 0 100% /snap/core/9436
/dev/loop1 97M 97M 0 100% /snap/core/9665
/dev/sda2 976M 212M 697M 24% /boot
tmpfs 200M 0 200M 0% /run/user/1000输出显示逻辑卷的大小现已增长到 18GB(从之前的 4GB)
答案2
我通过在 Windows 7 主机上设置路径以包含 VirtualBox 安装目录来修复我的 VirtualBox 机器(步骤):
- 点击开始按钮
- 右键点击计算机
- 单击“属性”
- 单击“高级系统设置”
- 在[高级]选项卡上单击[环境变量]按钮
- 在系统变量下,向下滚动到路径并单击[编辑]
- 将引号中的所有内容添加到行尾“;C:\Program Files\Oracle\VirtualBox\”
- 点击[确定]
接下来移动到 VirtualBox 磁盘的目录(在 username\VirtualBox VMs 下),取自(https://forums.virtualbox.org/viewtopic.php?f=7&t=52351)
- 打开 cmd 并移至 VirtualBox 驱动器
- 输入此命令:VBoxManage showhdinfo
- 记下磁盘的 UUID。
- 输入此命令:VBoxManage modifiedhd UUID_of_the_VDI_disk --resize 80000(这会使磁盘变为 80 GB,请调整为所需的大小)
重要步骤从这里开始: 接下来在 LiveCD(安装磁盘)上启动虚拟机(取自使用未分配的空间扩展 Ubuntu 分区大小(交换位于这两者之间))
我再强调一下:
强烈建议在执行调整大小/移动/扩展操作之前备份所有重要文件。
操作方法是删除交换分区,扩展所需的分区,然后重新创建交换分区。
仅当关闭交换后才可以删除交换分区:
关闭 SWAP: sudo /sbin/swapoff -a 打开 SWAP: sudo /sbin/swapon -a
步骤:
- 从 Ubuntu LiveCD 启动
- 打开终端,然后关闭交换
- 安装 GParted
- 扩展所需的分区,但要留出交换空间
- 提交更改
- 创建交换分区
- 打开交换
注意:如果你的交换分区不是主硬盘,请参阅 SwapFaq 了解如何激活交换分区
强烈建议在执行调整大小/移动/扩展操作之前备份所有重要文件。
答案3
在虚拟机中运行 Ubuntu Gnome 15.04 的 Ubuntu 15.04 上也遇到了同样的问题。似乎尽管它是“动态分配的存储”,但 VirtuaBox 并没有增加它,而我的存储量已降到最后 100MB,它不允许我通过软件更新进行更新。解决方案是通过终端执行更新。
sudo apt-get upgrade
这似乎迫使 VirtualBox 创建额外的存储空间,更新开始后,可用存储空间就增加到 500MB。
答案4
这似乎与虚拟磁盘的增长无关,因为您应该会收到来自 VirtualBox 的错误消息,告诉您它无法为虚拟磁盘分配更多磁盘空间。
一些想法:
- 您是否在虚拟机中使用了特殊的分区方案?
- 你的虚拟机中的结果是什么
df -h
? - 您可以使用它
baobab
来搜索哪些内容占用了您的所有/
空间。