kusnier / vagrant-persistent-storage

A Vagrant plugin that creates a persistent storage and attaches it to guest machine.
MIT License
292 stars 68 forks source link

vagrant halt fails with hotplug error #88

Open 2opremio opened 6 years ago

2opremio commented 6 years ago
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
    default: Guest communication could not be established! This is usually because
    default: SSH is not running, the authentication information was changed,
    default: or some other networking issue. Vagrant will force halt, if
    default: capable.
==> default: ** Detaching persistent storage **
There was an error while executing `VBoxManage`, a CLI used by Vagrant
for controlling VirtualBox. The command and stderr is shown below.

Command: ["storageattach", "4599eed9-a463-49ba-af86-e34d39f1c17d", "--storagectl", "SCSI", "--port", "15", "--device", "0", "--type", "hdd", "--medium", "none"]

Stderr: VBoxManage: error: Controller 'SCSI' does not support hotplugging
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "DetachDevice(Bstr(pszCtl).raw(), port, device)" at line 403 of file VBoxManageStorageController.cpp
$ vagrant --version
Vagrant 2.0.2        
$ VBoxManage --version
5.2.6r120293
$ vagrant plugin list
vagrant-bindfs (1.1.0)
vagrant-persistent-storage (0.0.41)
2opremio commented 6 years ago

Related: https://github.com/kusnier/vagrant-persistent-storage/issues/42 (but in this case it's with SCSI)

2opremio commented 6 years ago

These are the options I am using (ubuntu/xenial64 box)

  config.persistent_storage.enabled = true
  config.persistent_storage.location = "~/home-vagrant/build.vdi"
  config.persistent_storage.size = 20000
  config.persistent_storage.mountname = 'build'
  config.persistent_storage.filesystem = 'ext4'
  config.persistent_storage.mountpoint = '/mnt/build'
  config.persistent_storage.volgroupname = 'myvolgroup'
  config.persistent_storage.mountoptions = ['uid=vagrant', 'gid=vagrant']
kusnier commented 6 years ago

The options uid and gid in this version of ubunut are only suppor the number values of user and group. Howsoever this is not the problem. I have done some vagrant up and vagrant halt and it seems that i get the problem too.

But this seems as a problem from the guest system. After i enabled the gui of virtual box i can see that the boot up is hanging and so vagrant is not able to connect to the guest.

screen shot 2018-02-17 at 21 44 23

The startup is halt on Started Journal Service.

Maybe this could be a problem of this version of the linux image. I have not time to investigate this in details but maybe you have some.

Best regards

Sebastian

2opremio commented 6 years ago

But this seems as a problem from the guest system. After i enabled the gui of virtual box i can see that the boot up is hanging and so vagrant is not able to connect to the guest.

For me it boots without problems. I can also mount the disk and use it, it only gets stuck when tryiing to shutdown the VM.

2opremio commented 6 years ago

OK, the uid/gid options seems to be a problem. I would had sworn it worked when I created the volume.

screen shot 2018-02-19 at 11 50 02
2opremio commented 6 years ago

I gave up and resorted to create and mount the disk using ruby scripting directly on the Vagrant file.

barrkel commented 6 years ago

I see this also. After a suspend and resume, the networking stack on my Virtualbox instance is unresponsive, so I need to do a vagrant halt -f && vagrant up to bring it back. But vagrant halt -f fails due to this plugin trying to detach the persistent storage, with the SCSI hotplug error quoted above.

I'm not sure why it's trying to detach on vagrant halt -f. I just want the VM to come down hard. My workaround is to power off the VM with the Virtualbox UI, but I'd prefer it to work in script.

kusnier commented 6 years ago

The detach have to processed. If the detach will be bypassed a destroy or manual delete will kill your attached drive and all data is gone.

Unfortunately i have currently no time to investigate this problem.

devopstales commented 4 years ago

Still an issue with IDE too:

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

Command: ["storageattach", "630f5d12-94a3-4b01-959d-280dc730ef40", "--storagectl", "IDE Controller", "--port", "1", "--device", "0", "--type", "hdd", "--medium", "none"]

Stderr: VBoxManage: error: Controller 'IDE Controller' does not support hotplugging
VBoxManage: error: Details: code VBOX_E_INVALID_VM_STATE (0x80bb0002), component SessionMachine, interface IMachine, callee nsISupports
VBoxManage: error: Context: "DetachDevice(Bstr(pszCtl).raw(), port, device)" at line 403 of file VBoxManageStorageController.cpp
vagrant version
Installed Version: 2.2.6

vagrant plugin list
vagrant-cachier (1.2.1, system)
vagrant-hostmanager (1.8.9, system)
vagrant-libvirt (0.0.45, system)
vagrant-lxc (1.4.3, global)
vagrant-lxd (0.4.3, global)
vagrant-persistent-storage (0.0.48, global)
vagrant-timezone (1.3.0, global)
vagrant-vbguest (0.22.1, global)

 vboxmanage --version
6.1.4r136177