uEFI 펌웨어가 소프트웨어 RAID 1 /boot/efi 파티션에 액세스할 수 없는 이유는 무엇입니까?

uEFI 펌웨어가 소프트웨어 RAID 1 /boot/efi 파티션에 액세스할 수 없는 이유는 무엇입니까?

BIOS 펌웨어는 소프트웨어 RAID 1 쌍에 설치된 BIOS 형식의 /boot 파티션을 문제 없이 부팅할 수 있습니다. 소프트웨어 RAID 1 쌍에 마운트된 LVM 볼륨의 /boot에서 부팅할 수도 있습니다.

그러나 uEFI를 사용하여 설치할 때 /boot/efi는 md가 아닌 파티션에 있어야 합니다. 그렇지 않으면 펌웨어가 해당 파티션에 액세스할 수 없습니다.

이것이 uEFI 펌웨어의 결함입니까? 아니면 Ubuntu의 소프트웨어 RAID 장치에서 /boot/efi를 설정하는 방법에 대한 질문입니까? GPT 파티션 테이블이 소프트웨어 RAID를 펌웨어에 제공하는 방식에 결함이 있습니까?

참고로 저는 파티셔너의 "수동" 옵션을 통해 Ubuntu Server 14.04.3 64비트 mdadm RAID 설정을 사용하고 있습니다.

답변1

EFI는 FAT 및 FAT32 파일 시스템에 액세스하는 방법을 알고 있습니다. 이것이 EFI 부팅 파티션이 FAT 또는 FAT32 형식이어야 하는 이유입니다. 그러나 EFI는아니요FAT32로 포맷된 경우에도 소프트웨어 RAID 1 파티션을 읽는 방법을 알아보세요. 최소한 Arch Linux를 사용하면 이 문제를 해결할 수 있는 매우 간단한 방법이 있습니다. 시스템을 설치할 때 부팅 파티션을 FAT32 형식의 RAID로 설정했지만 EFI에 각 파티션에서 부팅하도록 지시했습니다. 구체적으로 이렇게 하면 됩니다.

 mdadm --create /dev/md0 --metadata 1.0 --raid-devices=2 --level=1 /dev/sd[ab]1
 mkfs.fat -F32 /dev/md0

그런 다음 설치를 계속하십시오. 그러나 EFI에 관한 한 부팅 파티션은 /dev/sda1 및 /dev/sb1입니다.개별적으로. 각 장치를 부팅 장치로 설정한 다음 /dev/sda가 실패하면 시스템은 계속 /dev/sdb1에서 부팅됩니다. 시스템이 부팅된 후 /dev/md0 RAID 1이 시작되어 /dev/sda1과 /dev/sdb1이 동기화되었는지 확인합니다.

내 모든 시스템은 아무런 문제 없이 이런 방식으로 설정되었습니다. (부팅 파티션에 소프트웨어 RAID를 설치할 때 mdadm 메타데이터를 1.0으로 설정해야 합니다.)

관련 정보