有沒有辦法讓我檢查 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 警告)