Emergency Dracut Shell errors. Boot Drive unable to login to Qubes OS

In that case, I think you are looking for

lsblk /dev/sdb3
2 Likes

ok that worked.
It says:
sdb3 MAJ:MIN 8:19 RM: 1 size: 181.8G RO: 0 type: part Mountpoint: ( it is empty here )

I tried the second command: lsblk /dev/sdb3 | grep luks
it doesn’t display anything.

I had to check from another machine - try with:

blkid | grep -i luks

and try:

mkdir -p /mnt/foo
mount /dev/sda1 /mnt/foo
grep luks /mnt/foo/EFI/qubes/grub.cfg

– the first should give you the UUID of the encrypted volume - the second should show you the UUID that the machine looks for on boot – are they identical?

2 Likes

Wow thanks for taking the time to help out with another machine.

THE UUID’s are not identical. one is a PARTUUID and the other is the UUID.

Should I proceed with the mkdir steps?

PARTUUID and UUID should differ … the grep tells you what the machine is actually looking for on boot … does that match the UUID?

1 Like

the grep didn’t identify a matching UUID. next to the first UUID it says type=“crypto_LUKS” after typing in command: blkid | grep -i luks

should I reboot and see if I see the UUID on boot?

From my machine:

[root@disp4481 ~]# blkid /dev/xvdi3 
/dev/xvdi3: UUID="fd438d0c-2755-4faf-8a4c-dd249cbe7e3c" TYPE="crypto_LUKS" PARTUUID="e7483915-2d85-48d5-ace2-5613aa6041a1"
[root@disp4481 ~]# mkdir -p /mnt/foo
[root@disp4481 ~]# mount /dev/xvdi1 /mnt/foo/
[root@disp4481 ~]# grep fd438d0c-2755-4faf-8a4c-dd249cbe7e3c /mnt/foo/EFI/qubes/grub.cfg 
        module2 /vmlinuz-6.0.7-1.fc32.qubes.x86_64 placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet 
                        module2 /vmlinuz-6.0.7-1.fc32.qubes.x86_64 placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet 
                        module2 /vmlinuz-5.15.76-1.fc32.qubes.x86_64 placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet 
                        module  /vmlinuz-6.0.7-1.fc32.qubes.x86_64 placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet 
                        module  /vmlinuz-5.15.76-1.fc32.qubes.x86_64 placeholder root=/dev/mapper/qubes_dom0-root ro rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c rd.lvm.lv=qubes_dom0/root rd.lvm.lv=qubes_dom0/swap plymouth.ignore-serial-consoles rd.driver.pre=btrfs rhgb quiet 
[root@disp4481 ~]# 

So my encrypted partition is called fd438d0c-2755-4faf-8a4c-dd249cbe7e3c and the grub-config tells the machine to look for: rd.luks.uuid=luks-fd438d0c-2755-4faf-8a4c-dd249cbe7e3c – do you have the same match from blkid and GRUB config?

Note: This is from within a qube, so names are special.

ok is it safe to use sda1 for the name or should I make a unique different one? I don’t want to create any problems on the drive data since I don’t have any backup of any data. should I name it /dev/sda9 or is it safe to use sda1 for mount /dev/sda1 /mnt/foo ?

I’ll test the mkdir after this

If you wants to be sure, not to change anything on your boot partition, use:

mount -o ro /dev/sda1 /mnt/foo

(Read Only)

The mkdir -p /mnt/foo just creates a folder on the live filesystem … :slight_smile:

1 Like

after the mount -o ro command i got this:

mount: /mnt/foo special device /dev/sda1 does not exist

sigh – your drive is called sdb … sorry that I keeps forgetting that …

1 Like

haha its okay. Thanks for spotting it
should I use sdb, sdb1, or sdb3? because when I boot with rescue it asks me for root password. it labels it as sdb3.

Here’s my lsblk list:

sdb 183gb
sdb1 600mb part
sdb2 1gb part
sdb3 | SIZE 181gb part
sdc 20gb disk /run/install/repo

sdb is the name of the drive
sdb1 is the first partition on the drive and should have your GRUB config
sdb2 is the second partition and should have your /boot/-folder
sdb3 is the third partition and should be the LUKS encrypted volume that has all the LVM partitions

So your password protects the LVM partitions and is needed to access those. In order to boot correctly, GRUB (on sdb1) needs to know the UUID of the LUKS encrypted volume to unlock in order to find the filesystem for dom0.

1 Like

good breakdown. I am still trying to wrap my head around which one I need the system to identify which one to point the mount to. I am assuming sdb since its the entire drive?

run this command next? mount -o ro /dev/sdb /mnt/foo

You want to mount the partition with the GRUB config - that should be on sdb1 - so:

mount -o ro /dev/sdb1 /mnt/foo

That works!

My next step is: grep luks /mnt/foo/EFI/qubes/grub.cfg ?

or should I do the command like your example where I put my UUID?
your example: grep fd438d0c-2755-4faf-8a4c-dd249cbe7e3c /mnt/foo/EFI/qubes/grub.cfg

Either will work - you need to check if the UUID is identical … :slight_smile:

(as long as you replace my UUID with your own)

i ran blkid | grep -i luks and now I see more UUID info. I didnt run the grep luks /mnt/foo/EFI/qubes/grub.cfg yet

I see /dev/mapper/luks matching the same UUID as the first time I ran it and now i see a new UUID for type=“lvm2_member”

is this how I check if the UUID is identical? or should I just run the command now?

grep luks /mnt/foo/EFI/qubes/grub.cfg yet

you need to compare the info from blkid with the info from

grep luks /mnt/foo/EFI/qubes/grub.cfg
1 Like

i just ran grep luks /mnt/foo/EFI/qubes/grub.cfg
all 3 lines are UUID identical to the blkid first UUID
your example has 5 lines. mine has 3. I assume this is fine. What’s next?

I feel like we are getting closer!