Ubuntu에서 Swap 파티션 비활성화

일반적으로 Linux에서 swap은 전용 파티션을 구성하거나 swap 파일을 생성해서 사용합니다. 그리고 파티션의 경우에는 /etc/fstab에 설정되어 부팅 할 때 활성화 되도록 되어있습니다.

사용자가 swap을 영구적으로 비활성화 하고 싶을 경우에는 간단히 /etc/fstab을 주석처리하는 형태로 비활성화 하는데 Ubuntu의 경우에는 /etc/fstab 설정파일에서 삭제하더라도 부팅 했을 때 활성화 되는 경우가 있습니다.

이는 swap 관련된 설정이 파일시스템 설정에만 존재하는 것이 아니라 부팅할 때 사용하는 initramfs 이미지에도 설정되어있기 때문입니다.

initramfs 수정 및 업데이트

보통 아래 위치에 설정파일이 존재하며 swap 파티션의 UUID 값이 설정되어있습니다.

[/etc/initramfs-tools/conf.d/resume]
RESUME=UUID=f67867df-3f62-4045-9d07-7aa2adab3523

따라서, swap을 영구적으로 비활성화 하고자 한다면 위 설정파일 내용을 주석처리하거나 삭제하고 아래 명령으로 initramfs를 새로 생성해 주어야 합니다.

$ sudo update-grub
$ sudo update-initramfs -u

systemd swap unit 비활성화

또한,  systemd 환경에서 동작하는 경우에는 Swap 파티션이 swap unit으로 등록되어 관리되기 때문에 위의 설정을 하고나서 재부팅을 하더라도 Swap이 활성화 되는 경우가 있습니다.

이러한 경우에는 아래와 같이 등록 된 swap unit(보통 dev-파티션이름.swap)을 찾아서 mask해서 비활성화 해 줍니다.

$ sudo systemctl list-unit-files --type swap
UNIT FILE     STATE
dev-sda3.swap loaded

1 unit files listed.

$ sudo systemctl mask dev-sda3.swap
Created symlink from /var/run/systemd/generator.late/swap.target.wants/dev-sda3.swap to /dev/null.

기타

initramfs 설정 및 파일을 업데이트하고 systemd 설정을 해주는 과정이 불편하다면 간단하게 해당 파티션을 swap으로 인식되지 않게 일반 파일시스템으로 포맷하거나 삭제하면 됩니다.