Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

efivar 36: device_get() failed to parse AArch64 VM disk #113

Closed
lcp opened this issue Jul 19, 2018 · 1 comment
Closed

efivar 36: device_get() failed to parse AArch64 VM disk #113

lcp opened this issue Jul 19, 2018 · 1 comment

Comments

@lcp
Copy link
Contributor

lcp commented Jul 19, 2018

The AArch64 VM is created with the following command:

$ qemu-system-aarch64 -enable-kvm -m 1024 -cpu host \
  -machine virt,usb=off,its=off \
  -bios qemu-uefi-aarch64.bin \
  -S \
  -serial file:serial.log \
  -monitor stdio \
  -device virtio-gpu-pci \
  -vnc :94,share=force-shared \
  -device usb-ehci -device usb-kbd -device usb-tablet \
  -device virtio-scsi-pci,id=scsi0 \
  -device virtio-blk-device,drive=hd1,bootindex=0,serial=1 \
  -drive file=disk.img,cache=unsafe,if=none,id=hd1,format=qcow2,discard=on

When creating the boot option with efibootmgr, I got the error message:

# efibootmgr -c -d /dev/vda1 -l "\\EFI\\opensuse\\grubaa64.efi" -v -v -v
Could not prepare Boot variable: Function not implemented
error trace:
 linux.c:454 device_get(): unknown storage interface: Success
 creator.c:194 efi_va_generate_file_device_path_from_esp(): could not get ESP disk info: Function not implemented
 creator.c:340 efi_generate_file_device_path_from_esp(): could not generate File DP from ESP: Function not implemented
 efibootmgr.c:287 make_var(): make_linux_load_option() failed: Function not implemented
 efibootmgr.c:336 make_var(): Could not set variable: Function not implemented

Here is the link of vda1 in /sys/dev/block:

254:1 -> ../../devices/platform/LNRO0005:1f/virtio4/block/vda/vda1

It seems efivar failed to parse "devices/platform/LNRO0005:1f" before reaching "virtio4" so linux-virtblk didn't work.

For reference, this is the boot option created by AAVMF:

Boot0007* Linux Loader  VenHw(837dca9e-e874-4d82-b29a-23fe0e23d1e2,003e000a00000000)/HD(1,GPT,0aa5f275-9ecd-4551-8a06-dd5a1a071804,0x800,0xfa000)/File(\EFI\opensuse\grubaa64.efi)
@lcp
Copy link
Contributor Author

lcp commented Jul 20, 2018

The acpi-root parser in git HEAD can parse the path correctly. Close this issue.

@lcp lcp closed this as completed Jul 20, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant