Guess: The “Couldn’t get size” message is from UEFI. initramfs is running stuff, this may be from the /boot/efi partition. The next stage is to run from the root partition and that is failing. The initramfs is a pre disk initialization that make ram look like a hard drive. There is a syscall named pivotroot which flips the ram disk for a real disk. That doesn’t look like it is working.
You may need to boot a rescue disk and take look at the filesystems.
Thanks for your reply and the info.
Sadly I have no rescue disks and couldn’t follow what I was finding on google searches. So ended up reinstalling the OS. Next time, I will backup the drive so I can at least get back to an older state.
The install media usually has a rescue option, that’s what I usually use.
There is another trick that sometimes works. The old recovery method was to boot in single user mode, with an s appended to the boot command line. With linux, you can sometimes tell the kernel to run a different init program within the initram. The standard init is systemd, to tell the kernel to use a different one, append initrd=/bin/bash. That can recover root passwords, so it is sort of a security risk that may be disabled. After booting like that, you will be in initram, with no hard disks mounted.
That’s good to know, I am so used to the way Windows has recovery and restore points built in that every time something happens to my Linux OS I end up in panic because the Windows style repair and restore system isn’t or doesn’t seem to be in Linux.
I wonder if someone has put up a tutorial on these tricks in Linux?