Qemu VM with port forwarding
Posted on June 15, 2016
The aim is to run a Qemu VM backed by an LVM partition and access guest’s SSH using host’s port. Kernel and initrd are loaded from host’s filesystem; this requires that the root partition is already mounted. The guest OS is NixOS.
Guest user home directory is encrypted using encryptfs, but this has no bearing on the following script.
qemu-kvm \
-m 1024 \
-drive format=raw,file=/dev/NixGroup/nix-vm,media=disk \
-enable-kvm \
-netdev user,id=network0,hostfwd=tcp:127.0.0.1:60722-:22 \
-device e1000,netdev=network0 \
-nographic \
-kernel /mounts/nix-vm/nix/store/43m82sa6lssfmk8s3sxq4ykcbw06kn27-linux-4.3/bzImage \
-append 'systemConfig=/nix/store/lyk5b9habhxlsfyq1yciiyz373xz43js-nixos-15.09.764.5df488a init=/nix/store/lyk5b9habhxlsfyq1yciiyz373xz43js-nixos-15.09.764.5df488a/init loglevel=4' \
-initrd /mounts/nix-vm/nix/store/3fvg6zrq2s8s3xdj48gx6wlg4mdfqn2a-initrd/initrd
configuration.nix FS configuration is:
fileSystems."/" = {
device = "/dev/sda";
label = "nix-tor";
fsType = "ext3";
options = "async,noatime,rw";
};
and networking:
networking.interfaces."enp0s3" = {
useDHCP = true;
};