Ubuntu 和 CentOS 源里带的 qemu 都没有 debug 包,导致定位问题或者跟踪源代码非常麻烦,因此有必要重新编译。
以 v2.5.0 版本为例:
1 | ~$ ./configure --target-list=x86_64-softmmu --enable-kvm --enable-debug --enable-rbd --enable-vnc --extra-cflags="-g3" --extra-ldflags="-g3" --disable-strip --disable-pie --disable-gtk --disable-spice --disable-curses --disable-gnutls --disable-curl --prefix=$PWD/../qemu-tar |
可以直接拷贝 ../qemu-tar/bin/qemu-system-x86_64 至目标机器执行,如果出现如下的错误:
1 | qemu: could not load PC BIOS 'bios-256k.bin' |
则在命令行上加上类似 -L /usr/share/qemu/ 的选项,具体的路径需要查看 bios 文件的位置(如 rpm -ql qemu),如 CentOS 下可能需要如下命令行:
1 | ~$ ./qemu-system-x86_64 -enable-kvm -m 1G -boot menu=on -drive file=rbd:test_pool/root,format=raw -vnc :20 -L /usr/share/qemu/ |
Ubuntu 下可能需要如下命令行:
1 | ~$ ./qemu-system-x86_64 -enable-kvm -m 1G -boot menu=on -drive file=rbd:test_pool/root,format=raw -vnc :20 -L /usr/share/qemu/ -L /usr/share/seabios -L /usr/lib/ipxe/qemu/ |
如果目标机器已经安装过 qemu,则直接拷贝至 /usr/bin 目录替换原有的 qemu-system-x86_64 相对来说更方便。
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.