https://losst.ru/kak-polzovatsya-qemu
QEMU
Запуск обычной убунты
Разберем, как запустить убунту в qemu.
- Качаем образ убунты. Например, отсюда - нам нужен .iso файл.
 - Создаем диск для нашей виртуалки:
 
qemu-img create -f qcow2 ubuntu.qcow 10G- Запускаемся с образа убунты:
 
qemu-system-x86_64 -hda ubuntu.qcow -boot d -cdrom ./ubuntu-18.04.5-live-server-amd64.iso -m 640- Запускается стандартная установка, дожидаемся окончания, после чего запускать можно так:
 
qemu-system-x86_64 -hda ubuntu.qcow -m 640Чтобы работало быстрее, рекомендуется включать полную виртуализацию флагом -enable-kvm.
Запуск и дебаг своего ядра
В статье по ссылке в самом начале рабочий скрипт:
# one time setup
$ mkinitramfs -o ramdisk.img
$ echo "add-auto-load-safe-path path/to/linux/scripts/gdb/vmlinux-gdb.py" >> ~/.gdbinit
# one time kernel setup
$ cd linux
$ ./scripts/config -e DEBUG_INFO -e GDB_SCRIPTS
$ <make kernel image>
# each debug session run
$ qemu-system-x86_64 \
  -kernel arch/x86_64/boot/bzImage \
  -nographic \
  -append "console=ttyS0 nokaslr" \
  -initrd ramdisk.img \
  -m 512 \
  --enable-kvm \
  -cpu host \
  -s -S &
$ gdb vmlinux
(gdb) target remote :1234
(gdb) hbreak start_kernel
(gdb) c
(gdb) lx-dmesgТут важное дополнение - пока командная строка не завелась, если при инициализации выдается какая-то ошибка, то чтобы выйти, нужно нажать Ctrl+a, c, появится командная строка qemu, затем выходим по q.