PVE 玩转 ARM

well 9月前 2035

    在虚拟化方面,目前 vmware、vbox 比较常用的虚拟化对 arm 的支持有限,而 pve 基于 kvm + qemu 的方式则能很好的把 arm 玩起来。

    该方法使用的是 x86 下 PVE 6.1 版本,arm 操作系统用的是 CentOS-7-aarch64-Everything-1810.iso。

    创建虚拟机方式如下:

    

Create VM => General => OS(Do not use any media) => System(BIOS: OVMF(UEFI), Add EFI Disk: disable)

=> Hard Disk => CPU => Memory => Network(Firewall disable)


    注意以上每个步骤的选择。

    创建完毕后,需要调整几项参数,部分参数页面也能调整,考虑到一部分参数需要进入宿主进行命令方式操作,那就一步到位搞定,命令如下:    

qm set 100 -arch aarch64 -vmgenid 0 -serial0 socket -vga serial0 -delete ide2 -scsi1 local:iso/CentOS-7-aarch64-Everything-1810.iso,media=cdrom -args '-machine gic-version=3'

    关键参数:

    1. arch 是调整处理器架构,启动后会是 cortex-a57;

    2. vmgenid 需要置 0,否则无法启动虚拟机;

    3. CD/DVD 默认是 ide2,启动时 uefi 引导不了,先删掉再添加到 scsi1 上;

    4. vga 默认是用 noVNC 来安装和管理操作系统,这里 CentOS 无法进入,调整用串口方式,安装和管理时用 xterm.js 方式,这一步在界面上可以操作,需要操作 Serial Port 和 Display 两项;

    5. 添加额外的参数 args,这一步是调整中断控制器版本到 v3,支持 8 个以上的 Core。


    注意:

        1. CentOS 7 aarch64 不支持 e1000 系列网卡驱动,网卡还是用默认的 VirtIO 吧;

        2. 基于 kvm 加速就别玩了,同处理器架构加速没问题,x86 上跑 arm 属于异构架构,跨架构情况下只能模拟,不能加速,老老实实用默认的 TCG 引擎吧;

        3. 如果是 windows 下徒手玩 qemu 跑 arm,安装操作系统时,终端基于文本安装方式导致窗口里文字重叠,无法继续进行安装,请使用 ConEmu 来运行终端。

        4. 如果安装 CentOS 后,虚拟机里配置好 ip 地址后,发现网络有问题,请执行如下命令:

> dhclient -r
> dhclient
> ifdown eth0 && ifup etho0


    搞定后,就可以愉快的玩耍了。我是在 Esxi 下玩 PVE + aarch64,属于虚拟机嵌套了,遇到了桥接网络不通问题,我看也有不少人遇到这类问题,请看我另外一篇贴。

最新回复 (0)
返回