0

Upon booting my Dell XPS 15 9560 running Arch, I am being dropped into an emergency shell because my devices aren't being found

starting version 239

A password is required to access the luks volume:
mount: /new_root: special device /dev/mapper/vg0-root does not exist.
ERROR: device '/dev/mapper/vg0-root' not found, Skipping fsck.
mount: /new_root: special device /dev/mapper/vg0-root does not exist.
You are now being dropped into an emergency shell.
sh: can't access tty; job control turned off
[rootfs ]#

Output of lvm pvs

[rootfs ]# lvm pvs
  WARNING: Not using lvmetad bacause config setting use_lvmetad=0
  WARNING: To avoid corruption, rescan devices to make changes visible (pvscan --cache)
  PV               VG  Fmt  Attr PSize    PFree
  /dev/mapper/luks vg0 lvm2 a--  <237.74g    0

Output of lvm lvs

[rootfs ]# lvm lvs
  WARNING: Not using lvmetad bacause config setting use_lvmetad=0
  WARNING: To avoid corruption, rescan devices to make changes visible (pvscan --cache)
  LV   VG  Attr       LSize    Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root vg0 -wi------- <221.74g
  swap vg0 -wi-------   16.00g

That output is really confusing because it shows that vg0-root and vg0-swap both exist, but they just don't appear under dev, including after doing a cryptsetup luksOpen /dev/nvme0n1p3 luks

My guess would be that I'm missing a hook with my mkinitcpio.conf, but this is my mkinitcpio.conf

HOOKS=(base udev autodetect modconf block encrypt lvm2 filesystems keyboard fsck)

Which I don't believe is any different from 5 days ago, the last time it booted just fine. I did run a pacman -Syu earlier today, but I'm not sure how I would find out what exactly broke here.

mkinitcpio -p linux works without errors when chrooted into the drive from a arch usb

edit:

added root=/dev/mapper/luks to my GRUB_CMDLINE_LINUX, and now get the error mount: /new_root: unknown filesystem type LVM2_member'

lvm vgchange -ay vg0

mount /dev/mapper/vg0-root /new_root

exit

Allowed me to boot into my system, but this should be happening automatically with the lvm2 hook and upon restarting, I have to do it again.

  • From the chroot, read your pacman.log for the update. Also, check the output of pacman -Q linux && uname -r. – jasonwryan Oct 1 '18 at 4:57
  • I was on 14.18.10, downgraded to 14.18.5 to check if it was a kernel issue, but the issue remains after downgrading to the last kernel it worked on. I have found a bandaid fix that I've added to the bottom of the OP if that gives any insight into what the issue is. – Sly Cedix Oct 1 '18 at 5:21
2

What I did to fix this

Switched to systemd initramfs by changing all busybox hooks to their systemd equivalents, and changed the grub DEFAULT_CMDLINE_LINUX to reflect the syntax of sd-encrypt and sd-lvm2.

I then reset my lvm.conf

sudo rm /etc/lvm/lvm.conf && sudo pacman -S lvm2

0

I had a similar issue, the logical volumes were showing as inactive while doing lvscan.

The only change I did before in the /etc/lvm/lvm.conf was to disable use_lvmetad.

To recover from this scenario I have ran:

rm /etc/lvm/lvm.conf && pacman -S lvm2

but I think it is worth trying to re-enable use_lvmetad and regenerate ram disk:

So:

  1. make sure the use_lvmetad=1 in /etc/lvm/lvm.conf
  2. if you are changing the option to use_lvmetad=1 , regenerate ramdisk:

    mkinitcpio -p linux
    

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.