Saltar al contenido

¿Cómo puedo aumentar el tamaño del disco en una máquina virtual Vagrant?

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

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

  1. 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).

  2. Cambiar el tamaño usando VBoxManage modifyhd box.vdi --resize 15360 lo que aumenta la capacidad a 15 GB.

  3. 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
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *