Hey everyone, hoping for some help. My Qubes laptop stopped booting after a dom0 update got cut off partway through (a low-memory popup appeared and the update just stopped). Since then it won’t boot normally anymore.
System: Qubes R4.3, kernel 7.1.6
What happens on boot
Every time I boot, it drops into a black screen saying:
Entering emergency mode. Exit the shell to continue.
Type "journalctl" to view system logs.
What the logs show
journalctl points to the root filesystem failing its check:
systemd-fsck-root.service: Main process exited, code=exited, status=1/FAILURE
Failed to start systemd-fsck-root.service - File System Check on /dev/mapper/qubes_dom0-root.
Dependency failed for /sysroot.
/dev/mapper/qubes_dom0-root: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options)
What I tried
I ran this from the emergency shell:
fsck -y /dev/mapper/qubes_dom0-root
It found and fixed a bunch of errors (inode reference counts, free block counts, etc.), but right at the end it printed:
Error writing file system info: Input/output error
/dev/mapper/qubes_dom0-root: ***** FILE SYSTEM WAS MODIFIED *****
I rebooted anyway, but it’s still stuck at the same emergency mode screen.
My main worry
That “Input/output error” at the end, does that usually mean the drive itself is failing (bad sectors, dying SSD/NVMe), or can it just be leftover damage from the update getting killed mid-write? I don’t want to keep running fsck if the disk is actually dying.
What I’m hoping someone can help with
-
Should I check the drive’s health (SMART data) before trying fsck again?
-
What’s the best way to check that from the Qubes/dracut emergency shell? For example, is this the right command:
smartctl -a /dev/nvme0 -
If the drive turns out to be fine, what’s the correct next step to finish the repair?
-
Would it be smarter to boot from a Qubes installer USB or a Linux live USB to repair the disk while it’s not in use?
I can only post screenshots (no copy-paste from that machine), but I’m happy to run any command and share a clear photo of the output.
Thanks in advance, trying not to make things worse before I understand what’s actually going on.