Video guide *** How to connect virt-manager to unRAID to help manage your VMs **


Recommended Posts

Hi, Guys. I have made a video about how to connect virt-manager to your unRAID server to help manage and edit your VMs.

I find it very useful for editing VMS with custom edits to prevent the custom edits being deleted.

It's great for adding a GPU to an OS X VM or editing say a windows VM with a ROM file passed through for the GPU.

If you use qcow2 format for disks you can also use snapshots with it.

 

How to connect virt-manager to unRAID to help manage your VMs

 

 

  • Like 1
Link to comment

It also appears that you are configuring libvirtd to be an unauthenticated listener on all interfaces. The less usual approach I am used to seeing is to install netcat-openbsd, which requires a different Slack package than the one provided in NerdPack, and configure the virt-manager connection from a command line:

 

virt-manager -c qemu+ssh://root@tower/system?socket=/var/run/libvirt/libvirt-sock

 

Once this has been run, assuming the server has a version of the Netcat command supporting the -U switch to connect to Unix sockets, it should be able to pass through to libvirtd. Once this has been added to virt-manager, it should persist across restarts.

 

Furthermore, there is also a Homebrew tap on Github for virt-manager and virt-viewer, and it only requires a two line modification to the virt-manager.rb (brew edit virt-manager) to import a newer version of libvirt-python to bypass a compile time error which occurs on Sierra systems. Also, due to another bug with Sierra, this virt-manager will require the --no-fork switch to prevent a startup crash, but can still be launched into the background by appending an ampersand (&) to the command line.

 

E 1: Okay, here's what you need for a more secure connection path that doesn't require a libvirtd.conf edit:

 

You'll need libbsd and netcat-openbsd. You'll need a Slackware 14.2 install or the live DVD to build them.

 

1) Download the SlackBuilds and source packages for the above from the root account.

2) Unpack libbsd.tar.gz.

3) cd to libbsd.

4) ln -s ../libbsd-0.8.3.tar.gz ./

5) ./libbsd.SlackBuild

 

Now you'll have a libbsd package in /tmp/.

 

1) installpkg /tmp/libbsd*.tar.gz

2) cd back to root, or .. from the above steps.

3) Unpack netcat-openbsd.tar.gz.

4) cd to netcat-openbsd.

5) ln -s ../netcat-openbsd_* ./

6) removepkg nc

7) ./netcat-openbsd.SlackBuild

 

Now you'll also have a netcat-openbsd package in /tmp/. Transfer both of these packages to a share on unRAID:

 

1) scp /tmp/*.tar.gz root@<tower ip>:/mnt/user/<share>/

 

Now you may install them from unRAID SSH or Telnet:

 

1) cd <wherever you copied them>

2) If you have NerdPack GNU netcat installed, disable it in the NerdPack UI, which doesn't actually remove it, then run removepkg nc.

3) installpkg libbsd*.tar.gz

4) installpkg netcat-openbsd*.tar.gz

Link to comment

It also appears that you are configuring libvirtd to be an unauthenticated listener on all interfaces. The less usual approach I am used to seeing is to install netcat-openbsd, which requires a different Slack package than the one provided in NerdPack, and configure the virt-manager connection from a command line:

 

virt-manager -c qemu+ssh://root@tower/system?socket=/var/run/libvirt/libvirt-sock

 

Once this has been run, assuming the server has a version of the Netcat command supporting the -U switch to connect to Unix sockets, it should be able to pass through to libvirtd. Once this has been added to virt-manager, it should persist across restarts.

 

Furthermore, there is also a Homebrew tap on Github for virt-manager and virt-viewer, and it only requires a two line modification to the virt-manager.rb (brew edit virt-manager) to import a newer version of libvirt-python to bypass a compile time error which occurs on Sierra systems. Also, due to another bug with Sierra, this virt-manager will require the --no-fork switch to prevent a startup crash, but can still be launched into the background by appending an ampersand (&) to the command line.

 

E 1: Okay, here's what you need for a more secure connection path that doesn't require a libvirtd.conf edit:

 

You'll need libbsd and netcat-openbsd. You'll need a Slackware 14.2 install or the live DVD to build them.

 

1) Download the SlackBuilds and source packages for the above from the root account.

2) Unpack libbsd.tar.gz.

3) cd to libbsd.

4) ln -s ../libbsd-0.8.3.tar.gz ./

5) ./libbsd.SlackBuild

 

Now you'll have a libbsd package in /tmp/.

 

1) installpkg /tmp/libbsd*.tar.gz

2) cd back to root, or .. from the above steps.

3) Unpack netcat-openbsd.tar.gz.

4) cd to netcat-openbsd.

5) ln -s ../netcat-openbsd_* ./

6) removepkg nc

7) ./netcat-openbsd.SlackBuild

 

Now you'll also have a netcat-openbsd package in /tmp/. Transfer both of these packages to a share on unRAID:

 

1) scp /tmp/*.tar.gz root@<tower ip>:/mnt/user/<share>/

 

Now you may install them from unRAID SSH or Telnet:

 

1) cd <wherever you copied them>

2) If you have NerdPack GNU netcat installed, disable it in the NerdPack UI, which doesn't actually remove it, then run removepkg nc.

3) installpkg libbsd*.tar.gz

4) installpkg netcat-openbsd*.tar.gz

 

Wow, thanks, Kode54. Excellent information. I will try setting up that way. :)

 

I have tried using the homebrew-virt-manager on osx but never got it worKing. I would really like to have it in osx. When I've got some time I will go back to trying. But I am on Sierra now unfortunately. So it seems there will be more hurdles now than previously :(

Link to comment

Setting it up in Sierra is not terribly difficult. For now, the only hurdle is the libvirt-python version used.

 

1) brew tap jeffreywildman/virt-manager

2) brew edit virt-manager, search for "2.1.0", which should locate the libvirt-python link. Replace version number with "2.4.0", and replace the sha256 sum with "aa087cca41f50296306baa13366948339b875fd722fc4b92a484484cd881120c".

3) brew install virt-manager virt-viewer.

4) Due to outstanding issue #62 with jeffreywildman/virt-manager, remember to supply --no-fork switch when invoking virt-manager from the Terminal.

 

E1: Something I just remembered. KVM+Qemu does support saving snapshots, but if you have any hardware passthrough, it doesn't support saving snapshots of a running VM.

Link to comment

Setting it up in Sierra is not terribly difficult. For now, the only hurdle is the libvirt-python version used.

 

1) brew tap jeffreywildman/virt-manager

2) brew edit virt-manager, search for "2.1.0", which should locate the libvirt-python link. Replace version number with "2.4.0", and replace the sha256 sum with "aa087cca41f50296306baa13366948339b875fd722fc4b92a484484cd881120c".

3) brew install virt-manager virt-viewer.

4) Due to outstanding issue #62 with jeffreywildman/virt-manager, remember to supply --no-fork switch when invoking virt-manager from the Terminal.

 

E1: Something I just remembered. KVM+Qemu does support saving snapshots, but if you have any hardware passthrough, it doesn't support saving snapshots of a running VM.

 

Kode54 . Thanks so much all working for me now. Im so happy I wanted this on osx for a long time. Its the latest 1.4.0 version aswell! :) :)

 

When i ran brew edit virt-manager i didnt even have to change anything as 2.4.0 was already there. So this must have been recently updated.

Just had to install xquartz then virt-manager virt-viewer

And works perfectly with the --no-fork switch

 

 

Link to comment

Got everything working as well from terminal. Is there a way to create a short cut in launchpad that opens virt-manager in terminal with --no-fork with a click of a button?

 

Hi this is how i did it and got icon into it aswell

Screen_Shot_2016_11_06_at_13_16_12.png

 

1. open textedit and set for plain text then put the following into it

 

#!/bin/bash
virt-manager --no-fork

 

2. save file as name 'vm' (make sure you uncheck if no file extension given use txt)

 

3. make file executable by running this command in terminal

 

chmod +x <filename and location>

 

for example chmod +x /Users/ed/Desktop/vm

 

4. now move file to applications/utilities

 

5. open automator from applications

 

choose run shell script and enter

 

Open /Applications/utilities/terminal.app /Applications/Utilities/vm

 

 

 

Screen_Shot_2016_11_06_at_12_41_03.png

 

6. save as type application and call vm again.

 

7. change icon. I have put a link to the files i use here . https://www.dropbox.com/s/xf5a323pivjskkk/vm%20manager%20osx%20dock%20files.zip?dl=0

 

Inside you will find a file called vm manager icon. Now goto the vm.app you just made with automator.

right click it and goto get info. In top left side of the box you will see a small icon there. drag the vmmanager icon over that to replace it.

 

8. Move the vm.app to your applications folder then drag it to the dock and you will have it in dock with correct icon  :)

 

Link to comment

Great stuff.... but I getting error when installing .......

 

Peters-mac:virtmanager peter$ brew tap jeffreywildman/virt-manager
Peters-mac:virtmanager peter$ brew install virt-manager virt-viewer
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
==> Installing virt-manager from jeffreywildman/virt-manager
Error: You must `brew link intltool pkg-config` before jeffreywildman/virt-manager/virt-manager can be installed
==> Installing virt-viewer from jeffreywildman/virt-manager
Error: You must `brew link intltool pkg-config` before jeffreywildman/virt-manager/virt-viewer can be installed
Peters-mac:virtmanager peter$ 
Peters-mac:virtmanager peter$ 
Peters-mac:virtmanager peter$ brew link intltool pkg-config
Linking /usr/local/Cellar/intltool/0.51.0... 
Error: Could not symlink .
/usr/local/opt is not writable.
Peters-mac:virtmanager peter$ sudo brew link intltool pkg-config
Password:
Error: Cowardly refusing to 'sudo brew link'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.
Peters-mac:virtmanager peter$ brew install virt-manager virt-viewer
Warning: You are using OS X 10.12.
We do not provide support for this pre-release version.
You may encounter build failures or other breakages.
Please create pull-requests instead of filing issues.
==> Installing virt-manager from jeffreywildman/virt-manager
Error: You must `brew link intltool pkg-config` before jeffreywildman/virt-manager/virt-manager can be installed
==> Installing virt-viewer from jeffreywildman/virt-manager
Error: You must `brew link intltool pkg-config` before jeffreywildman/virt-manager/virt-viewer can be installed
Peters-mac:virtmanager peter$ brew link intltool pkg-config
Linking /usr/local/Cellar/intltool/0.51.0... 
Error: Could not symlink .
/usr/local/opt is not writable.
Peters-mac:virtmanager peter$ 

Link to comment
  • 3 years later...

Anyone get this working with a more recent version of virt-manager? With mint 20 there is not method drop down (~7:35 in video) to pick TCP.

 

Nevermind, I solved this. Custom "URIs" are created for this behind the scenes. I created a connection on my old rig and copied the text.

 

Example: qemu+tcp://[email protected]/system

Edited by scorcho99
Solved
  • Like 1
  • Thanks 2
Link to comment
  • 3 months later...

When trying to connect to UNRAID via ssh, after entering my password, I would keep getting the error that I have to use a version of netcat (nc) that supports the -U option.

 

Well, with the help of a Slackware 14.2 VM and the build instructions from @kode54 I was able to build the necessary components and install them. (I couldn't get it to compile on the UNRAID server itself despite installing the Dev Pack.)

 

Anyway, here are the two pre-compiled packages in case you want them. They work on my 6.8.3 version of UNRAID.

 

libbsd-0.10.0-x86_64-1_SBo.tgznetcat-openbsd-1.217_1-x86_64-1_SBo.tgz

 

Rename your nc in /usr/bin/ to something else before installing the new one.

 

Install using:

installpkg libbsd-0.10.0-x86_64-1_SBo.tgz

installpkg netcat-openbsd-1.217_1-x86_64-1_SBo.tgz

 

  • Thanks 2
Link to comment
  • 9 months later...

I'm getting the below error when attempting to connect to VirtManager as part of following the Macinabox Big Sur installation guide. anyone know what's going on?

 

Unable to connect to libvirt qemu+ssh://[email protected]/system.

End of file while reading data: sh: nc: command not found: I/O error

Verify that the 'libvirtd' daemon is running on the remote host.

Libvirt URI is: qemu+ssh://[email protected]/system

Traceback (most recent call last):
  File "/usr/local/share/virt-manager/virtManager/connection.py", line 922, in _do_open
    self._backend.open(cb, data)
  File "/usr/local/share/virt-manager/virtinst/connection.py", line 153, in open
    conn = libvirt.openAuth(self._open_uri,
  File "/usr/lib/python3.8/site-packages/libvirt.py", line 104, in openAuth
    if ret is None:raise libvirtError('virConnectOpenAuth() failed')
libvirt.libvirtError: End of file while reading data: sh: nc: command not found: I/O error

 

Link to comment
  • 1 month later...
On 12/30/2020 at 4:10 AM, frakman1 said:

When trying to connect to UNRAID via ssh, after entering my password, I would keep getting the error that I have to use a version of netcat (nc) that supports the -U option.

 

Well, with the help of a Slackware 14.2 VM and the build instructions from @kode54 I was able to build the necessary components and install them. (I couldn't get it to compile on the UNRAID server itself despite installing the Dev Pack.)

 

Anyway, here are the two pre-compiled packages in case you want them. They work on my 6.8.3 version of UNRAID.

 

libbsd-0.10.0-x86_64-1_SBo.tgz 223.72 kB · 9 downloads netcat-openbsd-1.217_1-x86_64-1_SBo.tgz 27.57 kB · 9 downloads

 

Rename your nc in /usr/bin/ to something else before installing the new one.

 

Install using:

installpkg libbsd-0.10.0-x86_64-1_SBo.tgz

installpkg netcat-openbsd-1.217_1-x86_64-1_SBo.tgz

 

 

 

Thank you!

 

It is also working on the newest version 6.9.2.

netcat-openbsd by nerdpack (https://github.com/dmacias72/unRAID-NerdPack/blob/master/packages/6.9/netcat-openbsd-1.105-x86_64-2.tgz) is stucking after first WOL receive. Even with -w 1.

 

```

nc.openbsd -4 -vulkn -p 9 -w 1
Listening on [0.0.0.0] (family 2, port 9)
������RT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iRT�iConnection closed, listening again.
```

 

This version is running smooth and still listening to new connections.


 

best regards

realize

Link to comment
  • 2 months later...
  • 2 weeks later...
On 9/1/2020 at 7:18 PM, scorcho99 said:

Anyone get this working with a more recent version of virt-manager? With mint 20 there is not method drop down (~7:35 in video) to pick TCP.

 

Nevermind, I solved this. Custom "URIs" are created for this behind the scenes. I created a connection on my old rig and copied the text.

 

Example: qemu+tcp://[email protected]/system

Thank you!  This was my problem.  This solved it for me also.

Link to comment
  • 3 months later...

Does Unraid's VNC break for anyone else after attempting to do this?

 

virt-manager also crashes when trying to open a running a VM, which I'm assuming tries to initialize a new VNC connection, not sure if these two issues are related.

 

Never mind. While I can't seem to connect with an external VNC client, I tried a different browser and it worked, so some kind of caching issue, which seems like the typical scenario when this happens.

 

virt-manager still crashes, but that could just be because it's too old and the formula needs to be updated etc.

Edited by Didstopia
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.