3

Installing/Preparing a KVM guest for Linux kernel development in Debian.

 1 year ago
source link: https://gist.github.com/aagontuk/f7a7986894e07c6eb9b08484b2f33981
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Graphical Installation

Bellow instructions are for creating a kvm guest OS(Debian) on Debian. Though the examples are based on Debian it should be same for all other distro.

  • Check if your CPU support virtualization: grep -E --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo

  • Check if the host kernel support KVM: grep CONFIG_KVM /boot/config-$(uname -r)

  • Install necessary packages for QEMU/KVM: sudo apt install qemu-system

  • Create a qcow2 image for the guest: qemu-img create -f qcow2 virtualdebian.img 50G

  • Boot ISO to install the guest OS: (You need to run this as root for networking to work)

sudo qemu-system-x86_64 -enable-kvm -m RAM_IN_MB -smp NUM_CPU -drive file=virtualdebian.img -cdrom debian.iso -boot d
  • Install guest OS.

  • Now run the guest OS with qemu whenever you want:

sudo qemu-system-x86_64 -enable-kvm -m 2048 -cpu host -smp 2 -drive file=virtualdebian.img
  • If you want to share a folder from host to guest:

    1. Run the guest with this command:
    sudo qemu-system-x86_64 -enable-kvm -m 2048 -cpu host -smp 2 -drive file=virtualdebian.img,if=virtio -fsdev local,security_model=passthrough,id=fsdev0,path=/path/to/host/folder -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare
    
    1. In guest mount the host folder: mount -t 9p -o trans=virtio,version=9p2000.L hostshare /path/to/mount/point
  • A better alternative for sharing file would be virtiofs: Needs testing.

CLI installation (-nographic)

Debian netinst doesn't show any output if qemu is run with -nographic option while installing from ISO. You have to use -kernel /path/to/kernel with -append "console=ttyS0". Other Solutions:

Once the installation is done you can start the VM normally.

Running Ubuntu on Qemu

sudo apt-get install qemu-efi
cp /usr/share/qemu-efi-aarch64/QEMU_EFI.fd flash0.img
truncate -s 64M flash0.img
truncate -s 64M flash1.img
  • Run Ubuntu cloud image with QEMU:
qemu-system-aarch64 -m 8G -cpu cortex-a57 -M virt,gic-version=max -smp 16 -nographic -drive if=pflash,format=raw,file=flash0.img,readonly -drive if=pflash,format=raw,file=flash1.img -drive if=none,file=focal-server-cloudimg-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0

Miscellaneous

Compiling the kernel

References


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK