Skip to content

Instantly share code, notes, and snippets.

@juner417
Created January 22, 2024 15:27
Show Gist options
  • Save juner417/fff024d338561312939c4266fd542caa to your computer and use it in GitHub Desktop.
Save juner417/fff024d338561312939c4266fd542caa to your computer and use it in GitHub Desktop.
Starting podman machine is stuck with qemu assert

Starting podman machine is stuck with qemu assert

issue

  • podman을 설치해보겠다고... 설치하고 podman machine을 실행하다가 계속 starting 상태에서 멈춰있음

  • log를 좀 찍어봤음

# machine init
podman machine init --cpus 4 --disk-size 50 --memory 4096 --rootful

# machine start with debug
podman --log-level debug machine start
INFO[0000] podman filtering at log level debug
DEBU[0000] Using Podman machine with `qemu` virtualization provider
Starting machine "podman-machine-default"
DEBU[0000] {true 1500 map[forward-dest:[/run/podman/podman.sock] forward-identity:[/Users/junho417/.ssh/podman-machine-default] forward-sock:[/Users/junho417/.local/share/containers/podman/machine/qemu/podman.sock] forward-user:[root]] [] map[listen-qemu:unix:///var/folders/_9/qv4kr4l15d5bnpdr01lk_j_m0000gn/T/podman/qmp_podman-machine-default.sock] /var/folders/_9/qv4kr4l15d5bnpdr01lk_j_m0000gn/T/podman/podman-machine-default_proxy.pid 50302}
DEBU[0000] qemu cmd: [/opt/podman/qemu/bin/qemu-system-aarch64 -accel hvf -accel tcg -cpu host -M virt,highmem=on -drive file=/opt/podman/qemu/share/qemu/edk2-aarch64-code.fd,if=pflash,format=raw,readonly=on -drive file=/Users/junho417/.local/share/containers/podman/machine/qemu/podman-machine-default_ovmf_vars.fd,if=pflash,format=raw -m 4096 -smp 4 -fw_cfg name=opt/com.coreos/config,file=/Users/junho417/.config/containers/podman/machine/qemu/podman-machine-default.ign -qmp unix:/var/folders/_9/qv4kr4l15d5bnpdr01lk_j_m0000gn/T/podman/qmp_podman-machine-default.sock,server=on,wait=off -netdev socket,id=vlan,fd=3 -device virtio-net-pci,netdev=vlan,mac=5a:94:ef:e4:0c:ee -device virtio-serial -chardev socket,path=/var/folders/_9/qv4kr4l15d5bnpdr01lk_j_m0000gn/T/podman/podman-machine-default_ready.sock,server=on,wait=off,id=apodman-machine-default_ready -device virtserialport,chardev=apodman-machine-default_ready,name=org.fedoraproject.port.0 -pidfile /var/folders/_9/qv4kr4l15d5bnpdr01lk_j_m0000gn/T/podman/podman-machine-default_vm.pid -virtfs local,path=/Users,mount_tag=vol0,security_model=none -virtfs local,path=/private,mount_tag=vol1,security_model=none -virtfs local,path=/var/folders,mount_tag=vol2,security_model=none -drive if=virtio,file=/Users/junho417/.local/share/containers/podman/machine/qemu/podman-machine-default_fedora-coreos-39.20240112.2.0-qemu.aarch64.qcow2]
Waiting for VM ...
# 여기에서 하루종일 멈춰있음
  • qemu 로그 image

root cause

  • 위 내용을 가지고 원인을 찾아보니 아래의 링크를 확인할수 있었음
  • https://gitlab.com/qemu-project/qemu/-/issues/1990
  • 정리
    • podman machine은 qemu 를 이용하여 가상머신을 에뮬레이션함
    • qemu는 EDK2를 이용하여 uefi 펌웨어를 구성함
    • EFI memory attributes protocol을 부정확하게 사용하는 버그가 있었음
    • 결국 qemu 8.2.1에서 제공할 예정이라 함(24년도 1월 말 예정)
    • lima는 임시 edk2를 포크해서 사용중이며, colima는 m3에서는 vz 타입의 vm을 생성함

결론

  • colima의 대처가 제일 유연해서 맘에 듬... 이걸로 선택해야겠다.

version info

sysctl machdep.cpu.brand_string
machdep.cpu.brand_string: Apple M3 Pro

sw_vers
ProductName:            macOS
ProductVersion:         14.1
BuildVersion:           23B2073

/opt/homebrew/bin/qemu-system-aarch64 -version
QEMU emulator version 8.2.0
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers

sha256sum /opt/homebrew/share/qemu/edk2-aarch64-code.fd
f24c168810c9bc8270854b85b916c0cf2b0826a2e031822e961eabfab36b16ab  /opt/homebrew/share/qemu/edk2-aarch64-code.fd
@juner417
Copy link
Author

그럼 왜 podman을 선택했나?

  • docker랑 호환성 좋고
  • kind, minikube, lima 연동하여 사용가능
  • 많은 github 스타
  • 쿨한 로고

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment