Host系统:基于centos 7.6
Guest系统:基于QEMU的Linux虚拟机(要调试的对象)
-----linux
内核源代码下载地址:https://mirrors.aliyun.com/linux-kernel/v4.x/linux-4.8.tar.gz
须要用到的工具下载:
1)GDB
centos 7.6默认的GDB版本有点老,在调试的时候会遇到问题,因此这里须要下载GDB较新的版本,从新编译一个新的GDB,操做以下:
从这里下载GDB:https://mirrors.ustc.edu.cn/gnu/gdb/gdb-8.1.tar.gz
2)QEMU
centos7.6 YUM仓库中的QEMU版本比较老了,须要从新下载QEMU编译,操做以下:
从这里下载QEMU:https://download.qemu.org/qemu-4.1.0.tar.xzubuntu
编译安装好以后,如下涉及到gdb或者qemu的命令根据实际路径调整。centos
在编译服务器
制做一个磁盘用于安装app
qemu-img create centos76.img 50G
从这里下载CentOS-7-x86_64-Minimal-1810.iso:https://mirrors.ustc.edu.cn/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
这里假设已经将CentOS-7-x86_64-Minimal-1810.iso镜像从互联网上下载好了。接着开始安装Guest系统。
在服务器上(或者PC上)安装,须要使用到一个VNC客户端软件,以便可以链接QEMU VNC Server。工具
qemu-system-x86_64 -cdrom CentOS-7-x86_64-Minimal-1810.iso -hda ./centos76.img -boot d -netdev tap,id=tap0,ifname=virbr0-nic,vhost=on,script=no -m 2048 -localtime -vnc 0.0.0.0:20
也能够采用如下使用virtio磁盘:centos7
qemu-system-x86_64 -cdrom /home/caishan/CentOS-7-x86_64-Minimal-1810.iso \ -drive file=./centos76.img,if=virtio \ -boot d \ -netdev tap,id=tap0,ifname=virbr0-nic,vhost=on,script=no \ -device virtio-net-pci,netdev=tap0 \ -m 2048 \ -localtime \ -vnc 0.0.0.0:20 \ --enable-kvm
上述命令运行以后经过VNC客户端远程链接 HostIP:5920
(默认)能够开始安装步骤。
待安装成功以后,安装好的系统,使用如下命令:调试
qemu-system-x86_64 -drive file=./centos76.img,if=virtio -boot c -netdev tap,id=tap0,ifname=virbr0-nic,vhost=on,script=no -m 2048 \ -device virtio-net-pci,netdev=tap0 \ -localtime -vnc 0.0.0.0:20 --enable-kvm
一样,使用VNC客户端远程链接到启动的虚拟机。登录后,执行dhclient eth0获取IP地址。code
./scripts/config -e CONFIG_DEBUG_INFO -d CONFIG_RANDOMIZE_BASE -e CONFIG_MODULES -e GDB_SCRIPTS对象
grub2-mkconfig -o /boot/grub2/grub.cfg
启动编译后的内核,并boot到硬盘
qemu-system-x86_64 -m 2048 -kernel ./arch/x86/boot/bzImage -initrd ./initrd.img-4.18.4 -drive file=./ubuntu1604.qcow2,if=virtio -boot c -nographic -serial mon:stdio -append 'root=/dev/sda1 console=ttyS0 nokaslr' --enable-kvm