[SOLVED] Physical drive EFI disk passthrough issues.

Hello, you're starting to get the idea. Not dumb at al either, it took me a while to figure out and you're right in your post it is NOT documented at all and very vague that they are only talking about LEGACY system passthrough in any post. You want to point proxmox to the disk by ID which you get from:
"find /dev/disk/by-id/ -type l|xargs -I{} ls -l {}|grep -v -E '[0-9]$' |sort -k11|cut -d' ' -f9,10,11,12"
on the proxmox server root shell.
Say for example we were working with: "ata-SPCC_Solid_State_Disk_AA230418S301KG01281"
We set that to "scsiX" to the disk by id so it's using the whole disk not individual partitions then use VirtIO as controller also sometimes it can help to NOT "pre-enroll" the EFI keys (not always but from experience, some EFI VMs don't seem to work with that option)
Then set the CD/ROM to any live linux image I think I used Ubuntu? Then yes follow what you posted and it should set the EFI keys updated to those established in the VM creation process. From there it should work? If I can remember correctly, I actually don't have that VM anymore but if you have any issues please let me know and I will work to help you resolve them :D

Hmm upon trying to do a sudo mount of the EFI volumen on the second mount cmd, I get an error below, I also find it curious that after the first mount on /mnt, I didn't have the /mnt/boot/efi, but I had a /mnt/efi, I tried to mount the EFI volumen in both places at the error was the same. There is a type of file system that someone is missing....

--- error on second mount cmd ----START
>sudo mount /dev/sdXX /mnt/boot/efi

NTFS signature is missing.
Failed to mount '/dev/sda1': Invalid argument
The device '/dev/sda1' doesn't seem to have a valid NTFS.
Maybe the wrong device is used? Or the whole disk instead of a partition ....
--- error on second mount cmd ---- END
 
By the way... Thanks for all the help.. on this post... I am still not there.. but I very much appreciate your insights, if you have other pointers let me know.
 
No this was a complete linux Ubuntu system. I can see the content of the drives when I mount part2(boot) and part3(main)[1g], although I never tried to mount the EFI to see the files.. or whatever is there.. I have only tried to mount part2 and part3 to browse the files.. the HDD was on a baremetal that I was using for VBox server before I came to known promox.
 
No this was a complete linux Ubuntu system. I can see the content of the drives when I mount part2(boot) and part3(main)[1g], although I never tried to mount the EFI to see the files.. or whatever is there.. I have only tried to mount part2 and part3 to browse the files.. the HDD was on a baremetal that I was using for VBox server before I came to known promox.
Okay and just to confirm and this point you changed your config to pass through the entire drive via scsi0 right? You're no longer passing each partion? You want to point the whole disk over. If so then make sure you're adding a live ISO to CD/R drive to boot on. On the live ISO if your disk is in-fact NTFS install "ntfs-3g" so Linux can understand that file system.

Also for these steps:

First mount your root file system partion from the disk:
sudo mount /dev/sdXXX /mnt
Now mount your EFI boot partion not swap:
sudo mount /dev/sdXX /mnt/boot/efi
Then execute:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
Now change to the root filesystem:
sudo chroot /mnt
Use grub-install to reinstall keys and update/exit:
grub-install /dev/sdX
update-grub
exit

Now at this point shutdown live ISO, remove it from VM and attempt to boot.


Hope this helps.
 
Okay and just to confirm and this point you changed your config to pass through the entire drive via scsi0 right? You're no longer passing each partion? You want to point the whole disk over. If so then make sure you're adding a live ISO to CD/R drive to boot on. On the live ISO if your disk is in-fact NTFS install "ntfs-3g" so Linux can understand that file system.

Also for these steps:

First mount your root file system partion from the disk:
sudo mount /dev/sdXXX /mnt
Now mount your EFI boot partion not swap:
sudo mount /dev/sdXX /mnt/boot/efi
Then execute:
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
Now change to the root filesystem:
sudo chroot /mnt
Use grub-install to reinstall keys and update/exit:
grub-install /dev/sdX
update-grub
exit

Now at this point shutdown live ISO, remove it from VM and attempt to boot.


Hope this helps.
Okay and just to confirm and this point you changed your config to pass through the entire drive via scsi0 right?
Correct
You're no longer passing each partion? You want to point the whole disk over. If so then make sure you're adding a live ISO to CD/R drive to boot on.
Correct the whole partition is being passed now.

On the live ISO if your disk is in-fact NTFS install "ntfs-3g" so Linux can understand that file system.
Is not NTFS, it is mounting the volumens correct, is just the EFI one that doesn't want to be mounted on the second step.


>First mount your root file system partion from the disk:
>sudo mount /dev/sdXXX /mnt

This works, and I see the files/folders in /mnt

>Now mount your EFI boot partion not swap:
>sudo mount /dev/sdXX /mnt/boot/efi

This is where I get the error, and first of all there was no /mnt/boot/efi directory, so I needed to create that to get the mount to throw me the error that I posted. But there is a /mnt/efi.. but it doesn't matter cause I get the same problem.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!