실험으로 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번째 파티션을 생성되었습니다.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으로 이용하기 위해서는 파티션타입이 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으로 바뀐걸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
확인할 수 있습니다. 이제 수정한 파티션을 저장하고 나옵니다.
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#]
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 파티션을 확인 할 수 있습니다.Filename Type Size Used Priority
/dev/hdc3 partition 1629424 0 -1
6. Booting시 자동으로 적용되게 하기
[linux#] vi /etc/fstab
로 fstab을 수정하여, fstab의 맨 마지막줄에 아래를 추가합니다.
/dev/hda3 swap swap defaults 0 0
로 fstab을 수정하여, fstab의 맨 마지막줄에 아래를 추가합니다.
/dev/hda3 swap swap defaults 0 0
이제 Swap 파티션을 추가하는 법을 다 배웠습니다. 이외에도 swap을 파티션으로 만들지 않고 파일 단위로 만드는 방법도
있습니다만, 이 방법은 권장하지 않는 방법이므로 여기서 다루지는 않습니다.
'Programing > Linux' 카테고리의 다른 글
[Linux] puty나 ssh에서 한글 깨짐 현상 해결 방법 (0) | 2009.09.23 |
---|---|
[Linux] x86 시스템에 tinyX 최소로 포팅하기 (0) | 2009.09.09 |
[Linux]부팅과정의 이해 (0) | 2009.09.04 |
[Linux]Redhat 9 부팅시 메시지 해석 (0) | 2009.08.26 |
[Linux]RedHat 9 에서 yum 설치하기 (0) | 2009.08.20 |