雖然 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
發佈留言