본문 바로가기

Programing/Linux

[Linux]Swap 파티션 추가하기

실험으로 x86시스템에 Linux를 최소용량을 포팅하던 중 메모리가 큰 시스템이라 Swap 파티션이 있어야 될꺼같아서,
Linux에 Swap파티션을 만들거나 추가하는 방법을 적습니다.


Swap 파티션이란?
Swap 파티션은 일종의 가상메모리 파티션입니다. 운영체제에서 메모리를 사용함에 있어, 물리적인 메모리만을 사용하다
보면 용량의 한계로 인해 메모리 부족현상이 발생하거나 특정 프로세서의 처리 속도가 떨어지는 경우가 발생할 수 있습니다.
이 경우 하드디스크의 일부 영역을 메모리로 사용하면서 메모리 부족현상을 보완하는 방식을 많이 사용하게 됩니다.
이때 사용되는 것이 가상메모리 영역이다.

Swap 파티션 추가
Swap 파티션을 추가할 시스템의 상태는 아래와 같습니다.
* 리눅스가 설치는 되어 있으나, Swap 파티션은 없음
* Swap 파티션을 추가할 Disk는 /dev/hdc이고, 3번째 물리 파티션으로 추가(3번째 물리 파티션이 없다고 가정합니다.)
* 추가할 Swap 파티션의 용량은 10M

1. 시스템의 Swap 파티션 알아보기
[linux#] swapon -s
현재 Swap이 없으므로, 아무 내용도 없을겁니다.

2. Swap 파티션 생성
* 자세한 fdisk의 사용법은 따로 확인 하시기 바랍니다.
[linux#] fdisk /dev/hdc
위와 같이 입력하면, /dev/hdc의 파티션을 설정할 수 있는 fdisk 프로세스가 실행됩니다.

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4) p
Partition number (1-4): 3
First cylinder (10001-12500, default 10001): enter
Using default value 10001
Last cylinder or +size or +sizeM or +sizeK (10001-12500, default 12500): +10M
(M대신 K를 쓰면 킬로바이트, 아무것도 안붙이면 바이트단위로 됩니다.)
여기까지 하셨으면, Swap을 위한 3번째 파티션을 생성되었습니다.
그러나 리눅스에서 이 파티션을 Swap으로 이용하기 위해서는 파티션타입이 swap으로 되어야합니다.

Command (m for help): p
Disk /dev/hdc: 8119 MB, 8119738368 bytes
16 heads, 63 sectors/track, 15733 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdc1   *         1     10000   5039968+  83  Linux
/dev/hdc3         10001     10007      3528   83  Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 82
Changed system type of partition 2 to 82 (Linux swap)

Command (m for help): p
Disk /dev/hdc: 8119 MB, 8119738368 bytes
16 heads, 63 sectors/track, 15733 cylinders
Units = cylinders of 1008 * 512 = 516096 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hdc1   *         1     10000   5039968+  83  Linux
/dev/hdc3         10001     10007      3528   82  Linux swap
t명령어로 파티션 타입을 바꾸어주면, 위와 같이 /dev/hdc3의 System 항목이 Linux에서 Linux Swap으로 바뀐걸
확인할 수 있습니다. 이제 수정한 파티션을 저장하고 나옵니다.

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.

[linux#]

3. Swap 파티션 Format
2번에서 생성한 /dev/hdc3를 Swap 파일시스템으로 Format을 합니다.
[linux#] mkswap /dev/hdc3

4. Swap 파티션 활성화
[linux#] swapon /dev/hdc3

5. 추가한 Swap 파티션 확인하기
[linux#] swapon -s

Filename      Type         Size         Used    Priority
/dev/hdc3     partition     1629424    0          -1
4번과 5번을 입력하면 위와같이 활성화된 /dev/hdc3 Swap 파티션을 확인 할 수 있습니다.

6. Booting시 자동으로 적용되게 하기
[linux#] vi /etc/fstab
로 fstab을 수정하여, fstab의 맨 마지막줄에 아래를 추가합니다.
/dev/hda3         swap                    swap    defaults        0 0

이제 Swap 파티션을 추가하는 법을 다 배웠습니다. 이외에도 swap을 파티션으로 만들지 않고 파일 단위로 만드는 방법도
있습니다만, 이 방법은 권장하지 않는 방법이므로 여기서 다루지는 않습니다.