업데이트 후 더 이상 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있으며 일반적으로 에 설치됩니다. 하나가 있고 하나로 조립됩니다. 그리고 RAID0에는 일반적으로 하나가 있으며 하나로 조립됩니다. 검색 시작 중 오류가 발생했습니다./dev/sdb2/bootUUID="b45.../dev/md1UUID="436.../dev/sda3/dev/sdb3/UUID="8dc.../dev/md2UUID="d0d...d0d...

라이브 USB로 부팅하고 실행했는데 blkid어레이가 거기에 있었습니다. 그래서 배열, proc, 및 을 sys설치 했습니다 . 확인해보니 모든 줄이 주석 처리되었으므로 다음을 실행했습니다.devboot/etc/mdadm.confARRAY

# 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

chrootmkinitcpiogrub의 설정을 확인하고 싶었기 때문에 ing 및 실행 전에 라이브 USB에서 가져왔습니다 . 그래서 initramfs제가 만든 이미지는 mdadmRAID 어레이에 있습니다. 로드된 콘텐츠는 initramfs이에 대해 아무것도 모르므 mdadm로 배열이 구축되지 않습니다.

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

관련 정보