Qemu+KVM

安装glib 2.66

apt update
apt install -y build-essential meson ninja-build gettext libmount-dev libffi-dev python3-pip libpcre2-dev zlib1g-dev
wget https://download.gnome.org/sources/glib/2.66/glib-2.66.8.tar.xz
tar xf glib-2.66.8.tar.xz
cd glib-2.66.8
meson setup build --prefix=/opt/glib-2.66
ninja -C build
ninja -C build install

export PKG_CONFIG_PATH=/opt/glib-2.66/lib/x86_64-linux-gnu/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=/opt/glib-2.66/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
export PATH=/opt/glib-2.66/bin:$PATH

安装qemu v9.2.2

apt update
apt install -y git libglib2.0-dev libfdt-dev libpixman-1-dev zlib1g-dev ninja-build python3 python3-pip python3-setuptools build-essential libnfs-dev libiscsi-dev
pip3 install tomli
wget https://download.qemu.org/qemu-9.2.2.tar.xz
tar xvJf qemu-9.2.2.tar.xz
cd qemu-9.2.2

./configure --enable-kvm --enable-debug --enable-vnc --enable-werror -enable-user --enable-slirp --target-list=x86_64-softmmu,x86_64-linux-user

make -j60
make install
qemu-system-x86_64 --version

检查kvm是否启用

$ apt install cpu-checker
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used

安装virsh

apt install libvirt-daemon-system libvirt-clients -y
systemctl enable --now libvirtd

virsh 安装

libvirtd -d
virtlogd -d
virsh define openeuler_x86_64.xml
virsh start openEulerVM
# virsh list

QEMU创建虚拟机

# qemu创建磁盘
qemu-img create openeuler.qcow2 -f qcow2 80G

qemu-system-x86_64 -enable-kvm -cpu host -m 40960 -smp 20 -drive file=img/openeuler.qcow2,format=qcow2,if=virtio -cdrom img/openEuler-24.03-LTS-SP1-x86_64-dvd.iso -nographic -bios /usr/local/share/qemu/bios.bin -append console=ttyS0 -kernel mnt/isolinux/vmlinuz -initrd mnt/isolinux/initrd.img

/*
安装操作指引:
ctrl + b, then press 2  可以进入shell界面
$ anaconda --text   // 启用TUI纯文本安装界面

其中显示[!]的代表还未配置,需要手动配置
其中Installation source     选择第一个选项  1) CD/DVD   配置完后可以输入r refresh一下

root passwd: openEuler12

安装完后,ctrl + a, then press x退出qemu

qemu-system-x86_64 -enable-kvm -cpu host -m 40960 -smp 20 -drive file=img/openeuler.qcow2,format=qcow2,if=virtio -netdev user,id=net0 -device virtio-net-pci,netdev=net0 -nographic
*/

QEMU+GDB调试内核

https://docs.kernel.org/translations/zh_CN/dev-tools/gdb-kernel-debugging.html

BUG

# 在docker容器中,需检查kvm设备的所属组
$ ls -l /dev/kvm
crw-rw---- 1 root etcd 10, 232 Apr  6 09:18 /dev/kvm
# 调整为kvm组,而不是etcd
$ chown root:kvm /dev/kvm
crw-rw---- 1 root kvm 10, 232 Apr  6 09:18 /dev/kvm

参考链接

https://github.com/mz1999/blog/blob/master/docs/gdb-kernel-debugging.md

results matching ""

    No results matching ""