제목에 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
작업 끝.
재부팅하면 된다.