I am trying to install PFsense in KVM and it keeps failing for not finding an installable distribution.

What does the following error mean?

Fetching volume XML failed: Storage volume not found: no storage vol with matching path

Here is the install command I am running:

virt-install --debug --name=Firewall --memory=4096 --vcpus=2 \
   --location=/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso \
   --disk=/var/lib/libvirt/images/Firewall.qcow2,device=disk,bus=virtio,size=10 \
   --network bridge:virbr0 --os-type=linux --nographics \
   --extra-args='console=tty0 console=ttyS0,115200n8 serial'

Here is the complete --debug from the install attempt:

   [root@s119918 OS_Images]# virt-install --debug --name=Firewall --memory=4096 --vcpus=2 --location=/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso --disk=/var/lib/libvirt/images/Firewall.qcow2,device=disk,bus=virtio,size=10 --network bridge:virbr0  --os-type=linux  --nographics --extra-args='console=tty0 console=ttyS0,115200n8 serial'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:261) Launched with command line: /usr/share/virt-manager/virt-install --debug --name=Firewall --memory=4096 --vcpus=2 --location=/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso --disk=/var/lib/libvirt/images/Firewall.qcow2,device=disk,bus=virtio,size=10 --network bridge:virbr0 --os-type=linux --nographics --extra-args=console=tty0 console=ttyS0,115200n8 serial
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:275) Requesting libvirt URI default
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:279) Received libvirt URI qemu:///system
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:358) Requesting virt method 'default', hv type 'default'.
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:582) Received virt method 'kvm'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:583) Hypervisor name is 'hvm'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:270) Distilled --network options: ['bridge=virbr0']
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:316) --graphics compat generated: none
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:183) Distilled --disk options: ['/var/lib/libvirt/images/Firewall.qcow2,device=disk,bus=virtio,size=10']
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (connection:243) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/var/lib/libvirt/images/Jira_Confluence.qcow2'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (connection:243) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/var/lib/libvirt/images/jira_Confluence.img'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (connection:243) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/var/lib/libvirt/images/Jira_Confluence.qcow2.dsk'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (connection:243) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/opt/Kvm_Images/Jira_Confluence.qcow2'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (connection:243) Fetching volume XML failed: Storage volume not found: no storage vol with matching path '/opt/Kvm_Images/jira_Confluence.img'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (guest:250) Setting Guest.os_variant to 'linux'
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] WARNING (virt-install:544) No operating system detected, VM performance may suffer. Specify an OS with --os-variant for optimal results.
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (virt-install:696) Guest.has_install_phase: True

Starting install...
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:57) Using scratchdir=/var/lib/libvirt/boot
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:302) Preparing mount at /var/lib/libvirt/boot/virtinstmnt.QnwwMu
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:312) mount cmd: ['/bin/mount', '-o', 'ro,loop', '/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso', '/var/lib/libvirt/boot/virtinstmnt.QnwwMu']
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:477) Finding distro store for location=/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/Fedora) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:1107) Found treearch=amd64 in uri
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/current/images/MANIFEST) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/daily/MANIFEST) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:1107) Found treearch=amd64 in uri
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/current/images/MANIFEST) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/install/netboot/version.info) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/.disk/info) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/SL) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/CentOS) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/VERSION) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/.disk/info) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/Server) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/Client) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/RedHat) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/images/pxeboot/vmlinuz) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/ppc/ppc64/vmlinuz) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/images/boot.iso) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/boot/boot.iso) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/current/images/netboot/mini.iso) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu/install/images/boot.iso) returning False
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:145) hasFile(/var/lib/libvirt/boot/virtinstmnt.QnwwMu) returning True
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (urlfetcher:326) Cleaning up mount at /var/lib/libvirt/boot/virtinstmnt.QnwwMu
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:314)   File "/usr/share/virt-manager/virt-install", line 1007, in <module>
    sys.exit(main())
  File "/usr/share/virt-manager/virt-install", line 1001, in main
    start_install(guest, options)
  File "/usr/share/virt-manager/virt-install", line 727, in start_install
    fail(e, do_exit=False)
  File "/usr/share/virt-manager/virtinst/cli.py", line 314, in fail
    logging.debug("".join(traceback.format_stack()))

[Wed, 08 Nov 2017 15:34:16 virt-install 15804] ERROR (cli:315) Could not find an installable distribution at '/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso'

The location must be the root directory of an install tree.
See virt-install man page for various distro examples.
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:317)
Traceback (most recent call last):
  File "/usr/share/virt-manager/virt-install", line 706, in start_install
    transient=options.transient)
  File "/usr/share/virt-manager/virtinst/guest.py", line 479, in start_install
    self._prepare_install(meter, dry)
  File "/usr/share/virt-manager/virtinst/guest.py", line 312, in _prepare_install
    self.installer.prepare(self, meter)
  File "/usr/share/virt-manager/virtinst/installer.py", line 200, in prepare
    self._prepare(guest, meter)
  File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 220, in _prepare
    self._prepare_kernel_url(guest, fetcher)
  File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 127, in _prepare_kernel_url
    store = self._get_store(guest, fetcher)
  File "/usr/share/virt-manager/virtinst/distroinstaller.py", line 114, in _get_store
    self._cached_store = urlfetcher.getDistroStore(guest, fetcher)
  File "/usr/share/virt-manager/virtinst/urlfetcher.py", line 528, in getDistroStore
    (fetcher.location, extramsg)))
ValueError: Could not find an installable distribution at '/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso'

The location must be the root directory of an install tree.
See virt-install man page for various distro examples.
[Wed, 08 Nov 2017 15:34:16 virt-install 15804] DEBUG (cli:328) Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start Firewall
otherwise, please restart your installation.
Domain installation does not appear to have been successful.
If it was, you can restart your domain by running:
  virsh --connect qemu:///system start Firewall
otherwise, please restart your installation.

Solution 1:

This isn't an answer per se, but I still can't comment because I do not have 50 rep points. But, I got on and tested that exact same pfsense image with both cdrom and location. cdrom with vnc seems like the way to go here, since for whatever reason location was having trouble locating a .img file when crawling the iso (I had trouble locating a .img when mounting and searching the .iso myself).

I tried launching it with a cdrom/vnc combo and even specified the port number, etc. but was unable to get anything to happen in my vncviewer (sanity checks against other kvm servers were working though).

I found a github post that used FreeBSD to install pfsense, but I do not know enough about either pfsense or FreeBSD to know if that is the correct way to go (I had and emergency so I could not test it myself). The link for that install is:

https://gist.github.com/mahammad/12624500899a54f721a9

So something like:

virt-install --debug --name=Firewall --memory=4096 --vcpus=2 --
cdrom=/opt/OS_Images/pfSense-CE-2.4.1-RELEASE-amd64.iso --
disk=/var/lib/libvirt/images/Firewall.qcow2,device=disk,bus=virtio,size=10 -
-network bridge:virbr0   --network bridge:virbr10 --os-type=linux --vnc

Then virsh edit VM_NAME and search vnc. You should see something like:

<graphics type='vnc' port='-1' autoport='yes'/>

At this point you should be able to ssh tunnel to localhost:5900 (or whatever port you set vnc to).

Solution 2:

The virt-install option --location is used to specify the location of a Linux distribution tree, not a bootable disk image. While it certainly accepts a path to an ISO image, that image must have a Linux distribution on it in order for that to work.

Perhaps you meant to use --cdrom instead?

Solution 3:

Try to use a raw disk file as virtual disk instead qcow2. And install pfsense from iso. I solve the same problem in proxmox by using the raw file format