파티션
파티션은 디스크에 공간을 만드는 것이다.
시스템 디스크 사용 절차
디스크 삽입 - 파티션 생성 - 파일시스템 포멧 - 마운트
디스크, 파티션, 파일시스템, 마운트 관련 명령어
lsblk : 현재 시스템의 블록장치에 관련한 상태 확인
sda 는 첫번째 디스크(SATA 방식)
sda1 첫번째 파티션 sda2 는 두번째 파티션
fdisk 명령어
MBR 파티션 생성
sector 가 모여서 트랙이 되고 트랙이 모여서 실린더가 되고 실린더가 모여서 디스크가 된다.
0 ~ 2047 은 MBR partition table 이 담겨 있다. 그래서 첫 번 째 섹터가 2048부터 시작한다.
마지막 섹터의 용량을 적어준다. 그 크기만큼 파티션이 생성된다.
파티션을 나눠준 후에 partprovbe /dev/[디스크 이름] 으로 재설정 해줘야 한다.
partprobe [디스크 이름] 은 디스크 정보를 시스템에 등록해주는 명령어이다.
# 대상:/dev/sdb
# 파티션 생성
# 주 파티션 2G 2G 2G
# 확장 파티션 2G 2G 2G 2G
# 위와 같이 파티션을 생성할 것이다.
$ fdisk /dev/sdb
n
(엔터 : default p)
(엔터 : 파티션 번호 default)
(엔터 : first sector default)
+2G
n
(엔터 : default p)
(엔터 : 파티션 번호 default)
(엔터 : first sector default)
+2G
n
(엔터 : default p)
(엔터 : 파티션 번호 default)
(엔터 : first sector default)
+2G
n
(엔터 : default e)
(엔터 : 파티션 번호 default)
(엔터 : first sector default)
(엔터 : last sector default)
p
n
(엔터 : logical partition first sector)
+2G
n
(엔터 : logical partition first sector)
+2G
n
(엔터 : logical partition first sector)
+2G
n
(엔터 : logical partition first sector)
+2G
w 를 눌러서 저장하고 나오면 된다.
$ partprobe /dev/sdb
mkfs 명령어
파일시스템 포맷을 할 때 사용하는 명령어이다.
mkfs -t [파일시스템] [파티션 이름] 또는 mkfs.[파일시스템] [파티션 이름] 둘 중에 하나를 골라 사용하면 된다.
파일 시스템이 해당 파티션에 적용됐는지 확인하고 싶으면 blkid 로 확인할 수 있다.
# 파티션 1~3 ext4로 포맷
$ mkfs -t ext4 /dev/sdb1
$ mkfs -t ext4 /dev/sdb2
$ mkfs -t ext4 /dev/sdb3
# 파티션 5~8 xfs로 포맷
$ mkfs.xfs /dev/sdb5
$ mkfs.xfs /dev/sdb6
$ mkfs.xfs /dev/sdb7
$ mkfs.xfs /dev/sdb8
mount 명령어
장치를 마운트 포인트와 연결시키는 명령어이다.
mount [장치 이름] [마운트포인트(path)] 로 마운트 실행
mount -a 는 /etc/fstab에 등록된 마운트 실행
$ /mnt/disk1~3 에 파티션 1~3 을 각각 수동 마운트
$ mkdir /mnt/disk{1..3}
$ mount /dev/sdb1 /mnt/disk1
$ mount /dev/sdb2 /mnt/disk2
$ mount /dev/sdb3 /mnt/disk3
# 마운트 및 파일시스템 확인
$ lsblk
$ df -Th
# 파티션 1~3을 xfs로 재 포맷
$ mkfs.xfs -f /dev/sdb1
$ mkfs -t xfs -f /dev/sdb2
$ mkfs.xfs -f /dev/sdb3
자동 마운트 하는 방법
# 자동 마운트를 하는 방법
# 장치명 마운트 위치
# sdb1 /mnt/disk1
# sdb2 /mnt/disk2
# sdb3 /mnt/disk3
$ vi /etc/fstab
# 장치명 마운트위치 파일시스템명 옵션 덤프여부 파일시스템체크순서
sdb1의 uuid /mnt/disk1 xfs defaults 1 1
/dev/sdb2 /mnt/disk2 xfs defaults 1 1
/dev/sdb3 /mnt/disk3 xfs defaults 1 1
위처럼 작성한다.
$ mount -a
$ lsblk
$ df -Th
/etc/fstab 에 명명한 것을 바탕으로 자동 마운트 된 것을 확인할 수 있다.
umount 명령어
마운트를 해제하는 명령어이다.
umount [장치명(마운트포인트)] 로 마운트 해제할 수 있다.
umount -a 는 사용중인 마운트 제외한 모든 마운트 해제
## 한꺼번에 마운트 해제
umount -a
df 명령어
파일시스템 상태를 확인하는 명령어이다.
주로 df -Th 로 파일시스템 상태를 확인한다.
blkid 명령어
파일시스템 관련 파티션 확인 명령어이다.
파티션 삭제할 때
sdb 파티션을 삭제하고자 할 때
$ fdisk /dev/sdb
d
# 4번 파티션 삭제 => extend partition을 삭제하게 되면 logical 파티션 모두 삭제
d
(엔터 - default)
d
(엔터 - default)
d
$ partbrobe /dev/sdb
만약 /etc/fstab 에 마운트 시키기 위해 작성한 값들이 있을 경우
$ vi /etc/fstab
입력정보 삭제
스왑 메모리
디스크 영역을 메모리 영역화하여 메모리처럼 사용할 수 있도록 해주는 방법
가상메모리 : 물리 메모리 + swap 을 가상메모리라고 한다.
- 현재 메모리에 p1 p2 p3 프로세스가 사용 중
- 메모리는 모두 사용 중 (여유가 없음)
- 새로운 p4 프로세스를 메모리에 올려야 될 경우
- 기존 프로세스 중에서 가장 오래되고 가장 중요도가 적은 프로세스를 스왑 영역으로 전환
- 기존 메모리에 공간이 나오게 되고 그 공간에 p4 프로세스를 적재
- 작업이 끝나고 메모리에 공간이 나오게 되면 스왑 영역에 있던 프로세스를 다시 메모리 영역으로 전환
free 명령어
스왑 공간 확인하는 명령어이다.
mkswap 명령어
해당 파티션을 스왑 파일 시스템으로 포맷해주는 명령어이다
mkswap [파티션 이름]
swapon 명령어
수동으로 스왑 마운트 해주는 명령어이다. mkswap 이후에 해줘야 한다.
swapon [파티션 이름]
swapoff 명령어
수동으로 스왑 마운트 해제하는 명령어이다.
swapoff [파티션명]
swapon -a 명령어
/etc/fstab 에 설정한 값을 바탕으로 스왑 마운트를 해주는 명령어이다.
swapoff -a 명령어
모든 스왑 마운트 해제해주는 명령어이다.
전체적인 실습
# 대상:/dev/sdb
# 파티션 생성
# 주파티션
# 1G, 2G, 3G 시스템 네임 swap으로 설정
$ fdisk /dev/sdb
# 파티션 생성
t
1
83
t
2
83
t
3
83
p
w
$ partprobe /dev/sdb
# 스왑 파일시스템으로 포맷
$ mkswap /dev/sdb1
$ mkswap /dev/sdb2
$ mkswap /dev/sdb3
# 스왑 용량 확인
$ free
$ swapon -s
# 파티션 1을 수동 스왑 마운트
$ swapon /dev/sdb1
# 스왑 용량 확인
$ free
$ swapon -s
# 파티션 2을 자동 스왑 마운트 설정 (UUID로)
$ blkid
# /dev/sdb2 uuid 복사
$ vi /etc/fstab
sdb2의 uuid swap swap defaults 0 0
# 파티션 3을 자동 스왑 마운트 설정 (파티션명으로)
/dev/sdb3 swap swap defaults 0 0
:wq
# 스왑 용량 확인
$ free
$ swapon -s
# 자동마운트 설정된 것 모두 마운트(재부팅하지 말고)
$ swapon -a
# 스왑 용량 확인
$ free
$ swapon -s
# 모든 스왑 마운트 해제
$ swapoff -a
# 스왑 용량 확인
$ free
$ swapon -s
# 설정된 스왑 마운트 다시 재 마운트
$ swapon -a
# 스왑 용량 확인
$ free
$ swapon -s
# /dev/sdb1 의 스왑은 수동으로 마운트 한 것이기 때문에 마운트가 안됨.