DEBEFIVM-RUN(1)
π DEBEFIVM-RUN(1) π
okay so bestie, welcome to debefivm-run β it's a manual page from the User Contributed Perl Documentation corner of the world, and it's literally just here to help you boot a whole virtual machine. no cap. π¦
β¨ 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]
(yes that bracket situation is exactly how it's written, we do not touch it, we respect it π )
π DESCRIPTION π
so like. debefivm-run is essentially a thin wrapper around qemu β the manpage says "thing wrapper" and honestly? iconic typo, we keep it β for running a virtual machine off an UEFI bootable raw disk image. π₯
you can make one of those images with debefivm-create, or with literally any other image creator you vibe with. but β and this is the important part β its use is limited to architectures that support EFI booting. so if your arch doesn't do EFI, this is not the party for you. π«Ά
π OPTIONS π
-aarchitecture,--architecture=architecture β override the Debian architecture of the image you're handing over. here's the tea: if the image uses architecture-specific type UUIDs for the root partition, the architecture can be detected automatically. otherwise, the host's architecture is just assumed. the images thatdebefivm-createmakes do use these UUIDs. this value gets used to figure out the correct emulator binary and suitable EFI firmware. β¨--efi-vars=variablefile β EFI variables can be changed and retained across reboots of a virtual machine, but only if you supply a separate variable file. if the file you pass doesn't exist yet, it gets created from a template. and if you don't pass one at all? the virtual machine gets a read-only variable store. sad but true. π-iimage,--image=image β this one says where your virtual machine image file lives. default vibe isvm.imgin the working directory. π--netopt=option βdebefivm-runsets up a user mode network by default, which means it passes a-netdevoption toqemu. with this option you can customize the value of that-netdevoption. 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, so go off. π--skip=task β skip a particular task or feature. you can specify this option multiple times, or list multiple tasks to skip by separating them with a comma. by default, no tasks are skipped. here's what you can skip:networkβ do not configure a network card. use this if you want to configure the network on your own. also, you should pass this in addition to passing-nic nonewhen you want to disable networking. both. together. πrngdevβ do not pass a random number generator device.
--transport=transport β whendebefivm-runadds devices toqemu, it has to select a transport, and it most often guessespci. but when you specify a different machine such as-machine microvm, a different transport such asdevicemay be needed. iykyk. π§-ssshport,--sshport=sshport β if given,qemuis configured to pass connections to127.0.0.1:sshport to port22of 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
this option is a shorthand for --netopt hostfwd=tcp:127.0.0.1:sshport-:22. π
--qemu options β everything beyond a double dash gets passed straight toqemu. this is how you configure additional hardware components. one possible use of this method is passing-snapshotto avoid modifying the virtual machine image. main character energy tbh. β
π SEE ALSO π
debefivm-create(1) debvm-run(1) qemu(1)
bestie reminder: this whole thing is perl v5.40.1 energy, dated 2026-03-23. that's the source and version, and that's the whole page. slay, go boot something. ππ¦πΈ
π¦ where this page comes from
- ubuntu resolute: debvm 0.5.2ubuntu1 Β· MIT
- ubuntu stonking: debvm 0.5.2ubuntu1 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms