
UEFI는 대부분 vFAT로 포맷된 ESP에서 부팅해야 합니다. 올바르게 기억한다면 BTRFS는 LVM(논리 볼륨 관리자)과 같이 ext3/ext4로 형식화된 하위 볼륨을 가질 수 있습니다. 그러나 UEFI는 BTRFS에서의 부팅을 지원하지 않습니다. 대부분의 경우 해결 방법은 단순히 3개(또는 2N + 1)개의 디스크를 사용하는 것입니다. 두 개는 RAID용이고 하나는 부팅용입니다. 이 경우 나의 주요 관심사는 단순한 RAID1 미러링입니다. 이 경우에는 두 개의 디스크만 사용할 수 있습니다. 마더보드가 BIOS를 사용하고 있다면 간단히 부팅 파티션을 미러링할 수 있습니다.
나는 이 문제(부팅을 위해 추가 디스크를 사용해야 함)가 사람들이 ZFS로 전환한 이유 중 하나라고 들었습니다. 비록 내가 잘못 기억하고 있을 수도 있지만 말입니다.
제 경우에는 파티션이 있는 전체 디스크를 미러링했습니다. 이상하게도 두 번째 디스크에는 ESP 파티션 하나, btrfs 파티션 하나, 이렇게 두 개의 파티션이 있었습니다. 그러나 나는 이것이 BTRFS-RAID1이 사용하려는 방식이 아니라고 가정합니다. 내 질문은 구체적으로 다음과 같습니다.
- 이 구성으로 인해 손상이나 기타 의도하지 않은 결과가 발생합니까?
- 더 나은 해결책은 무엇입니까?
답변1
귀하의 진술에서 제가 수집한 내용에 따르면 다음(또는 유사한) 디스크 레이아웃을 가진 두 개의 디스크가 있습니다.
sda: GPT
sda1: Linux MD RAID member
sda2: Swap
sda3: BTRFS pool member (RAID 1 allocation policy)
sdb: GPT
sda1: Linux MD RAID member
sda2: Swap
sda3: BTRFS pool member (RAID 1 allocation policy)
md0: ESP (~100mb? VFAT) mounted at /boot/efi (RAID 1 allocation policy)
BTRFS pool:
root subvol (mounted at /)
home subvol (mounted at /home)
et cetera ad nauseam.
이는 거의 모든 경우에 정확히 원하는 것이며 구성이 이를 반영하지 않는 경우 아마도 이를 반영하도록 만들고 싶을 것입니다.
이 경우 Linux MD 볼륨은 sda1과 sdb1 사이의 RAID 1입니다. sd[a,b]1을 직접적으로 다루지 말고, 여기서 생성된 MD 볼륨만 마운트하십시오(일반적으로 /dev/md0
또는 /dev/md/0
생성 중에 특별한 이름을 지정할 필요가 없다고 느낀 경우는 제외). 마더보드 펌웨어는 부팅 시 단일 디스크에서 해당 데이터를 그대로 찾을 것으로 예상하므로 ESP 볼륨에는 반드시 RAID1을 사용해야 합니다.
스왑 파티션은 자연스럽게 스트라이프되지만, 하나의 실패로 인해 거의 모든 경우에 시스템이 충돌하지는 않습니다. 호출기는 매우 똑똑하므로 합당한 이유가 없는 한 스왑에 MD를 사용하지 마십시오.
BTRFS 풀은 자동으로 스캔하므로 파일에 항목을 추가할 때 UUID로 이 볼륨을 지정하는 것이 가장 좋습니다 /etc/fstab
.
GRUB2는 모든 BTRFS RAID 레벨에서 부팅할 수 있습니다. "1단계" 로더가 두 파티션 테이블(sda, sdb) 모두에 설치되어 있는지 확인하세요. 이는 호출 시 수행됩니다 grub-install /dev/sda
(배포판에 따라 약간 다를 수 있음).