The issue started off with GRUB giving me this error
-
ERROR: device 'UUID=uuid of root parition' not found.
Skipping fsck. mount: /new_root: can't find UUID=uuid of root partition.
you are now being dropped into an emergency shell.
sh: can't access tty; job control off.
-
The fstab matches the UUID in lsblk -f and all other connections but it still doesn't recognize my /root partition
Looking around for solutions I got rid of GRUB and replaced it with rEFIND and I still get the same error.
What can I do to get my bootloader to recognize my system and boot again?
>Looking around for solutions I got rid of GRUB and replaced it with rEFIND and I still get the same error.
That's because the problem occurs in the initramfs environment, it doesn't have anything to do with the bootloader.
Give us your /etc/mkinitcpio.conf, /etc/fstab and /etc/default/grub.
Finally add these values to your kernel parameters to get debug output for the initramfs:
rd.debug rd.log=all
I don't have GRUB anymore but here's the contents of fstab and mkinitcpio, I've removed the UUID for fstab but it's there.
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
UUID= /boot/efi vfat umask=0077 0 2
UUID= / ext4 defaults,noatime 0 1
tmpfs /tmp tmpfs defaults,noatime,mode=1777 0 0
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(piix ide_disk reiserfs)
MODULES=""
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect block filesystems)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev block filesystems)
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS=(base udev block mdadm encrypt filesystems)
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS=(base udev block lvm2 filesystems)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev autodetect modconf block keyboard keymap filesystems fsck"
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
Trying to install grub again. I get this error, I think my EFI directory is bugged anyone got any ideas?
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
The UUID is messed up nvm I was right. No idea what to do with this, is there some way to generate a new UUID or something?
By blanking and removing the UUID's you prevent the actual comparison of them. I can't see that sharing them is a security issue.
Try using a live cd/usb and seeing if you can mount your root partition.
If not I guess you have a corrupted filesystem.
If you can mount it then chroot into it and try to rebuild initramfs
sudo mkinitcpio -p linux
Did you install with calamares?
My bet is, your fstab mounts efi too early, before the /boot or / (if boot isn't a partition).
Try putting that / entry before the /boot/efi.