QEMU虚拟化

1. 在Windows用QEMU模拟aarch64虚拟机

1.下载MSYS2并在MSYS22 UCRT64输入命令更新依赖包
pacman -Syu
2.安装QEMU
pacman -S mingw-w64-x86_64-qemu
3.查看QEMU版本
qemu-system-aarch64 -version
4.安装VPN软件创建虚拟网卡,重命名为tap0,把物理网卡共享给tap0
5.下载引导文件QEMU_EFI.fd并跟Kylin-V10-SP2-2105-ARM64.iso和kylindisk.qcow2一起放到D:\\kylin
6.创建QEMU虚拟机
qemu-img create -f qcow2 /d/kylin/kylindisk.qcow2 120G
7.安装Kylin操作系统

1
qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios /d/kylin/QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=/d/kylin/kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=/d/kylin/Kylin-V10-SP2-2105-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net tap,ifname=tap0

8.在弹出的安装界面,根据向导完成安装
9.启动Kylin操作系统

1
qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios /d/kylin/QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=/d/kylin/kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -device virtio-scsi-device -net nic -net tap,ifname=tap0

2. 在Linux用QEMU模拟aarch64虚拟机

2.1 升级GCC到7.4.0

1.Linux服务器联网,yum安装依赖软件包
yum -y install make gcc gcc-c++ clang texinfo automake gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel isl isl-devel
2.下载gcc-7.4.0.tar.xz后解压,创建build目录并进入
tar -xf gcc-7.4.0.tar.xz && mkdir gcc-7.4.0/build && cd gcc-7.4.0/build/
3.配置安装环境,生成Makefile
../configure --prefix=/usr/local --enable-checking=release --enable-languages=c,c++ --disable-multilib
4.配置成功后,编译软件
make
5.安装编译好的软件
make install
6.替换旧版GCC
mv /usr/bin/gcc /usr/bin/gcc_7.3.0 && ln -s /usr/local/bin/gcc /usr/bin/gcc
7.确认GCC版本
gcc -v

2.2 安装QEMU

1.yum安装依赖软件包
yum -y install pixman pixman-devel libmount libmount-devel glib2 glib2-devel libtool flex bison clang
2.下载ninja-linux-v1.12.0并解压,将ninja放进系统环境
unzip ninja-linux.zip && mv ninja /usr/bin/
3.检查ninja版本
ninja --version
4.下载qemu-8.1.5.tar.xz并解压,创建build目录并进入
tar -xf qemu-8.1.5.tar.xz && mkdir qemu-8.1.5/build/ && cd qemu-8.1.5/build/
5.配置安装环境,生成Makefile
../configure --prefix=/usr/local
6.配置成功后,编译软件
make
7.安装编译好的软件
make install

2.3 在QEMU安装Kylin V10 aarch64

1.yum安装依赖软件包
yum -y install net-tools
2.添加虚拟网卡tap0
宿主机 IP 为 10.10.10.1,网卡为 ens33

1
2
3
4
5
ip tuntap add tap0 mode tap
ip link set tap0 up
echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp
ip route add 10.10.10.2 dev tap0
arp -Ds 10.10.10.2 ens33 pub

3.创建Kylin V10 ARM64虚拟机磁盘文件
qemu-img create -f qcow2 kylindisk.qcow2 120G
4.下载引导文件QEMU_EFI.fd并跟官方镜像和kylindisk.qcow2放在一起
5.使用官方镜像安装系统(只有Kylin-V10-SP2-2105-ARM64.iso可以)

1
qemu-system-aarch64 -m 8192 -cpu cortex-a72 -smp 2,cores=1,threads=2,sockets=1 -M virt -bios QEMU_EFI.fd -netdev tap,ifname=tap1,id=tapnet,script=no -device virtio-net-device,netdev=tapnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=Kylin-V10-SP2-2105-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0

6.使用TigerVNC连接localhost:5900安装界面,根据向导完成安装
7.运行新安装的系统

1
qemu-system-aarch64 -m 1024 -cpu cortex-a72 -smp 4,cores=1,threads=4,sockets=1 -M virt -bios QEMU_EFI.fd -netdev tap,ifname=tap1,id=tapnet,script=no -device virtio-net-device,netdev=tapnet -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=kylindisk.qcow2,id=hd0 -device virtio-blk-device,drive=hd0