遇到的问题
qemu-system-aarch64启动的虚拟机,无法受到kvm的管理,也无法在后台运行终端一旦断开了,虚拟机就被关掉了,想再次进入目前没找到方法,都会回到安装操作系统的步骤
可能是
centos有某些特殊性吧,暂时没太多时间研究,后期有时间了再看看有没有解决的方案
安装 qemu-system-aarch64
qemu-5.2.0和之后的版本都需要使用python 3.6以上版本的环境才可以编译,不然会返回下面的报错
ERROR: Cannot use '/usr/bin/python', Python >= 3.6 is required. Use --python=/path/to/python to specify a supported Python.
安装依赖
yum install -y qemu-* pixman-devel gcc gcc-c++ make
不安装 pixman-devel 会有下面的报错
ERROR: pixman >= 0.21.8 not present. Please install the pixman devel package.
开始编译
wget --no-check-certificate https://download.qemu.org/qemu-4.2.0.tar.xz tar xf qemu-4.2.0.tar.xz cd qemu-4.2.0/ ./configure --target-list=aarch64-softmmu make make install
--target-list 指定需要装的架构,支持的架构非常多,默认这个 参数是 ALL ,太多了,没必要,这里就取自己需要的 aarch64-softmmu
创建 aarch64 操作系统
创建 kvm 存储路径
mkdir -p /data/kvm/iso cd /data/kvm/iso
准备 aarch64 的 iso 镜像
就还是拿 centos 举个栗子吧
使用的镜像版本高于当前宿主机的版本会有如下报错
(而且和当前版本持平也不行,必须低一个子版本......)
Failed to set MokListRT: Invalid Parameter Something has gone seriously wrong: import_mok_state() failed : Invalid Parameter
wget -c --no-check-certificate \ https://archive.kernel.org/centos-vault/altarch/7.6.1810/isos/aarch64/CentOS-7-aarch64-Minimal-1804.iso
下载 aarch64 的 UEFI 固件
wget http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd -O /data/kvm/QEMU_EFI.fd
创建虚拟磁盘
qemu-img create -f qcow2 /data/kvm/centos-aarch64.qcow2 100G
创建虚拟机
参数相关的,可以参考这篇博客:qemu-system-aarch64 使用和相关参数介绍
qemu-system-aarch64 \ -machine virt \ -cpu cortex-a57 \ -smp 1 \ -m 2048 \ -bios /data/kvm/QEMU_EFI.fd \ -device virtio-scsi-device \ -device scsi-cd,drive=cdrom \ -drive if=none,file=/data/kvm/iso/CentOS-7-aarch64-Minimal-1804.iso,id=cdrom,media=cdrom \ -device virtio-blk-device,drive=vd0 \ -drive if=none,file=/data/kvm/centos-aarch64.qcow2,id=vd0 \ -device virtio-net-device,netdev=eth0 \ -netdev user,id=eth0,hostfwd=tcp:172.72.0.106:10022-:22 \ -nographic
键盘方向键来选择安装
因为没有配置网络,这里是不支持 vnc ,因为没有开图形化,所以只能使用 text 的形式来选择
如果按了方向键出现乱码,可以按住 ctrl 键 + backspace 减来删除
已配置的项目,都会显示
[x]
输入数字
1~9回车来配置不同的内容,输入q退出,输入b开始安装,输入r刷新、
语言设置时区设置安装来源软件选择磁盘分区Kdump 配置网络配置root 用户密码创建用户
语言设置
这里我就默认是英文,就不操作了
时区设置
输入 2 之后回车
修改时区配置 ntp 服务
输入 1 之后回车,修改时区
欧洲亚洲美洲非洲南极洲太平洋澳大利亚大西洋印度北极美国etc 时区
输入 2 回车,这里需要再敲一次回车,但是我们可以先看这里面有没有自己想要的时区,比如我选择 上海,那就是数字 64
因为分辨率的问题,还有其他城市没有展示出来,下面的这个界面,就可以输入 64 然后回车了
安装来源
输入 3 回车
CD/DVD本地 ISO 文件网络
可以直接按 c 回车,默认是
本地 ISO 文件的方式
软件选择
输入 4 回车
因为我下载的是 minimal 的镜像,所以没有其他选择,centos 完整镜像会有很多选项,这一块大家知道是啥内容就可以了,思路和上面的时区配置是一样的,只需要输入对应的数字再回车就好了
我这里就输入 c 继续了
磁盘分区
输入 5 回车
选择磁盘,我这里只有一块 100G 的,只需要输入 c 回车就好了
替换现有 Linux 系统使用全部的空间使用空余的空间
我这边就使用默认的,
[x]在 2 的位置,直接输入 c 回车就可以了配置分区方案
标准分区BtrfsLVM 逻辑卷LVM 精简资源调配
没其他特殊情况,就用默认的
LVM 逻辑卷模式,输入 c 直接回车,好像 text 模式就自动分区了…










