리눅스 스왑파일 만들기


우분투 18.04 기준입니다.

스왑용량이 부족하거나 설치시 별도의 스왑파티션을 지정하지 않은 경우 간단히 스왑파일을 만들어서 사용할 수 있습니다.

기본적으로 시스템 관련 작업이므로 root 권한을 가지고 있는 경우로 가정하겠습니다.

$ sudo -i

다음과 같이 fallocate 를 이용해 원하는 용량의 스왑파일로 사용할 빈 파일을 만듭니다. (보통 장착된 램의 두배정도) 여기서는 간단히 8GiB 짜리 스왑을 생성해 보겠습니다.

# fallocate -l 8G /.swapfile

dd 명령어를 이용하는 방식도 있는데 fallocate 가 더 간편하고 빠르더군요.

보안을 위해 스왑 파일의 권한을 제한합니다.

# chmod 0600 /.swapfile

아래와 같이 스왑 파일을 생성합니다.

# mkswap /.swapfile
Setting up swapspace version 1, size = 8 GiB (8589930496 bytes)
no label, UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

현재 시스템에 스왑 파일 바로 적용해 봅니다.

# swapon /.swapfile

위와 같이 하고 free 명령어로 스왑이 적용되었는지 확인 할 수 있습니다.

# free -h
              total        used        free      shared  buff/cache   available
Mem:            15G         11G        173M        471M        3.8G        3.4G
스왑:        8.0G          0B        8.0G

이상태에서 리부팅하면 스왑파일 설정은 사라져 버립니다. ㅜㅜ; 시스템 리부팅시 자동으로 적용하기 위해서는 /etc/fstab을 아래와 같이 열어 편집합니다.

# vi /etc/fstab

(vi 편집기 사용법: Shift 키 + G (대문자 G) 를 누르고 o 를 입력하면 마지막줄에 새로운 줄을 추가해서 입력할 수 있습니다.)

아래 내용 을 맨 밑줄에 추가합니다.

/.swapfile none swap sw 0 0

(vi 편집기 사용법: 모두 적었으면 Esc 키를 누르고 나서 :wq 를 입력하고 엔터를 치면 저장할 수 있습니다.)

저장해 두면 이제 리부팅 후에도 스왑파일을 자동으로 시스템에서 스왑 영역으로 사용하게 됩니다.