initramfs - エラー: '/dev/mapper/vg0-root' デバイスが見つかりません。 fsckをスキップしました。

initramfs - エラー: '/dev/mapper/vg0-root' デバイスが見つかりません。 fsckをスキップしました。

Archを実行しているDell XPS 15 9560を起動した後、デバイスが見つからず、緊急シェルに入りました。

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 ]#

出力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

出力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

vg0-rootとvg0-swapの両方が存在しますが、実行時を含むdevには表示されないため、出力は本当に混乱しています。cryptsetup luksOpen /dev/nvme0n1p3 luks

私の考えでは、私のmkinitcpio.confにフックがありませんが、ここに私のmkinitcpio.confがあります。

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

去る5日前とあまり変わることがないようです。前回はまともに始まったんですよ。今日は早く実行しましたが、pacman -Syuここで正確に何が間違っているのかを知る方法がわかりません。

mkinitcpio -p linuxアーチUSBからドライブにルートを切り替えると正しく機能します。

編集する:

root=/dev/mapper/luksアイテムに追加しましたがGRUB_CMDLINE_LINUXエラーが発生しましたmount: /new_root: unknown filesystem type LVM2_member'

lvm vgchange -ay vg0

mount /dev/mapper/vg0-root /new_root

exit

私のシステムから起動できますが、これは自動的にlvm2フックを介して行われ、再起動時にこれをやり直す必要があります。

答え1

この問題を解決するために私は何をしましたか?

すべてのbusyboxフックを対応するsystemdフックに変更し、systemd initramfsに切り替えて、DEFAULT_CMDLINE_LINUXsd-encryptおよびsd-lvm2構文を反映するようにgrubを変更します。

その後、lvm.confをリセットしました。

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

答え2

実行中に論理ボリュームが非アクティブとして表示される同様の問題がありましたlvscan

以前に変更した唯一のことは、を無効にすること/etc/lvm/lvm.confでしたuse_lvmetad

この状況を回復するために、以下を実行しました。

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

use_lvmetadしかし、RAMディスクを再度有効にして再作成することは価値があると思います。

だから:

  1. use_lvmetad=1必ず/etc/lvm/lvm.conf
  2. オプションを次に変更するには、use_lvmetad=1RAMディスクを再構築してください。

    mkinitcpio -p linux
    

関連情報