두 개의 동일한 디스크가 있는 서버가 있습니다. 이 디스크에서 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/sda2
EFI 부트 로더가 포함된 파티션입니다. 형식은 입니다 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'
물론 나 역시 이 문제를 어떻게 해결할 수 있을지 오랫동안 연구했지만 소용이 없었다. 두 가지 일반적인 솔루션이 있지만 둘 다 적용할 수 없습니다.
FAT 파티션을 삭제하거나 다른 파일 시스템 유형을 사용하여 포맷하십시오. 제 경우에는 이것이 EFI 시스템 파티션이기 때문에 말이 안 됩니다.~ 해야 하다존재하고~ 해야 하다FAT 변형 중 하나로 포맷하세요. 그렇지 않으면 EFI 부트로더를 디스크에 넣을 수 없거나 UEFI BIOS가 부트로더를 찾을 수 없습니다.
를 사용하십시오
zpool create -f ...
. 즉,-f
위에 표시된 명령에 추가하십시오. 이는zpool
파티션을 파괴하여 동일한 문제를 일으키므로 의미가 없습니다 .
내 또 다른 아이디어는 먼저 파티션 2 없이 파티션 레이아웃을 생성하고 이를 위한 충분한 공간을 남겨둔 다음 미러 vdev를 생성하고 파티션 2를 추가하는 것입니다. 이것이 효과가 있을 것이라고 확신하지만 디스크 중 하나를 교체하거나 재동기화를 시도할 때와 같은 모든 종류의 문제가 발생할 수 있다는 내용도 읽었습니다. 기본적으로 ZFS는 디스크의 이러한 파티션을 좋아하지 않으며 처음 vdev를 생성할 때 문제를 해결하면 나중에 비용을 지불하게 되며 복구 작업을 수행하거나 결함이 있는 파티션을 교체하지 못할 수도 있습니다. 디스크.
그렇다면 미러링된 vdev의 일부로 사용하려는 디스크에 EFI 시스템 파티션을 배치하는 올바른 방법은 무엇입니까?