installing Pfsense in KVM

ApertureSecurity asked:

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

What does this error mean?

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 –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.

My answer:


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?


View the full question and answer on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.