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하지만 램 디스크를 다시 활성화하고 재생성하는 것은 가치가 있다고 생각합니다 .

그래서:

  1. 반드시use_lvmetad=1/etc/lvm/lvm.conf
  2. 옵션을 다음으로 변경하려면 use_lvmetad=1램디스크를 다시 빌드하세요 .

    mkinitcpio -p linux
    

관련 정보