업데이트 후 더 이상 RAID 어레이로 부팅할 수 없습니다.

업데이트 후 더 이상 RAID 어레이로 부팅할 수 없습니다.

최근에 시스템을 업데이트했고 재부팅 후 다음과 같은 메시지가 표시됩니다.

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/md1UUID="436.../dev/sda3/dev/sdb3/UUID="8dc.../dev/md2UUID="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_udevHOOKS

거기에서 다음을 각각 시도한 후 재부팅했습니다.

# 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제가 만든 이미지는 mdadmRAID 어레이에 있었습니다. initramfs로드된 에는 아무런 단서가 없었기 때문에 mdadm어레이를 구축하지 않았습니다.

해결책은 에 어레이를 마운트하지 않고 mkinitcpio실행 하는 것이었습니다 .chroot/boot

관련 정보