安装

安装

qemu-4.0.0.tar.xz从下载这里安装完所有必要的依赖项后,我运行$ ./configure --target-list=aarch64-softmmu以进行QEMU安装。我仔细检查了$ qemu-system-aarch64 --version返回的安装QEMU emulator version 4.0.0 Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers。我继续构建$ sudo qemu-img create -f qcow2 alpine-img.qcow2 10G返回的磁盘映像Formatting 'alpine-img.qcow2', fmt=qcow2 size=10737418240 cluster_size=65536 lazy_refcounts=off refcount_bits=16。我下载alpine-virt-3.12.1-aarch64.isoalpine-standard-3.12.1-aarch64.iso这里对于它们两个,当我运行时,sudo qemu-system-aarch64 -cdrom alpine-image.iso -machine virt -m 1024 -smp 4 -hda alpine-img.qcow2我会得到一个QEMU窗口,该窗口不会继续安装,永远留在那里,并显示compat_monitor0 console QEMU 4.0.0 monitor - type 'help' for more information (qemu)。任何帮助,将不胜感激!

编辑1:以下命令也不起作用:$ sudo qemu-system-aarch64 -boot d -cdrom alpine-standard-3.12.1-aarch64.iso -machine virt -m 1024 -smp 4 -hda alpine-img.qcow2

编辑2:添加-device virtio-gpu-pci命令,即sudo qemu-system-aarch64 -boot d -cdrom alpine-standard-3.12.1-aarch64.iso -machine virt -m 1024 -smp 4 -hda alpine-img.qcow2 -device virtio-gpu-pci打开窗口,但这次显示:访客尚未初始化显示屏(尚未)。帖子这里说“这不是一个错误。这只是 QEMU 告诉您来宾操作系统尚未完成打开模拟显卡和显示输出所需的操作。在这种情况下,可能的原因是您尝试运行一个无法在此主板模型上运行的内核,因此它在到达任何地方之前就崩溃了。如果内核没有内置图形支持并且只是向串行控制台输出,您也可以看到此消息。

编辑3:选项-nographic来自这里似乎也不起作用。

编辑4:我尝试了相同的过程ubuntu-16.04.7-server-arm64.iso和相同的结果...看来我的构建一定有问题QEMU

编辑5:有人问我是否有理由使用旧版本的QEMU.该问题与版本无关,因为它也QEMU发生过。v5.2.0-rc4

编辑6:一定要看看帖子的答案这里。我的结论是,忘记这些.iso文件吧。而是从以下地址下载vmlinuz-lts内核和initramfs-ltsinitrd 文件这里然后就这样:

qemu-system-aarch64 -machine virt -m 1024 -cpu cortex-a57 -kernel vmlinuz-lts -initrd initramfs-lts -append "console=ttyAMA0 ip=dhcp alpine_repo=http://dl-cdn.alpinelinux.org/alpine/edge/main/" -nographic

确保您位于内核和 initrd 文件所在的目录中,并且一定要使用该-nographic选项,因为否则它对我不起作用。我还没有弄清楚到底发生了什么事情的细节。一旦我这样做了,我就会添加一个答案。尽管如此,通过上面的命令,您最终将看到 Alpine Linux 欢迎页面!

编辑7:上面的命令不能解决modloop启动期间的问题。您可以找到modloopalpine LTS 或边缘版本这里。因此,该命令应更改为qemu-system-aarch64 -machine virt -m 1024 -cpu cortex-a57 -kernel vmlinuz-lts -initrd initramfs-lts -append "console=ttyAMA0 ip=dhcp alpine_repo=http://dl-cdn.alpinelinux.org/alpine/edge/main/ modloop=http://dl-cdn.alpinelinux.org/alpine/edge/releases/aarch64/netboot/modloop-lts" -nographic。你可以检查这里更多细节。

编辑8:我将-hda标志添加到最终命令中,以在我使用创建的映像磁盘上实际安装 Alpine qemu-img。我跑过去alpine-setup,却发现Available disks are:我只有一个vda选择。所以我选择它,然后我被问到How would you like to use it?,我的选择是sys,,data....lvm我选择sys并得到ERROR:unable to select packages: syslinux (no such package): required by: world[syslinux]。这实际上与我指定的磁盘映像有关吗?顺便说一句,如果没有这个-hda选项,安装 alpine 就没有任何问题了。因此,对于安装,应将安装选项(也许-hda)传递给qemu命令。

编辑9: 链接显示默认情况下 Alpine 使用 Syslinux 作为引导加载程序。另外,虽然该包似乎可用这里,使用apk add syslinuxAlpine 不会返回任何内容...显然,在 Alpine on Disk 的安装阶段,正在搜索 syslinux 但未找到...

编辑10:@rudib 的回答对我来说就像一个魅力。至于文件,你可以在包QEMU_EFI-pflash.raw中找到它rpm这里。只需找到该aarch64条目并提取QEMU_EFI-pflash.raw文件即可。

编辑11:最后一点:如果您想在共享目录中写入,请确保从主机QEMU以 root ( sudo) 身份运行,考虑到答案使用passthrough安全模型!有关这方面的更多信息,请参阅这里

编辑12:如果您想使用samba(即),您可以在安装 cifs-utils 后在主机和来宾中qemu smb使用该命令qemu-system-aarch64 -nographic -machine virt -m 4096 -cpu cortex-a57 -drive if=pflash,format=raw,readonly,file=path_to_efi_file/QEMU_EFI-pflash.raw -drive format=raw,readonly,file=path_to_alpine_virt_iso/alpine-virt-3.12.1-aarch64.iso -drive file=path_to_qcow2_file/alpine.qcow2 -net nic -net user,smb=path_of_shared_folder包裹: mount -t cifs //10.0.2.4/qemu mount_point (e.g. /mnt)。你可以阅读这里上一个命令中的whereqemu和come from 。10.0.2.4

答案1

安装

我已成功使用这些命令启动 alpine 映像并将其安装到映像中qcow2

# create qcow2 image
qemu-img create -f qcow2 alpine.qcow2 10G

# boot up with install medium
qemu-system-aarch64 \
-machine virt -cpu cortex-a57 \
-drive if=pflash,format=raw,readonly,file="/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw" \
-m 512M \
-drive format=raw,readonly,file=/path/to/alpine-standard-3.12.1-aarch64.iso \
-drive file=alpine.qcow2

edk2您的主机上需要该软件包或QEMU_EFI-pflash.raw通过其他方式获取该文件。

然后,您可以在( ) 上运行setup-alpine并安装 sys 。 似乎在这里开箱即用就很好。/dev/vdbalpine.qcow2setup-alpine

安装完成后,关闭系​​统并取出安装介质:

qemu-system-aarch64 \
-machine virt -cpu cortex-a57 \
-drive if=pflash,format=raw,readonly,file="/usr/share/edk2/aarch64/QEMU_EFI-pflash.raw" \
-m 512M \
-drive file=alpine.qcow2

您现在应该已经启动到新的 alpine 安装中。

图形

如果您需要图形,可以添加:

# ramfb seems to work (altough it wont be fast)
-device ramfb
# or virtio gpu, should be faster, but will be detected later
-device virtio-gpu

如果您想与虚拟机交互,您还需要添加外围设备:

-device usb-ehci -device usb-kbd -device usb-mouse

共享文件夹

如果您想共享文件夹,您可以使用 9p 或可能包含的 samba 服务器。 9p 应该像这样工作(如qemu 文档):

-fsdev local,path=/path/to/your/folder,security_model=none,id=test_dev \
-device virtio-9p-pci,fsdev=test_dev,mount_tag=test_mount

并在客人中:

mount -t 9p -o trans=virtio test_mount /mnt

相关内容