[Linux] 파티션

728x90

파티션

파티션은 디스크에 공간을 만드는 것이다.

시스템 디스크 사용 절차

디스크 삽입 - 파티션 생성 - 파일시스템 포멧 - 마운트

디스크, 파티션, 파일시스템, 마운트 관련 명령어

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 을 가상메모리라고 한다.

  1. 현재 메모리에 p1 p2 p3 프로세스가 사용 중
  2. 메모리는 모두 사용 중 (여유가 없음)
  3. 새로운 p4 프로세스를 메모리에 올려야 될 경우
  4. 기존 프로세스 중에서 가장 오래되고 가장 중요도가 적은 프로세스를 스왑 영역으로 전환
  5. 기존 메모리에 공간이 나오게 되고 그 공간에 p4 프로세스를 적재
  6. 작업이 끝나고 메모리에 공간이 나오게 되면 스왑 영역에 있던 프로세스를 다시 메모리 영역으로 전환

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 의 스왑은 수동으로 마운트 한 것이기 때문에 마운트가 안됨.
728x90