有没有什么方法可以让我检查 Vagrant Box 的磁盘大小,最好是在下载/使用它之前?
理想情况下,我想去Vagrant Box 搜索页面并且能够在我的 Vagrantfile 中使用它之前查看磁盘大小。
否则,我至少想看看磁盘大小后下载盒子。例如
$ vagrant box list -i
hashicorp/bionic64 (virtualbox, 1.0.282) <--- show disk size here
minimal/xenial64 (virtualbox, 16.04.2)
现在都是反复试验。我必须实际创建一个虚拟机并df
在其中运行才能查看磁盘有多大。
vagrant@minimal-xenial:~$ df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/minimal--xenial--vg-root 57G 731M 53G 2% /
vagrant@minimal-xenial:~$
(为什么“最小”盒子会创建 60G 磁盘?我相信 xenial64 可以轻松容纳 20G)
答案1
当 vagrant 将盒子下载到其内部存储时,您可以轻松检查每个盒子占用了多少空间。Vagrant 将盒子存储在~/.vagrant.d/boxes
每个盒子的子目录中。
- Mac OS X 和 Linux:
~/.vagrant.d/boxes
- 视窗:
C:/Users/USERNAME/.vagrant.d/boxes
然而,这并没有说明启动一个盒子实例时它们将使用多少额外空间。也没有说明下载盒子之前的大小。
由创建盒子的人来设置所需的尺寸等。
看这里:https://www.vagrantup.com/docs/boxes/base
另请参阅此处:https://stackoverflow.com/questions/10155708/where-does-vagrant-download-its-box-files-to
答案2
Virtualbox 特定答案
作为其他答案说,Vagrant 将盒子下载到<unix-or-windows-path>/.vagrant.d/boxes
。
如果您的 Vagrant 提供程序之一是 Virtualbox,并且您感兴趣的盒子支持 Virtualbox,您可以使用该VBoxManage showmediuminfo
命令获取有关 Virtualbox 磁盘介质的更多详细信息。例如:
$ VBoxManage showmediuminfo ~/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-focal64/20240306.0.0/virtualbox/ubuntu-focal-20.04-cloudimg.vmdk
UUID: 081ca5d3-d839-4a43-94fc-2e146c76b3dc
Parent UUID: base
State: inaccessible
Access Error: UUID {00000000-0000-0000-0000-000000000000} of the medium '/home/villapx/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-focal64/20240306.0.0/virtualbox/ubuntu-focal-20.04-cloudimg.vmdk' does not match the value {081ca5d3-d839-4a43-94fc-2e146c76b3dc} stored in the media registry ('/home/villapx/.config/VirtualBox/VirtualBox.xml')
Type: normal (base)
Location: /home/villapx/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-focal64/20240306.0.0/virtualbox/ubuntu-focal-20.04-cloudimg.vmdk
Storage format: VMDK
Format variant: dynamic streamOptimized
Capacity: 40960 MBytes
Size on disk: 581 MBytes
Encryption: disabled
您可以在此处看到磁盘大小为 40960 MB。
(请注意,我不能说我理解该命令正在打印的 UUID 警告)