최근에 시스템을 업데이트했고 재부팅 후 다음과 같은 메시지가 표시됩니다.
ERROR: device ‘UUID=...’ not found. Skipping fsck.
mount: /new_root: can’t find UUID=...
You are now being dropped into an emergency shell.
내 루트 파일 시스템이 RAID 배열에 있고 blkid
비상 셸에서 실행 중이면 해당 배열이 나열되지 않은 것으로 표시됩니다.
나는 RAID1을 가지고 /dev/sda2
있으며 /dev/sdb2
일반적으로 /boot
. 가 있고 로 UUID="b45...
조립됩니다 . RAID0 에서는 일반적 으로 . 가 있고 로 조립됩니다 . 부팅 시 오류가 ./dev/md1
UUID="436...
/dev/sda3
/dev/sdb3
/
UUID="8dc...
/dev/md2
UUID="d0d...
d0d...
라이브 USB로 부팅하고 실행했는데 blkid
어레이가 거기에 있었습니다. 그래서 배열, proc
, sys
, dev
및 을 마운트했습니다 boot
. /etc/mdadm.conf
모든 ARRAY
줄이 주석 처리되어 있는지 확인 하고 다음을 실행했습니다.
# mdadm --detail --scan >> /mnt/etc/mdadm.conf
UUID가 배열( b45...
및 8dc...
)에서 사용 중인 두 파티션과 일치하는지 확인했습니다. 그런 다음 chroot
참여했습니다.
그런 다음 설정 에서 누락된 /etc/mkinitcpio.conf
것을 확인하고 확인했습니다 . 그래서 나는 그것을 읽었습니다.mdadm_udev
HOOKS
거기에서 다음을 각각 시도한 후 재부팅했습니다.
# pacman -S linux
# mkinitcpio -p linux
# mkinitcpio -P
각각에 대해 후크가 구축되는 것을 볼 수 mdadm_udev
있으며 다음과 같이 알려줍니다.
Custom /etc/mdadm.conf file will be used in initramfs for assembling arrays
그러나 재부팅하면 동일한 오류가 발생하고 blkid
비상 셸에서 사용하면 내 RAID 어레이가 나열되지 않은 것으로 표시됩니다(그러나 이를 구성하는 파티션은 거기에 있고 UUID는 에 있는 것과 일치합니다 mdadm.conf
).
raid0.default_layout=2
또한 동일한 결과로 커널 매개변수를 추가했습니다 . 이전에는 한 번도 가본 적이 없지만 위키에는 그것이 필요하다고 표시되어 있는 것 같습니다.
Linux 패키지는 linux-5.12.6.arch1-1
부팅 시 오류가 발생하기 전에 다음과 같이 알려줍니다.
Starting version 248.3-2-arch
부팅 시 어레이가 조립되지 않는 원인이 무엇입니까?
답변1
처음에 문제의 원인이 무엇인지 아직도 모르겠습니다. 하지만 해결책은 아주 간단했고 나는 멍청하다고 느꼈다.
문제는 내가 실행했다는 것입니다.
# mount /dev/md1 /mnt/boot
grub에서 설정을 확인하고 싶었기 때문에 chroot
실행하기 전에 라이브 USB에서 실행했습니다. mkinitcpio
그래서 initramfs
제가 만든 이미지는 mdadm
RAID 어레이에 있었습니다. initramfs
로드된 에는 아무런 단서가 없었기 때문에 mdadm
어레이를 구축하지 않았습니다.
해결책은 에 어레이를 마운트하지 않고 mkinitcpio
실행 하는 것이었습니다 .chroot
/boot