QEMU 6.2.0을 사용하여 Mac OS에서 aarch64 alpine linux를 부팅할 수 없습니다

QEMU 6.2.0을 사용하여 Mac OS에서 aarch64 alpine linux를 부팅할 수 없습니다

Mac M1/apple 칩에서 alpine linux를 실행 하려고 하는데 qemu-system-aarch64, 제공된 ISO에서 부팅하는 대신 항상 QEMU 모니터[1]를 사용합니다.

다음은 문제 없이 작동합니다. ISO에서 부팅하면 예상대로 로그인하여 사용 가능한 셸을 얻을 수 있습니다(참고 x86_64).

qemu-system-x86_64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-x86_64.iso -m 2048

aarch64 버전과 매우 유사한 것을 시도하면 앞서 언급한 QEMU 모니터가 나타납니다(분명히 기본 머신이 없으므로 를 사용합니다 virt).

qemu-system-aarch64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-aarch64.iso -m 2048 -machine virt

궁극적으로 내 목표는 에뮬레이트하는 것이 아니라 hvfQEMU 6.2.0에서 사용할 수 있는 새로운 기능을 사용하는 것이므로 다음과 같이 실행할 것이라고 가정했지만 이번에도 QEMU 모니터 창만 표시됩니다.

qemu-system-aarch64 -boot d -cdrom ~/Downloads/alpine-standard-3.15.0-aarch64.iso -m 2048 -cpu host -machine virt,highmem=off -accel hvf

내가 뭘 잘못하고 있는지에 대한 제안이 있습니까?

[1] 모니터는 일종의 대화형 셸이 있는 별도의 창이며 다음을 표시합니다(도움말을 시도했지만 관련 항목을 찾을 수 없음).

compat_monitor0 console
QEMU 6.2.0 monitor - type `help` for more information
(qemu)

답변1

Linux에서도 동일한 문제가 있었지만 여기 지침에 따라 작동하게 만들 수 있었습니다.

http://www.redfelineninja.org.uk/daniel/2018/02/running-an-iso-installer-image-for-arm64-aarch64-using-qemu-and-kvm/

수석/의사:

pflash먼저 디스크 이미지와 virtio가변 저장소 파일을 생성하고 지정해야 합니다 .

qemu-img create -f qcow2 varstore.img 64M
qemu-img create -f qcow2 alpine.img +20G

적절한 QEMU EFI 파일로 부팅합니다.

wget http://snapshots.linaro.org/components/kernel/leg-virt-tianocore-edk2-upstream/latest/QEMU-AARCH64/RELEASE_GCC5/QEMU_EFI.img.gz
gunzip QEMU_EFI.img.gz

달리기:

sudo /home/user/qemu-6.2.0/build/qemu-system-aarch64 \
-cpu cortex-a57 -M virt -m 2048 -nographic \
-drive if=pflash,format=raw,file=QEMU_EFI.img \
-drive if=pflash,file=varstore.img \
-drive if=virtio,file=alpine.img \
-drive if=virtio,format=raw,file=alpine-virt-3.15.0-aarch64.iso \
-net nic \
-net user \
-no-reboot

답변2

@손님그 대답은 나에게 효과적이었습니다. 내 대답은 추가하는 것입니다. (원래 댓글을 달고 싶었는데 알고보니 생각보다 단어수가 좀 많았네요)

qemu-7.2.0나는 에서 Homebrew또는 qemu-7.1.0에서 동일한 문제를 겪었습니다 Macports. 내가 소유한 것은 "Apple M1" 칩과 macOS Monterey 12.3을 탑재한 Macbook Pro 16인치입니다.

내가 배운 것은 qemu-system-aarch64부팅하려면 UEFI가 필요한 것 같고 레거시 BIOS는 작동하지 않는다는 것입니다. (Google"qemu aarch64 uefi”, 첫 번째 Google 페이지의 기사/블로그/문서에 있는 모든 예제는 qemu-system-aarch64UEFI 이미지를 사용하여 호출된다는 것을 나타냅니다.

최종 명령줄은 다음과 같습니다.

qemu-system-aarch64 -m 512 -smp 1 \
    -boot d -cdrom alpine-virt-3.17.0-aarch64.iso \
    -n그래픽\
    -M virt,accel=hvf,highmem=off \
    -drive if=pflash,format=raw,file=edk2-aarch64-code.fd -cpu 호스트

edk2-aarch64-code.fd패키지와 함께 제공되며 for 또는 for 폴더 에 qemu있는 UEFI 이미지입니다 ./opt/local/share/qemu/Macports/opt/homebrew/share/qemu/Homebrew

나는 -cpu <...>그것을 사용해야한다는 것을 알았습니다. 다음 CPU를 사용해 보았는데 모든 것이 잘 작동합니다. 그것 없이는 일할 수 없습니다.

host
max
cortex-a57

varstore.img또한 EFI 가변 저장소 로 작은 이미지를 사용할 필요가 없을 수도 있다는 것을 발견했습니다.@손님답변). 완전한 테스트를 수행하지 않았기 때문에 이에 대해 100% 확신할 수는 없습니다.

( -nographic그냥 내 취향)

관련 정보