Scroll to navigation

DEBEFIVM-RUN(1) User Contributed Perl Documentation DEBEFIVM-RUN(1)

NAME

debefivm-run - Run a virtual machine from an EFI-bootable raw disk image

SYNOPSIS

-debefivm-run [-a] architecture] [-i image] [-s sshport] [-- qemu options]

DESCRIPTION

debefivm-run is essentially a thing wrapper around qemu for running a virtual machine from an UEFI bootable raw disk image. Such an image may be created using debefivm-create or with another image creator, but its use is limited to architectures supporting EFI booting.

OPTIONS

Override the Debian architecture of the provided image. If the image uses architecture-specific type UUIDs for the root partition, the architecture can be detected. Otherwise, the host's architecture is assumed. The images created by debefivm-create employ these UUIDs. The value is used to determine the correct emulator binary as well as suitable EFI firmware.
EFI variables can be changed and retained across reboots of a virtual machine if a separate variable file is supplied. The passed file is created from a template if absent. If absent, a read-only variable store will be supplied to the virtual machine.
This option specifies the location of the virtual machine image file. By default vm.img in the working directory is used.
debefivm-run sets up a user mode network by default. It therefore passes a -netdev option to qemu. Using this option, you can customize the value of that -netdev option. For instance, you can set up additional port forwards by passing e.g. "--netopt hostfwd=:127.0.0.1:8080-:80". It can be used multiple times.
Skip a particular task or feature. The option may be specified multiple times or list multiple tasks to be skipped by separating them with a comma. By default, no tasks are skipped. The following tasks may be skipped.
Do not configure a network card. Use this if you want to configure network on your own. This should also be passed in addition to passing "-nic none" when you want to disable networking.
Do not pass a random number generator device.
When debefivm-run adds devices to qemu, it has to select a transport and it most often guesses pci. When specifying a different machine such as -machine microvm, a different transport such as device may be needed.
If given, qemu is configured to pass connections to 127.0.0.1:sshport to port 22 of the virtual machine. You can connect to your virtual machine without updating your known hosts like this:

    ssh -o NoHostAuthenticationForLocalhost=yes -p $sshport root@127.0.0.1
    

The option is a shorthand for "--netopt hostfwd=tcp:127.0.0.1:sshport-:22".

All options beyond a double dash are passed to qemu. This can be used to configure additional hardware components. One possible use of this method is passing -snapshot to avoid modifying the virtual machine image.

SEE ALSO

        debefivm-create(1) debvm-run(1) qemu(1)
2025-06-18 perl v5.40.1