저는 제 목적을 위해 클라우드에 BTRFS 파일 시스템을 자동으로 생성하는 작업을 진행하고 있습니다. 솔직히 말해서 이 과정은 약간 짜증나고 이 과정에서 없애고 싶은 몇 가지 단계가 있습니다.
내 프로세스는 현재 다음과 같습니다.
parted /dev/sdX mklabel gpt
parted /dev/sdX mkpart primary 2048s 100%
mkfs.btrfs /dev/sdXY
LVM 해킹을 수행 하십시오 .pvcreate /dev/sdXY
vgcreate mygroup /dev/sdXY
lvcreate -l 100%FREE -n mylv mygroup
MOUNTDIR="$(mktemp -d)"
mount -t btrfs -o defaults,ssd,compress=lzo /dev/sdXY $MOUNTDIR
btrfs subvolume create $MOUNTDIR/root
umount $MOUNTDIR
echo "UUID=$(blkid -s UUID -o value /dev/sdXY) /mount/dir btrfs defaults,ssd,compress=lzo,subvol=root 0 0" >> /etc/fstab
그 과정은 추악하지만 효과적입니다.
파일 시스템을 마운트하지 않고 하위 볼륨을 생성하여 4-7단계를 제거할 수 있는 방법이 있습니까?
답변1
난 그렇게 생각하지 않아.
Btrfs는 온라인에서 다양한 작업, 즉 파일 시스템 마운트를 수행하도록 설계되었습니다. 이는 커널 드라이버에서 온라인으로 한 번, 사용자 공간 도구에서 오프라인으로 한 번, 모든 것을 두 번 인코딩하는 것을 피하는 좋은 방법입니다. 이 항목을 두 번 코딩하지 않으면 버그가 줄어들고 커널과 사용자 공간 기능이 어떤 방식으로든 달라질 가능성이 줄어듭니다.
제가 생각한 또 다른 접근 방식은 원하는 모든 설정과 하위 볼륨이 포함된 작은 Btrfs 파일 시스템을 만들고, 마운트를 해제한 후 블록 수준 이미지를 얻는 것입니다. 그런 다음 해당 이미지는 쿠키 커터 스타일로 많은 새로운 블록 장치에 배포됩니다. 그러나 이는 도움이 되지 않습니다. 이제 기본 블록 장치의 크기에 맞게 파일 시스템의 크기를 조정(증가)하려면 파일 시스템을 마운트해야 하기 때문입니다.