New*_*bie 2 virtual-machine x86 qemu alpine-linux
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.iso下载,对于它们两个,当我运行时,我会得到一个窗口,该窗口不会继续安装,永远留在那里,并显示。任何帮助,将不胜感激!alpine-standard-3.12.1-aarch64.isosudo qemu-system-aarch64 -cdrom alpine-image.iso -machine virt -m 1024 -smp 4 -hda alpine-img.qcow2QEMUcompat_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打开窗口,但这次显示:Guest尚未初始化显示(尚未)。这里的帖子说“这不是一个错误。这只是 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启动过程中的问题。您可以在此处modloop找到alpine 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,,....我选择并得到。这实际上与我指定的磁盘映像有关吗?顺便说一句,如果没有这个选项,安装 alpine 就没有任何问题了。因此,对于安装,应将安装选项(也许)传递给命令。datalvmsysERROR:unable to select packages: syslinux (no such package): required by: world[syslinux]-hda-hdaqemu
编辑 9: 此链接表示默认情况下 Alpine 使用 Syslinux 作为引导加载程序。另外,虽然该软件包似乎可以在此处使用,但使用apk add syslinuxAlpine 不会返回任何内容...显然,在 Alpine on Disk 的安装阶段,正在搜索 syslinux 但未找到...
编辑10: @rudib 的回答对我来说就像一个魅力。至于该文件,您可以在此处的包QEMU_EFI-pflash.raw中找到它。只需找到该条目并提取文件即可。rpmaarch64QEMU_EFI-pflash.raw
编辑11:最后一点:如果您想在共享目录中写入,请确保从主机QEMU以 root ( sudo) 身份运行,考虑到答案使用passthrough安全模型!有关这方面的更多信息,请参阅此处。
编辑12:如果您想使用samba(即),您可以在安装 cifs-utils软件包后在主机和来宾中qemu smb使用该命令:。您可以在此处阅读上一个命令中的where和come from 。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_foldermount -t cifs //10.0.2.4/qemu mount_point (e.g. /mnt)qemu10.0.2.4
我已成功使用这些命令启动 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
您现在应该已经启动到新的 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
Run Code Online (Sandbox Code Playgroud)
如果您想与虚拟机交互,您还需要添加外围设备:
-device usb-ehci -device usb-kbd -device usb-mouse
Run Code Online (Sandbox Code Playgroud)
如果您想共享文件夹,您可以使用 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
Run Code Online (Sandbox Code Playgroud)
并在客人中:
mount -t 9p -o trans=virtio test_mount /mnt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2768 次 |
| 最近记录: |