
A veces es necesario comprobar rápidamente las capacidades del sistema operativo que se ejecutan en diferentes arquitecturas. Puede usar una arquitectura diferente por varias razones, que incluyen:
Puede tener un dispositivo de prueba independiente e implementar sus programas y configuraciones directamente en él.
- Probablemente tenga un binario que se pueda compilar de forma cruzada y probar con el contenedor.
- Es posible que esté creando imágenes de contenedores para diferentes arquitecturas.
Si necesita un sistema operativo completo y no puede probar directamente en un dispositivo dedicado, este artículo es para usted. Para dispositivos integrados ARM64, hacerlo es simple. Puede ejecutar máquinas virtuales (VM) de diferentes arquitecturas en la arquitectura estándar x86_64, pero no se recomienda para uso en producción. Dado que se trata de una emulación, no puede esperar un alto rendimiento. Su experiencia dependerá de las capacidades de su PC.
objetivo
El objetivo principal de este ejercicio es configurar una VM Fedora ARM64 que funcione de la manera más fácil y rápida posible. Elegí la arquitectura ARM64 porque es más popular entre los teléfonos inteligentes, Internet de las cosas (IoT) y otros dispositivos integrados.
[ Get the guide to installing applications on Linux. ]
requisitos previos
Recomiendo instalar la versión completa de Fedora virtualization
Un conjunto de paquetes en el host. No se requieren todas las herramientas para configurar e iniciar una VM, pero puede encontrar otras herramientas útiles más adelante cuando trabaje con una nueva VM.
Instale el grupo de paquetes usando DNF:
$ sudo dnf group install --with-optional virtualization
puedes saber más sobre virtualization
grupo en Página de inicio de virtualización de Fedora.
también necesitas instalar qemu-system-aarch64
Obtenga la virtualización ARM64:
$ sudo dnf install qemu-system-aarch64
Crear y ejecutar una máquina virtual
Una vez que haya instalado los requisitos previos, puede comenzar a construir su máquina virtual.
[ Keep your most commonly used commands handy with the Linux commands cheat sheet. ]
1. Use virt-builder para preparar la imagen
La forma más rápida de crear una imagen de Fedora es usar virt-builder
Genere una imagen de Fedora 35 para la arquitectura ARM64 utilizando el archivo de imagen sin procesar de 10 GB:
$ virt-builder fedora-35 --arch aarch64 --size 10G --arch aarch64
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: checking the trustdb
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
[ 4.5] Downloading:
[ 5.2] Planning how to build this image
[ 5.2] Uncompressing
[ 10.1] Resizing (using virt-resize) to expand the disk to 10.0G
[ 31.2] Opening the new disk
[ 35.4] Setting a random seed
[ 35.5] Setting passwords
virt-builder: Setting random password of root to iPehMcWTKjxN3GEx
[ 36.4] Finishing off
Output file: fedora-35.img
Output size: 10.0G
Output format: raw
Total usable space: 10.0G
Free space: 8.9G (89%)
Si no ingresó la opción de contraseña raíz, virt-builder
Genera uno aleatorio, visible en la salida del comando.
notas: virt-builder
Para arquitecturas que no sean x86_64, la cantidad de variantes de imagen es limitada.Puede listarlos ejecutando virt-builder --list
En este ejemplo, uso Fedora 35, aunque Fedora 36 está disponible. La última versión del objetivo ARM64 se ha retrasado.Si esto es un problema en su configuración, le recomiendo que actualice la máquina virtual mientras se ejecuta o continúa. método alternativo sección a continuación.
2. Configure la máquina virtual con virt-install
Después de crear la imagen, use virt-install
Cree una máquina virtual por primera vez y ejecute un sistema operativo en ella.Este ejemplo crea un fedora-35-aarch64
Perfil con 4GB de RAM y 4 CPUs, utilizando previamente creado fedora-35.img
:
$ sudo virt-install -v --name fedora-35-aarch64 --ram 4096 \
--disk path=fedora-35.img,cache=none --nographics --os-variant fedora35 \
--import --arch aarch64 --vcpus 4
Después del primer arranque del sistema, puede iniciar sesión en su máquina virtual.El indicador de inicio de sesión debe indicar que está ejecutando aarch64
núcleo, como se muestra en la siguiente figura:
3. Use virsh para administrar máquinas virtuales
virsh
Es la interfaz principal para administrar dominios invitados. Puede utilizar esta herramienta para crear, suspender y cerrar dominios.Después de crear la VM usando virt-install
se hace visible virsh
:
$ sudo virsh list --all
Id Name State
------------------------------------
- fedora-35-aarch64 shut off
Inicie la máquina virtual con el siguiente comando:
$ sudo virsh start fedora-35-aarch64
Domain 'fedora-35-aarch64' started
Lea 8 subcomandos virsh de Linux para administrar máquinas virtuales en la línea de comandos para obtener más información sobre virsh
.
método alternativo
Si las soluciones anteriores no satisfacen sus necesidades, puede familiarizarse con estas alternativas.
1. Utilice la imagen oficial aarch64 de Fedora
Puedes usar el Fedora oficial aarch64
Una imagen de una arquitectura alternativa, especialmente si la versión que necesita aún no está disponible virt-builder
Sin embargo. Por ejemplo, para obtener la imagen sin procesar mínima de Fedora 36, ingrese:
$ wget -O f36.xz && unxz f36.xz
Tenga en cuenta el último dígito del archivo.En el momento de escribir este artículo, la última imagen disponible es Fedora-Minimal-36-1.5.aarch64.raw.xz
En el futuro, puede actualizar este comando con una versión de imagen más nueva.
[ Cheat sheet: Get a list of Linux utilities and commands for managing servers and networks. ]
El comando anterior descomprime la imagen usando unxz
a f36
, por lo que está listo para usar.Para configurar la imagen descomprimida, ejecute virt-install
:
$ sudo virt-install -v --name fedora-36-aarch64 --ram 4096 \
--disk path=f36,cache=none --nographics --os-variant fedora36 \
--import --arch aarch64 --vcpus 4
La imagen está casi lista, pero requiere configuración adicional. Después del inicio inicial, verá un menú con cinco opciones de configuración.Para tener tus imágenes listas rápidamente solo necesitas hacer los siguientes pasos 4) Creación de usuarios o 5) contraseña raíz y continuar como en el siguiente ejemplo:
Después de una configuración simple, la máquina virtual Fedora 36 está lista para usar.
2. Use qemu-system-aarch64 en lugar de virsh
Si no desea utilizar una máquina virtual administrada y confiar en virsh
hay una forma más tradicional de ejecutar una máquina virtual qemu-system-aarch64
directamente.
correr f36
Imagen de la sección anterior, ingresa:
$ qemu-system-aarch64 -nographic -m 4096M -cpu cortex-a57 -smp 4 \
-netdev user,id=unet -device virtio-net-pci,netdev=unet \
-drive file=f36 -M virt \
-bios /usr/share/edk2/aarch64/QEMU_EFI.fd
si virtualization
Falta el grupo de paquetes en su máquina, debe instalar edk2-aarch64
el paquete tiene QEMU_EFI.fd
en su sistema operativo.
envolver
Este artículo solo cubre los aspectos básicos de los sistemas operativos invitados ARM64. Puede instalar otras versiones y distribuciones de Linux, pero deberá hacer su propia investigación para obtener una imagen lista para usar. virt-builder
Solo unos pocos objetivos de imagen ARM64 configurables están disponibles, la última versión solo está disponible para Fedora. Afortunadamente, las distribuciones de Linux a menudo brindan ejemplos de creación de imágenes para ARM64. Es posible que deba ajustar manualmente estas imágenes para satisfacer sus necesidades. Si es así, lea Administrar imágenes de disco de máquinas virtuales con libguestfs para obtener más información sobre cómo administrar imágenes de máquinas virtuales.
Finalmente, cada comando que uso tiene múltiples opciones de línea de comando que modifican el comportamiento. Le animo a comprobar estas variantes visitando sus respectivas páginas man.