雖然 ubuntu 有好用的 uvttool-libvirt 可以管理 cloud image , 但是似乎在 aarch64/ARM64 的平台上會有問題,
參數傳進去的時候似乎都會叫起來 VGA (cirrus), 但是 QEMU aarch64 上不支援 VGA (至少我用的不支援)
替代方案就是用 Virt Manager
安裝
$ sudo apt install virt-manager
跑一個簡單的 aarch64 image
$ sudo virt-install --name ubuntu-aarch64 --ram 2048 --arch aarch64 --boot uefi \
--disk /home/test/ubuntu.img,device=disk,bus=virtio \
--boot machine=virt,kernel=trusty-kernel,kernel_args="console=ttyAMA0 root=/dev/vda1 rw kgdboc=ttyAMA0,115200" \
--network bridge:virbr0 \
--os-type=linux \
--nographics \
--noautoconsole
ubuntu.img 是預先準備好的 ubuntu cloud image, 16.04 才可以支援比較多的 ARM64 平台.
14.04 支援的就少很多.
以上的參數比較重要的是 –noautoconsole, 這樣執行時就不會等在那邊, 會自動啟動.
–noautoconsole will install vm to libvirt without connect to console
—- 2017/03/10 —-
也可以用 virt-install + netboot install
先建立 image
$ qemu-img create -f qcow2 ./name.qcow2 30G
再執行 virt-install , 目前測過 14.04 和 16.04 , 只有 16.04 成功, 猜想是 ports 那邊少了什麼東西
$ sudo virt-install --name ubuntu-aarch64 --ram 4096 --vcpus 4 --arch aarch64 \
--boot uefi \
--disk /home/richliu/disk.qcow2,device=disk,bus=virtio \
--network bridge:virbr0 \
--os-type=linux \
--nographics \
--location 'http://ports.ubuntu.com/dists/xenial/main/installer-arm64/'
這個參數可以順利安裝完, 然後再啟動系統就好
—- 2017/04/26 —-
如果是要裝 ARM64 Trusty-Update 的 Netboot kernel . 要動一下小技巧
1) 先在 host VM 上安裝 apache2
2) 到 /var/www/html 上 mirror http://ports.ubuntu.com/dists/trusty-updates/main/installer-arm64/current/images/ 下的
* MANIFEST
* MANIFEST.udebs
* xenial-generic/netboot =>
目錄要照著放, 所以會是
$ cd /var/www/html
$ mkdir -p dists/trusty-updates/main/installer-arm64/current/images/
$ cd dists/trusty-updates/main/installer-arm64/current/images/
$ lftp http://ports.ubuntu.com/dists/trusty-updates/main/installer-arm64/current/images/
[download blah blah]
$ mv xenial-generic/netboot .
然後 –location 指到 http://[ARM64 Server IP] 這樣就可以了, ex:
virt-install --name ubuntu-aarch64 --ram 8192 --vcpus 4 --arch aarch64 \
--boot uefi \
--disk /root/disk.qcow2,device=disk,bus=virtio \
--network bridge:virbr0,model=virtio \
--os-type=linux \
--nographics \
--location http://10.102.81.16/dists/trusty-updates/main/installer-arm64
對了, 這邊的 model=virtio 是強迫 network interface 不要用 vhost, 而是用 virtio
$ virsh start ubuntu-aarch64
$ virsh connect ubuntu-aarch64
ref.
KVM Guest virt-install examples with virtio drivers
Installing Virtual Machines with virt-install, plus copy pastable distro install one-liners
發佈留言