Solus OS(Linux)에서 암호화된 lvm2 볼륨 그룹에 btrfs raid 1을 추가하는 방법은 무엇입니까?

Solus OS(Linux)에서 암호화된 lvm2 볼륨 그룹에 btrfs raid 1을 추가하는 방법은 무엇입니까?

내가 가진 것:

56G SSD에 암호화된 LVM2가 포함된 Solus OS를 설치했으며 스왑이 필요하지 않았습니다. 훌륭하게 작동했습니다. 저는 32G의 RAM을 가지고 있으므로 지금은 스왑이 문제가 되지 않습니다. 앞으로는 주로 사무실, 웹, Daw 및 Rust 프로그래밍을 위한 데스크톱으로 사용되는 주요 장치가 될 것입니다(모두 동시에는 아님).

내가 하고 싶은 것:

RAID 1 구성에서 btrfs로 포맷된 2개의 1T hd를 실제 lvm2 볼륨 그룹에 추가합니다. 여기에는 /home(및 이미 있는 모든 것)이 포함되어야 하며 부팅 중에 /home으로 마운트되어 /home에 1T 공간을 확보하게 됩니다. , 소프트웨어 미러링 포함. 데이터 및 메타데이터에는 RAID 레벨 1을 사용해야 합니다.

/home은 사용된 핵심 문구로 암호화된 상태를 유지해야 합니다. 또한 fstab 및 fscrypt에서 수행해야 하는 -o 압축을 사용하여 btrfs를 설치하고 싶습니다. fscrypt나 비슷한 소리가 나는지 현재로서는 확실하지 않습니다.

내가 지금까지 이해한 것:

  1. btrfs raid 생성
  2. /home의 모든 내용을 임시로 마운트된 /home-btrfs에 복사합니다.
  3. 다음을 얻으려면 몇 가지 마법을 수행하십시오. SSD의 /home이 사라지고 /home-btrfs 마운트 해제 btrfs-raid를 볼륨 그룹에 추가하고 btrfs-raid를 /home으로 마운트하십시오. 모든 것이 다시 암호화되지만 더 많은 공간이 있습니다.

누구든지 나에게 이것을 설명해 줄 수 있습니까? 시작하기에 충분할지 잘 모르겠습니다. 나는 터미널이나 CLI를 두려워하지 않습니다. 방금 Windows 10의 공급업체 종속을 종료하고 Linux로 전환하기로 결정했습니다. 이 구성이 성능에 어느 정도 영향을 미칠 것이라는 것을 알고 있지만 괜찮습니다.

나의 현재 계획은 다음과 같습니다.

  1. gparted는 파티션 테이블(gpt)을 생성하고 btrfs를 사용하여 /dev/sdb1을 포맷합니다.
  2. 터미널/셸 열기
  3. sudo 설치 /dev/sdb1 /home-btrfs
  4. cp -var /home /home-btrfs를 사용하여 /home에서 /home-btrfs로 모든 내용을 복사합니다.
  5. gparted는 /dev/sdc -> /dev/sdc1에 파티션 테이블(gpt)을 생성합니다.
  6. btrfs 장치 /dev/sdc1 /home-btrfs 추가
  7. btrfs fi 균형 잡힌 시작 -mconvert=raid1,soft -dconvert=raid1,soft /home-btrfs
  8. 두 번째 셸을 열어 RAID 변환 진행 상황을 관찰하세요.
  9. btrfs 파일 시스템 균형 상태 /home-btrfs
  10. btrfs 밸런싱 시작 -dusage=0 -musage=0 /mnt/btrfs (빈 블록 제거)
  11. 이제 lvextend, pvcreate, vgextend 및 나머지 lvm2를 내 계획에 맞출 수 없기 때문에 막혔습니다.

문법이 좋지 않아 사과드립니다. 예, 여기 검색 기능과 Google을 사용하여 많은 시간을 보냈지만 필요한 답변을 찾을 수 없었습니다.

답변1

Solus OS는 systemd를 사용하므로 /etc/crypttab잠금 해제가 필요한 LUKS 장치를 구성하여 사용할 수 있도록 합니다 /etc/fstab.

LUKS 및 BTRFS 미러 사용(raid1) /home

  1. 소프트웨어 센터를 사용하여 설치합니다 btrfs-progs.
  2. 암호화 된 파일에 저장되고 /새 LUKS 컨테이너를 잠금 해제하는 데 사용되는 LUKS 키 파일을 생성합니다 /home.sudo dd bs=512 count=4 if=/dev/urandom of=/root/home.key
  3. 키 파일을 사용하여 두 장치 모두에 LUKS 컨테이너를 생성합니다.sudo cryptsetup luksFormat /dev/sdb /root/home.key && sudo cryptsetup luksFormat /dev/sdc /root/home.key
  4. 두 개의 LUKS 컨테이너를 잠금 해제하세요.sudo cryptsetup open --type luks /dev/sdb home0 --key-file /root/home.key && sudo cryptsetup open --type luks /dev/sdc home1 --key-file /root/home.key
  5. BTRFS 파일 시스템을 생성합니다.sudo mkfs.btrfs -d raid1 -m raid1 /dev/mapper/home0 /dev/mapper/home1
  6. BTRFS 파일 시스템을 어딘가에 마운트합니다(장치 중 하나만 지정하면 됩니다):mount /dev/mapper/home0 /mnt
  7. /homeBTRFS로 더 많은 유연성을 제공하기 위해 하위 볼륨을 생성합니다 .sudo btrfs subvol create /mnt/home
  8. 홈 디렉터리를 하위 볼륨에 복사합니다.cp -var /home /mnt
  9. /etc/crypttab새로운 LUKS 컨테이너를 잠금 해제하기 위해 생성/수정 :sudo echo "home0 /dev/sdb /root/home.key" >> /etc/crypttab && sudo echo "home1 /dev/sdc /root/home.key"
  10. /etc/fstab새 집에 맞게 수정하세요 .sudo echo "/dev/mapper/home0 /home btrfs defaults,subvol=/home" >> /etc/fstab
  11. 재시작.

재부팅하면 새 raid1 BTRFS 파일 시스템이 /home에 마운트됩니다. 남은 프로젝트는 기존 /home을 삭제하는 것입니다. 이 작업을 수행할 수 있어야 합니다.

이전 /home 삭제

  1. 재부팅하고 systemd-boot 메뉴가 나타나면 다음을 누르십시오.이자형열쇠.
  2. 이제 커널 명령줄을 편집할 수 있습니다. 다음에 추가"systemd.unit=rescue"
  3. 단일 사용자 모드로 부팅하려면 추가된 커널 명령줄을 사용하여 부팅하려면 Enter 키를 누르세요. 이렇게 하면 을(를) 제거할 수 있습니다 /home.
  4. 제거 /home: umount /home.
  5. 이전 것을 삭제하십시오 /home. 주의하십시오. 백업하는 것이 좋습니다.cd /home && rm -fR .
  6. 재시작.

BTRFS용으로 전체 장치만 사용하므로 파티셔닝이나 LVM이 필요하지 않습니다. 또한 BTRFS는 처음부터 두 개의 장치를 사용하고 RAID1 구성으로 생성되었으므로 균형을 재조정할 필요가 없습니다.

또한 LUKS 컨테이너는 키 파일을 사용하여 잠금 해제되므로 비밀번호를 세 번 입력하라는 메시지가 표시되지 않습니다. 하지만 키 파일에 문제가 있을 경우를 대비해 다른 LUKS 슬롯에 비밀번호를 추가해야 할 수도 있습니다.

힌트

마지막으로 세 개의 LUKS 헤더를 모두 백업하는 것이 좋습니다. 헤더가 손상되었고 백업이 없는 경우 디스크를 매립지로 보낼 수도 있습니다.

관련 정보