使用QEMU运行虚拟机

1,编译安装新内核

1,get kernel source from here

2,将当前guest os的内核配置文件 /boot/config-5.10.0 拷贝至内核源码目录并命名为.config

3,执行命令“make rpm-pkg -j10” 将内核各个组件编译为RPM包

4,生成的RPM包位于“/root/rpmbuild/RPMS/aarch64/”:

kernel-headers-5.10.0-1.aarch64.rpm, kernel-devel-5.10.0-1.aarch64.rpm, kernel-5.10.0-1.aarch64.rpm

可以使用rpm -qlp xxx.rpm查看这个RPM包内包含了哪些文件。

5,第一次全量编译后后续只需要执行 make Image -j 单独编译内核镜像

6,在host上编译好内核后将上述RPM包copy至虚机,先执行“rpm –e kernel-5.10.0-0.aarch64”卸载老内核,再执行“rpm –ivh kernel-5.10.0-1.aarch64.rpm”安装新内核。

7,上述安装命令会在/boot/efi/EFI/centos/grub.cfg中自动为新内核新增一个启动项,我们需要再更新这个文件修改“set default=0” 以选择新内核启动。

8,我们可以从/boot/ initramfs-5.10.0.img获得当前运行系统的initramfs。

2,编译QEMU

1,get QEMU from here

2,解压之后执行以下命令编译QEMU

cd /path/to/qemu_source
mkdir build
cd build
../configure --target-list=aarch64-softmmu --enable-kvm --enable-debug #只编译ARM64,"./configure --help"查看所有支持的target
make -j8

编译好的QEMU可执行文件在 /path/to/source/qemu-6.0.0/build/qemu-system-aarch64

3,为QEMU准备网络环境

brctl addbr br0                                #创建桥接guest和host的bridge,虚机的后端网卡tap0将加入这一bridge
ifconfig br0 192.168.101.1/24                  #配置host bridge的IP,虚机IP应在同一网段
#若需开启虚机访问外网权限则执行以下步骤
echo 1 > /proc/sys/net/ipv4/ip_forward                   #打开host路由转发功能
iptables -F                                              #清空防火墙规则
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE     #开启NAT,虚机访问外网时使用host的public IP

QEMU启动过程中会调用脚本"/etc/qemu-ifup"将tap0加入到bridge中,所以需要准备此文件:

#!/bin/sh
set -x
​
switch=br0
​
if [ -n "$1" ];then
        # tunctl -u `whoami` -t $1 (use ip tuntap instead!)
        ip tuntap add $1 mode tap user `whoami`
        ip link set $1 up
        sleep 0.5s
        # brctl addif $switch $1 (use ip link instead!)
        ip link set $1 master $switch
        exit 0
else
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值