KDE Neon: var/opt 등을 Btrfs Subvolume 으로.

제목에 KDE Neon 이 들어가 있지만, 우분투/데비안 어디에서나 가능하다.
다만, KDE Neon(focal 기반)은 현재 Calamares 설치 프로그램을 사용하고, KDE Neon 에서 실험한 결과로 이 글을 썼으므로 KDE Neon 을 제목에 붙여줬다.


보통 20GB 정도면 일반 리눅스용 / 로는 부족함이 없는데, 이것 저것 욕심내 쓰다보니 30GB 로도 부족한 상황이 됐다. 그렇다고 루트를 크게 잡고 싶진 않고.. 헌데 살펴보니, 주로 opt 와 var 가 용량을 많이 차지했다.
따라서, 여기를 분리하고자 한다.

이 작업은, KDE Neon 설치(NVMe 드라이브)가 모두 끝나고, 재부팅하기 바로 전에 실행함을 가정했다.
정리하자면 다음과 같다.

/dev/nvme0n1p1 : EFI
/dev/nvme0n1p2 : / Btrfs, Subvolume @
/dev/nvme0n1p3 : /home Btrfs
/dev/nvme0n1p4 : /opt, /var Btrfs, Subvolume @var, @opt

  • p2 의 @ 는, Ubiquity 든 Calamares 든, Btrfs 를 / 로 택하면 알아서 자동으로 만들어준다.
  • p3 도 Btrfs 이고 /home 을 할당했지만, 여기엔 설치프로그램이 Subvolume 을 만들지는 않는다.
  • p4 도 Btrfs 이고 일단은 /opt 만 할당했지만, 설치프로그램이 Subvolume 을 만들지는 않는다.

따라서 핵심은 이렇다.

p4 에 서브볼륨을 만들고, 이것을 /etc/fstab 에 저장

이런 식으로 파티션을 구성했다고 가정한다.

p4 에는 /opt 만을 사용하겠다고 설정했지만, 아래 작업을 통해 Subvolume 을 만들고, /var 를 추가한다.

sudo mount /dev/nvme0n1p4 /mnt/p4
sudo btrfs subvolume create /mnt/p4/@var-KDENeon-focal
sudo btrfs subvolume create /mnt/p4/@opt-KDENeon-focal

서브볼륨을 만들 때 이름 앞에 @ 를 붙이는 이유는 잘 모르지만, 그냥 구분을 위해, 또는 관습(Convention)으로 보인다. 서브볼륨은 ls 명령으로는 디렉토리와 구분이 어렵기 때문에 아마도 이렇게 하지 않았을까.

@var-KDENeon-focal 식으로 다소 장황하게 명명한 이유는, 다른 배포판에서도 이 파티션을 사용할 가능성이 있기 때문이다.
예를 들면, 이런 식으로.

sudo btrfs subvolume create /mnt/p4/@var-opensuse-tumbleweed

서브볼륨 생성이 끝났으면, 이제 / 를 /mnt/p2 에 마운트하고, 이미 만들어진 /var 를 새 서브볼륨으로 옮긴다.

sudo mv /mnt/p2/@/var/* /mnt/p4/@var-KDENeon-focal/

/opt 밑에는 현재 아무 파일이 없기 때문에 옮길 필요는 없다.

이제, /etc/fstab 을 수정해줘야 하는데, 지금 상황에선 /mnt/p2/@/etc/fstab 이 되겠다.
현재값은 이렇다.

cat /mnt/p2/@/etc/fstab 
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may
# be used with UUID= as a more robust way to name devices that works even if
# disks are added and removed. See fstab(5).
#
# <file system>             <mount point>  <type>  <options>  <dump>  <pass>
UUID=8DCB-862F                            /boot/efi      vfat    defaults,noatime 0 2
UUID=6bc1038d-1043-4ba4-b96c-e6cdc724af64 /              btrfs   subvol=@,defaults,noatime,space_cache,autodefrag 0 1
UUID=18b3305a-a265-4be1-8fbf-9fa88c976564 /home          btrfs   defaults,noatime,space_cache,autodefrag 0 2
UUID=baabe728-f220-4236-8150-fda64935c4a9 /opt           btrfs   defaults,noatime,space_cache,autodefrag 0 2

여기서 /opt, /var 를 추가/수정해줘야한다.

UUID=baabe728-f220-4236-8150-fda64935c4a9 /opt           btrfs   subvol=@opt-KDENeon-focal,defaults,noatime,space_cache,autodefrag 0 2

UUID=baabe728-f220-4236-8150-fda64935c4a9 /var           btrfs   subvol=@var-KDENeon-focal,defaults,noatime,space_cache,autodefrag 0 2

작업 끝.
재부팅하면 된다.

안녕하세요. 글 남겨주셔서 고맙습니다.