Dracut emergency: lvm lvscan shows no volumes at all, boot fails

yesterday I started a larger download over night, today I noticed the laptop is off because I forgot to plug in the charging cable. After booting the device I end up in dracut emergency, similar to Qubes_dom0-root does not exist

lvm lvscan just shows no output. “ls /dev/mapper” does only show “control”. /dev/nvme0n1 exists with 3 partitions.

Maybe the same issue as here:

Possible LVM corruption because there was not enough free space?

Doesn’t qubes freeze a VM before the underlying LVM runs out of space?
When I did set up the download VM I did not get a warning.

Anyway, if that was the reason, how to fix it?

You can check the rdsosreport.txt generated by dracut when it fails and if you have the same error:

Check of pool qubes_dom0/root-pool failed (status:1). Manual repair required!

Then I guess the issue shouldn’t be specific to Qubes OS and you can try to search of a way to fix your LVM that works for general Linux system using LVM.
Try to search for "Check of pool" "Manual repair required!" in search engine.

I dont understand why, but after a few more reboots the system suddenly boots up as normal.

vgdisplay in dom0 shows that VG qubes_dom0 has more than 80 GiB free

Maybe there is a hardware issue with your disk?
Check its SMART.

If I do
“sudo smartctl -t short /dev/nvme0”
and later try
“sudo smartctl -a /dev/nvme0”
I get an input/output error for sudo. I never tested a system-nvme before, is that an expected error or does this mean the disk is broken?

If I do
“sudo smartctl -a /dev/nvme0”
after the next boot it shows “Aborted: Controller reset” - however I dont know whether it was reset because of an error or because of the foreced reboot.

Your disk name is /dev/nvme0n1, not /dev/nvme0.

If I run smartctl -a on nvme0, the self-test log is shown. If I do the same for nvme0n1 I get “Read self-test log failed”
if I run sudo smartctl -t short /ev/nvme0n1 I get “Read self-test log failed” as well instead of “Test started”.

Yes, my bad, /dev/nvme0 seems to be the correct one. nvme0n1 is just a block device of NVMe and nvme0 is a raw device that is needed by smartctl.