QEMU: Difference between revisions
imported>NewAM Added notes about possible errors when booting NixOS images with UEFI. |
imported from old wiki |
||
Line 27: | Line 27: | ||
<syntaxhighlight lang=nix> | <syntaxhighlight lang=nix> | ||
environment = { | environment = { | ||
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" '' | systemPackages = [ | ||
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" '' | |||
qemu-system-x86_64 \ | |||
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \ | |||
"$@" | |||
'') | |||
]; | |||
}; | }; | ||
</syntaxhighlight> | </syntaxhighlight> |
Revision as of 21:48, 8 May 2024
A generic and open source machine emulator and virtualizer
Install
environment = {
systemPackages = [ pkgs.qemu ];
};
Quick EMU
Quickly create and run highly optimised desktop virtual machines for Linux, macOS and Windows; with just two commands.
https://github.com/quickemu-project/quickemu
quickget windows 11
quickemu --vm windows-11.conf
Booting UEFI
To boot UEFI systems using QEMU, the UEFI firmware replacing the BIOS implementation needs to be provided while starting QEMU.
The following installs a script, that always starts QEMU with OVMF firmware implementing UEFI support.
environment = {
systemPackages = [
(pkgs.writeShellScriptBin "qemu-system-x86_64-uefi" ''
qemu-system-x86_64 \
-bios ${pkgs.OVMF.fd}/FV/OVMF.fd \
"$@"
'')
];
};
qcow-efi images generated from nixos-generators require more RAM than the default 128MB. Failing to provide enough RAM results in grub reporting "error: start_image() returned 0x800000000000009." or systemd-boot reporting "Failed to execute NixOS: Out of resources".