Me gustaría jugar con la versión ARM de Ubuntu (con soporte gráfico) en Qemu, pero tengo problemas para encontrar algún tutorial sobre cómo hacerlo más fácilmente (preferiría simplemente descargar alguna imagen y ejecutar un comando para ejecutarla) . ¿Cómo lograrlo con la menor molestia?
Respuesta1
En esta respuesta:https://askubuntu.com/questions/281763/is-there-any-prebuilt-qemu-ubuntu-image32bit-online/1081171#1081171He descrito las siguientes configuraciones de trabajo para el huésped/host de Ubuntu 18.04:
- Arm64 de imagen en la nube: configuración más rápida para comenzar
- debootstrap arm64: razonablemente rápido, pero permite una mayor personalización de la imagen
Esas configuraciones proporcionan imágenes de disco prediseñadas y no pasan por el instalador. Son las mejores opciones que he visto hasta ahora.
A continuación, también logré ejecutar la imagen del servidor arm64 en QEMU. Sin embargo, esto pasa por el instalador, lo cual es casi imposible de hacer, a menos que no esté en un host ARM con KVM. Esto es especialmente doloroso porque se requieren docenas de interacciones para finalizar la instalación.
Aquí está el script del servidor, probado en un host Ubuntu 18.10:
#!/usr/bin/env bash
set -eux
# Tested on Ubuntu 18.10.
# - https://superuser.com/questions/942657/how-to-test-arm-ubuntu-under-qemu-the-easiest-way
# - https://askubuntu.com/questions/797599/how-to-run-ubuntu-16-04-arm-in-qemu
# Parameters.
# This filename may need updating, check http://cdimage.ubuntu.com/releases/18.04/release/
id=ubuntu-18.04.3-server-arm64
#id=debian-9.6.0-arm64-xfce-CD-1
img="${id}.img.qcow2"
img_snapshot="${id}.img.snapshot.qcow2"
iso="${id}.iso"
flash0="${id}-flash0.img"
flash1="${id}-flash1.img"
# Images.
if [ ! -f "$iso" ]; then
wget "http://cdimage.ubuntu.com/releases/18.04/release/${iso}"
fi
if [ ! -f "$img" ]; then
qemu-img create -f qcow2 "$img" 1T
fi
if [ ! -f "$img_snapshot" ]; then
qemu-img \
create \
-b "$img" \
-f qcow2 \
"$img_snapshot" \
;
fi
if [ ! -f "$flash0" ]; then
dd if=/dev/zero of="$flash0" bs=1M count=64
dd if=/usr/share/qemu-efi/QEMU_EFI.fd of="$flash0" conv=notrunc
fi
if [ ! -f "$flash1" ]; then
dd if=/dev/zero of="$flash1" bs=1M count=64
fi
# Run.
#
# cdrom must be scsi or else the installation fails midway with:
#
# > Detect and mount CD-ROM
# >
# > Your installation CD-ROM couldn't be mounted. This probably means
# > that the CD-ROM was not in the drive. If so you can insert it and try
# > again.
# >
# > Retry mounting the CD-ROM?
# > Your installation CD-ROM couldn't be mounted.
#
# This is because the drivers for the default virtio are not installed in the ISO,
# because in the past it was not reliable on qemu-system-aarch64.
#
# See also:
# https://bazaar.launchpad.net/~ubuntu-testcase/ubuntu-manual-tests/trunk/view/head:/testcases/image/1688_ARM64_Headless_KVM_Guest
qemu-system-aarch64 \
-cpu cortex-a57 \
-device rtl8139,netdev=net0 \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom \
-device virtio-blk-device,drive=hd0 \
-drive "file=${iso},id=cdrom,if=none,media=cdrom" \
-drive "if=none,file=${img_snapshot},id=hd0" \
-m 2G \
-machine virt \
-netdev user,id=net0 \
-nographic \
-pflash "$flash0" \
-pflash "$flash1" \
-smp 2 \
;
Vea también esto para la emulación de Raspberry Pi:https://stackoverflow.com/questions/28880833/how-to-emulate-the-raspberry-pi-2-on-qemu/45814913#45814913
Escritorio AMD64 mostrado en:https://askubuntu.com/questions/884534/how-to-run-ubuntu-16-04-desktop-on-qemu/1046792#1046792