Solución:
Encontré esta forma más sencilla de resolver este problema:
-
Instale este complemento:
vagrant plugin install vagrant-disksize
-
Edite el
Vagrantfile
:Vagrant.configure('2') do |config| ... config.vm.box = 'ubuntu/xenial64' config.disksize.size="50GB" ... end
-
vagrant halt && vagrant up
- Nota: esto no funcionará con
vagrant reload
- Nota: esto no funcionará con
Personalmente, creo que será más fácil conectar un disco duro virtual adicional y montarlo en un punto de montaje adecuado, por ejemplo /opt
y mueva sus cosas usando rsync
para solucionar este problema, después de todo, las cajas de títeres vagabundos son para fines de prueba.
Razón por qué: VBoxManage modifyhd
solo funciona con imagen VDI nativa. Sin embargo, las cajas base vagabundas se exportan básicamente OVF / OVA utilizando VMDK
formato.
Ver documentos de VirtualBox
los
--resize x
La opción (donde x es el nuevo espacio total deseado en megabytes) le permite cambiar la capacidad de una imagen existente; esto ajusta el tamaño lógico de un disco virtual sin afectar mucho el tamaño físico.[37] Actualmente, esto solo funciona para los formatos VDI y VHD, y solo para las variantes asignadas dinámicamente, y solo se puede usar para expandir (no reducir) la capacidad.
Para aumentar la capacidad del disco para Vagrant Base Box
Los pasos son
-
Para poder cambiar el tamaño del HDD, primero deberá convertirlo a VDI, p. Ej.
VBoxManage clonehd in.vmdk out.vdi --format VDI
y luego vuelva a adjuntarlo (usar la GUI es más fácil). -
Cambiar el tamaño usando
VBoxManage modifyhd box.vdi --resize 15360
lo que aumenta la capacidad a 15 GB. -
Sin embargo, esto solo cambia la capacidad de la unidad, luego tendrá que expandir el sistema de archivos para el invitado. Por ejemplo, use
resize2fs -p -F DEVICE
para ext {3,4}.
Automáticamente agregué el disco en mi Vagrantfile:
Vagrant.configure("2") do |config|
...
file_to_disk = File.realpath( "." ).to_s + "/disk.vdi"
if ARGV[0] == "up" && ! File.exist?(file_to_disk)
puts "Creating 5GB disk #{file_to_disk}."
vb.customize [
'createhd',
'--filename', file_to_disk,
'--format', 'VDI',
'--size', 5000 * 1024 # 5 GB
]
vb.customize [
'storageattach', :id,
'--storagectl', 'SATA Controller',
'--port', 1, '--device', 0,
'--type', 'hdd', '--medium',
file_to_disk
]
...
config.vm.provision "shell", path: "scripts/add_new_disk.sh"
...
end
Donde el add_new_disk.sh
El script de shell se ve así:
set -e
set -x
if [ -f /etc/disk_added_date ]
then
echo "disk already added so exiting."
exit 0
fi
sudo fdisk -u /dev/sdb <<EOF
n
p
1
t
8e
w
EOF
pvcreate /dev/sdb1
vgextend VolGroup /dev/sdb1
lvextend /dev/VolGroup/lv_root
resize2fs /dev/VolGroup/lv_root
date > /etc/disk_added_date
Este script es para una caja centos 6.4, pero podría adaptarse fácilmente a ubuntu.
En lugar de agregar un disco, otras opciones incluyen:
- usando una caja con un disco más grande como opscode bento que tiene discos de 40 Gb
- construya su propia caja usando packer. Puede utilizar las definiciones del empaquetador de cajas de código de operación como punto de partida