<p>vagrant box add falla al descomprimir una caja grande</p>

Creado en 11 mar. 2018  ·  3Comentarios  ·  Fuente: hashicorp/vagrant

Versión vagabundo

Vagabundo 2.0.2

Sistema operativo host

macOS 10.11.6 y macOS 10.13.3

Sistema operativo invitado

macOS 10.11.6

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "suran/macos1011"
  config.vm.box_url = "http://download.suran.com/developer/macos1011-0.1.0.box"
  config.vm.box_download_checksum = "b1bb86a7b56bc9a29bc6066d78ae22a76061e158"
  config.vm.box_download_checksum_type = "sha1"
end

Salida de depuración

registro de depuración

Comportamiento esperado

La máquina está iniciada y accesible.

Comportamiento real

Ocurre un error:

There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["import", "/Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/box.ovf", "--vsys", "0", "--vmname", "macos1011_1520735715622_34133", "--vsys", "0", "--unit", "9", "--disk", "/Users/administrator/VirtualBox VMs/macos1011_1520735715622_34133/macos1011-disk001.vmdk"]

Stderr: 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interpreting /Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/box.ovf...
OK.
0%...
Progress state: VBOX_E_FILE_ERROR
VBoxManage: error: Appliance import failed
VBoxManage: error: Could not open the medium storage unit '/Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/macos1011-disk001.vmdk'.
VBoxManage: error: VMDK: error reading the magic number in '/Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/macos1011-disk001.vmdk' (VERR_EOF).
VBoxManage: error: VD: error VERR_VD_VMDK_INVALID_HEADER opening image file '/Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/macos1011-disk001.vmdk' (VERR_VD_VMDK_INVALID_HEADER)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component ApplianceWrap, interface IAppliance
VBoxManage: error: Context: "RTEXITCODE handleImportAppliance(HandlerArg *)" at line 886 of file VBoxManageAppliance.cpp

Contenido de /Users/administrator/.vagrant.d/boxes/suran-VAGRANTSLASH-macos1011/0/virtualbox/ :

total 40
drwxr-xr-x  6 administrator  staff   204 Mar 10 19:43 .
drwxr-xr-x  3 administrator  staff   102 Mar 10 19:43 ..
-rw-r--r--  1 administrator  staff  3276 Mar 10 19:42 Vagrantfile
-rw-r--r--  1 administrator  staff  8993 Mar 10 19:42 box.ovf
-rw-r--r--  1 administrator  staff     0 Mar 10 19:42 macos1011-disk001.vmdk
-rw-r--r--  1 administrator  staff    26 Mar 10 19:43 metadata.json

pasos para reproducir

  1. Crea el archivo vagrantfile anterior
  2. vagrant up

Solución alterna

Utilice GNU tar.

  1. brew install gnu-tar
  2. sudo cp /usr/local/bin/gtar /opt/vagrant/embedded/bin/bsdtar

Notas

Parece que el problema está relacionado con la utilidad integrada bsdtar que no puede extraer este cuadro. La caja se creó con el packer 1.2.1 en la misma caja usando la plantilla de macOS boxcutter con un cmtool.sh modificado. Las únicas modificaciones a este script son preinstalar homebrew y salt.

Aquí está el resultado del uso de la utilidad bsdtar incorporada para descomprimir la caja:

$ /opt/vagrant/embedded/bin/bsdtar -v -xzf macos1011-0.1.0.box
x Vagrantfile
x box.ovf
x macos1011-disk001.vmdk
x metadata.json
$ ls -lh Vagrantfile box.ovf macos1011-disk001.vmdk metadata.json
-rw-r--r--  1 administrator  staff   3.2K Mar  6 19:48 Vagrantfile
-rw-r--r--  1 administrator  staff   8.8K Mar  6 19:48 box.ovf
-rw-r--r--  1 administrator  staff     0B Mar  6 19:48 macos1011-disk001.vmdk
-rw-r--r--  1 administrator  staff    26B Mar  6 19:48 metadata.json

Aquí está la misma salida usando GNU tar:

$ /usr/local/bin/gtar -v -zxf macos1011-0.1.0.box
Vagrantfile
box.ovf
macos1011-disk001.vmdk
metadata.json
$ ls -lh Vagrantfile box.ovf macos1011-disk001.vmdk metadata.json
-rw-r--r--  1 administrator  staff   3.2K Mar  6 19:48 Vagrantfile
-rw-r--r--  1 administrator  staff   8.8K Mar  6 19:48 box.ovf
-rw-r--r--  1 administrator  staff   9.5G Mar  6 19:48 macos1011-disk001.vmdk
-rw-r--r--  1 administrator  staff    26B Mar  6 19:48 metadata.json

Este es un problema reciente y no se presenta con una caja de macOS 10.12 construida a partir de las mismas plantillas. Sospecho que este error se debe al tamaño de la caja de macOS 10.11 que crece a partir de las actualizaciones de seguridad recientes.

Esto puede ser un problema de empaquetador, pero la solución anterior se aplica a vagabundos, así que pensé que comenzaría aquí.

bug core installer needs-repro task-medium

Comentario más útil

Hola amigos, información sobre el problema del empaquetador vinculado. Hubo un error en libarchive <v3.3.2. No estoy seguro de cuándo llegará a osx, pero como mencionó @barkingfoodog , usar gnutar o actualizar bsdtar a una versión más nueva debería resolver esto. https://github.com/libarchive/libarchive/issues/880

Todos 3 comentarios

Hola,

@chrisroberts interviene ya que tiene la etiqueta needs-repro ...

Estoy experimentando el mismo problema con vagrant 2.0.3 (y 2.0.2). Sospecho que @barkingfoodog ya ha encontrado la causa raíz, es decir, el bsdtar incrustado no descomprime la caja correctamente.

Mi caja es una caja grande de Windows (aprox. 6 Gb) que se ha construido localmente con Packer. Puedo extraer manualmente los archivos de la caja (usando la utilidad tar del sistema) y ejecutar la VM con éxito usando vmrun -T fusion blah.vmx por lo que esto no es un problema con los archivos de la caja o Packer.

Si extraigo manualmente los archivos de la caja usando la utilidad tar del sistema a la carpeta requerida en .vagrant.d/boxes entonces vagrant up funciona bien ...

Este es el directorio de la caja después de que vagrant box add haya hecho su cosa ...

.
└── [        306]  vmware_desktop
    ├── [        983]  Vagrantfile
    ├── [         30]  metadata.json
    ├── [       8684]  windows2016-vmware-iso.nvram
    ├── [          0]  windows2016-vmware-iso.vmdk
    ├── [          0]  windows2016-vmware-iso.vmsd
    ├── [       3515]  windows2016-vmware-iso.vmx
    └── [        277]  windows2016-vmware-iso.vmxf

1 directory, 7 files

... vagrant up era

Este es el directorio de la caja después de extraer manualmente el contenido de la caja con tar xvf ...
EDITAR: Mi sistema usa GNU tar ( tar (GNU tar) 1.29 ) de forma predeterminada, no bsdtar

.
└── [        340]  vmware_desktop
    ├── [        983]  Vagrantfile
    ├── [         30]  metadata.json
    ├── [       8684]  windows2016-vmware-iso.nvram
    ├── [13725794304]  windows2016-vmware-iso.vmdk
    ├── [          0]  windows2016-vmware-iso.vmsd
    ├── [       3515]  windows2016-vmware-iso.vmx
    └── [        277]  windows2016-vmware-iso.vmxf

1 directory, 7 files

¡A vagrant up luego se ejecuta correctamente!

Como se señaló, las cajas más pequeñas no se ven afectadas por este error y se descomprimen correctamente.

Hola amigos, información sobre el problema del empaquetador vinculado. Hubo un error en libarchive <v3.3.2. No estoy seguro de cuándo llegará a osx, pero como mencionó @barkingfoodog , usar gnutar o actualizar bsdtar a una versión más nueva debería resolver esto. https://github.com/libarchive/libarchive/issues/880

Voy a bloquear este problema porque ha estado cerrado durante _30 días_ ⏳. Esto ayuda a nuestros mantenedores a encontrar y concentrarse en los problemas activos.

Si ha encontrado un problema que parece similar a este, abra un nuevo problema y complete la plantilla de problemas para que podamos capturar todos los detalles necesarios para investigar más a fondo.

¿Fue útil esta página
0 / 5 - 0 calificaciones