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