Okay have an update to my issue as I figured out the solution... well a user /u/hairy_tick over on reddit figured it out after I posted to /r/proxmox. Given EFI on my dell r610, it does not have the requirement to mount /media/RESCUE/boot, given the boot directory is already populated when /dev/pve/root is mounted.
As mentioned above in Cedrox's last post, EFI will need to be added as a mount point. So for my environment, the instructions from the wiki post provided in em3034's
previous post get changed to something like as follows:
- sudo vgscan
- sudo vgchange -ay
- sudo mkdir /media/RESCUE
- sudo mount /dev/pve/root /media/RESCUE/
- mount /dev/sda2 /media/RESCUE/boot/efi
- sudo mount -t proc proc /media/RESCUE/proc
- sudo mount -t sysfs sys /media/RESCUE/sys
- sudo mount -o bind /dev /media/RESCUE/dev
- sudo mount -o bind /run /media/RESCUE/run
For the reference point for the efi boot, I believe that was documented well in Cedrox's last post above, as when running lsblk it should be the #2 partition under the boot drive, likely notated with 512M.
And then the rest of the aforementioned procedure from e3034's previous post should complete without issue.
The specific post on reddit where /u/hairy_tick provided solution can be found
here. I'm also copying the specific response under that post here, incase it somehow gets deleted/lost.
#####TEXT BELOW IS FROM /u/hairy_tick COMMENT FROM REDDIT THREAD####
OK, I think I see now. Looking at my proxmox I don't have a separate partition for /boot, it is just part of the root filesystem. So you probably don't need to mount anything at /boot.
I believe the separate /boot partition is done on machines that boot with BIOS because limitations in the way BIOS was designed mean it can have trouble accessing anything but the front part of larger disks. So a separate partition ensures that those files are always at the front of the disk.
EFI doesn't have that problem with big disks, so no need for a separate /boot. But EFI relies on a special EFI partition so EFI can find the boot loader (grub). Based on the sizes of your partitions matching what I have on my system, I think that partition for you is sda2.
Now, to confirm that's all true for you. First, do "ls /media/RESCUE/boot". If it shows files there then the boot files are available and there isn't another thing to mount to get /boot. Then we can mount the suspected efi partition
mount /dev/sda2 /media/RESCUE/boot/efi
And to see if it looks right
ls /media/RESCUE/boot/efi
There should be a directory there called EFI. If that's all right so far, then you are almost done. Just need to
chroot /media/RESCUE
update-grub
grub-install /dev/sda
exit
umount /media/RESCUE/boot/efi
umount /media/RESCUE
reboot
And in case you want to know why those commands, here's a bit of an explanation for why you are doing those commands. Feel free to skip this, but I know I hate doing things without at least a slight idea of what they are doing and why I am running them.
chroot creates a restriction for its children where some directory will appear to them to be the root (/) directory, and starts a new shell there. The basic idea is to restrict a program so it can't mess with files that don't belong to it. This is the filesystem part of how containers work, so what is a directory on the host appears to be / to programs in the container. Chroot doesn't set up any of the other restrictions that containers get (which is good for what we are doing here).
Update-grub. We want to make sure grub's config files match the current state of the system. If it is for example looking for a kernel that doesn't exist anymore, it can cause booting problems like you saw. So this will regenerate that config based on what it finds in the system now. Normally this is run automatically when needed (for example, when a new kernel version is installed), but if for some reason that didn't happen it could cause exactly the sort of problems you are seeing. This won't see the files on the disk you booted from, but instead the files on the proxmox installation because of the chroot.
Grub-install /dev/sda - this one will re-install grub in the EFI. That's only sometimes needed because occasionally you get a problem where the grub config is fine, but grub can't actually find it. This would fix that if that's what you are seeing, and does no harm if that isn't the problem.
exit - leave the chroot-ed shell.
umount - unmount those things we mounted to finish any writes to them that aren't complete yet to prepare them for the reboot.
reboot - yeah, it does what it says it will.