UEFI 부팅 가능 이미지 vdev를 빌드하는 방법은 무엇입니까?

UEFI 부팅 가능 이미지 vdev를 빌드하는 방법은 무엇입니까?

두 개의 동일한 디스크가 있는 서버가 있습니다. 이 디스크에서 ZFS 이미지 vdev를 만들고, 여기에 ZFS 파일 시스템을 만들고, 이를 루트 파일 시스템으로 사용하고 여기에서 부팅하고 싶습니다.

나는 과거에 이전 부팅 메커니즘을 사용하여 이 작업을 성공적으로 수행했습니다. 하지만 이번에는 EFI를 통해 부팅하고 싶습니다. 따라서 각 디스크에 다음과 같은 파티션 레이아웃을 만들었습니다.

Device          Start        End    Sectors  Size Type
/dev/sda1     1048576 4000780287 3999731712  1.9T Solaris /usr & Apple ZFS
/dev/sda2          40    1048575    1048536  512M EFI System
/dev/sda9  4000780288 4000797326      17039  8.3M Solaris reserved 1

이는 /dev/sda2EFI 부트 로더가 포함된 파티션입니다. 형식은 입니다 FAT32.

두 번째 디스크의 /dev/sdb파티션 레이아웃은 동일합니다.

다음을 통해 미러 vdev를 만들려고 할 때

zpool create -o ... -O ... rpool mirror /dev/disk/by-id/ata-disk1 /dev/disk/by-id/ata-disk2

다음과 같은 오류 메시지가 나타납니다.

invalid vdev specification
use '-f' to override the following errors:
/dev/disk/by-id/ata-disk1 contains a filesystem of type 'vfat'
/dev/disk/by-id/ata-disk2 contains a filesystem of type 'vfat'

물론 나 역시 이 문제를 어떻게 해결할 수 있을지 오랫동안 연구했지만 소용이 없었다. 두 가지 일반적인 솔루션이 있지만 둘 다 적용할 수 없습니다.

  1. FAT 파티션을 삭제하거나 다른 파일 시스템 유형을 사용하여 포맷하십시오. 제 경우에는 이것이 EFI 시스템 파티션이기 때문에 말이 안 됩니다.~ 해야 하다존재하고~ 해야 하다FAT 변형 중 하나로 포맷하세요. 그렇지 않으면 EFI 부트로더를 디스크에 넣을 수 없거나 UEFI BIOS가 부트로더를 찾을 수 없습니다.

  2. 를 사용하십시오 zpool create -f .... 즉, -f위에 표시된 명령에 추가하십시오. 이는 zpool파티션을 파괴하여 동일한 문제를 일으키므로 의미가 없습니다 .

내 또 다른 아이디어는 먼저 파티션 2 없이 파티션 레이아웃을 생성하고 이를 위한 충분한 공간을 남겨둔 다음 미러 vdev를 생성하고 파티션 2를 추가하는 것입니다. 이것이 효과가 있을 것이라고 확신하지만 디스크 중 하나를 교체하거나 재동기화를 시도할 때와 같은 모든 종류의 문제가 발생할 수 있다는 내용도 읽었습니다. 기본적으로 ZFS는 디스크의 이러한 파티션을 좋아하지 않으며 처음 vdev를 생성할 때 문제를 해결하면 나중에 비용을 지불하게 되며 복구 작업을 수행하거나 결함이 있는 파티션을 교체하지 못할 수도 있습니다. 디스크.

그렇다면 미러링된 vdev의 일부로 사용하려는 디스크에 EFI 시스템 파티션을 배치하는 올바른 방법은 무엇입니까?

관련 정보