#[SOLVED] BTRFS + EFISTUB unable to boot - partition not found

33 messages · Page 1 of 1 (latest)

feral jacinth
#

The error message on trying to reboot into the system (as opposed to the live USB):
ERROR: device '<root partition UUID>' not found. Skipping fsck.
I'm pretty convinced it does exist though, because I can see the UUID if I do a blkid, even in the emergency shell.

The command I'm using to create the EFI entry:
efibootmgr --create --disk /dev/nvme0n1 --part 1 --label "Arch Linux" --verbose --loader /vmlinuz-linux --unicode 'root=<root partition UUID> rootfstype=btrfs rootflags=compress=zstd,space_cache,subvol=@ resume=<swap partition UUID> rw initrd=\intramfs-linux.img

Partitions:
/dev/nvme0n1p1: 300MiB ESP (mounted to /boot in fstab)
/dev/nvme0n1p2: swap
/dev/nvme0n1p3: BTRFS (rest of disk)

I can post images of the UUIDs if that'd help, but I'm 99% sure I've typed it out correctly

One thing I have noticed is that blkid lists several difference UUIDs, including UUID, UUID_SUB, and PARTUUID. I've used UUID

Let me know if there's any other information that's useful here, not too sure what to include. Any help would be a lifesaver

echo ivy
#

If you want a temporary way to get into your system, mount the subvolume to /new_root in the emergency shell and then run exit.

#

For the root=<UUID> part, did you include have it directly as the UUID or root=UUID=<UUID>

feral jacinth
#

I included it directly

#

does it need to be the latter?

echo ivy
#

I believe so

feral jacinth
#

I'll try that now. Give me a minute to remount everything

#

same for resume?

echo ivy
#

Yeah

feral jacinth
#

same error 😦

feral jacinth
echo ivy
#

No, the fstab will handle that once it boots into the system

feral jacinth
#

okay, that did get a fair bit further booting

#

now complaining about a BIOS setting, but that's aside from the main issue

#

fixed that, I can now get to login after manually mounting to /new_root

#

rummaging in the Wiki indicates that root=UUID=<blah> is more correct. Maybe I'll try using the label instead, as an experiment

#

well now the error message sounds angrier, but it does appear to have made it further

#
:: mounting '/dev/nvme0n1p3' on real root
BTRFS error (device nvme0n1p3): cannot disable free space tree
BTRFS error (device nvme0n1p3): open_ctree failed
mount: /new_root wrong fs type, bad option, bad superblock on /dev/nvme0n1p3, missing codepage or helper program, or other error.
echo ivy
#

apparently that's an issue with space_cache, so try removing that from the rootflags

feral jacinth
#

okay tactical use of DDG solved that one, I added clear_cache to the flags. What source did you find?

echo ivy
feral jacinth
#

another comment recommended specifying space_cache=v2, which fixed it

#

same issue I've been scrolling

#

I think I know why the UUID= thing didn't work first time

#

I don't think I deleted the EFI entry before creating the updated one

#

it works with label now though, I'll change it to UUID when I have a proper DE and terminal I can copy/paste in

#

thanks for your help, kind citizen!

echo ivy
#

👍

feral jacinth
#

you guys are out here doing god's work, props to ya

echo ivy
#

oh yeah

#

... close

raw tartanBOT
#

#9639 📣 If your issue is solved, please prepend [SOLVED] to the beginning of this thread's title. Then, if possible, archive the thread.