[Linux] 리눅스(CentOS7)

[Linux] 리눅스 디스크 파티션_4

ITsubin 2022. 3. 15. 00:22

[Linux] 리눅스 디스크 파티션_3에서는 가상으로 디스크를 생성하였습니다.

즉, 물리적으로 디스크를 연결만 했다(선만 연결했다)라고 볼 수 있습니다.

 

이번 포스팅에서 드디어 리눅스 서버 환경에서 파티션을 분할해보겠습니다.

 

먼저 개념부터 복습한 후 실습하겠습니다.

만약 sdb 디스크를 7개로 분할하려면 어떻게 분할해야 할까요?

 

[Linux] 리눅스 디스크 파티션_2에서 말씀드렸듯, 아래 그림처럼 분할하는 것은 불가능합니다.

Primary(주 파티션 영역)는 최대 4개까지만 생성이 가능하기 때문입니다.

 

아래의 그림처럼 Primary는 세 개, Extended는 한 개를 생성한 후 Extended를 Logical 4개로 분할한다면

디스크를 총 7개로 분할이 가능합니다.

7개로 분할한 sdb 디스크 전체를 그림으로 표현한다면 아래의 그림과 같습니다.

MBR 역시 Primary의 앞에만 붙을 수 있습니다.

즉, 운영체제를 설치할 수 있는 것은 Primary 영역 어디에든 가능하지만 이외에는 불가능합니다.

 

저는 [Linux] 리눅스 디스크 파티션_3에서 생성한 SCSI 타입의 sdb디스크를 아래 그림과 같이 파티셔닝 하겠습니다.

Primary는 각각 5G로 두 개, 나머지 10G는 Extended로 잡은 후 Extended를 Logical 2개로 분할하겠습니다.

fdisk 명령어로 파티션 설정 모드에 진입합니다.

sdb 디스크의 파티션을 분할하기 위해 fdisk /dev/sdb 명령을 사용하겠습니다.

 

Command에서는 n(new)으로 파티션 생성, d(delete)로 파티션 선택 후 삭제, q(quit)로 종료, w(write)로 저장, p로 파티션 정보를 볼 수 있습니다.

Command에 n을 입력해서 새로운 파티션을 생성하겠습니다.

[root@localhost /]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb2f9bee6.

Command (m for help):

 

(p)primary와 (e)extended 중 선택하면 됩니다.

p를 입력하면 primary를, e를 입력하면 extended를 선택합니다.

(default값이 설정되어 있는 경우 Enter만 쳐도 자동으로 default 값으로 설정됩니다.

아래에서는 default p로 설정되어있으므로 Enter만 쳐도 무방합니다.)

p를 입력해서 primary를 선택하겠습니다.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p):

 

p를 입력하면 파티션 번호를 지정할 수 있습니다.

primary는 최대 4개까지만 생성이 가능하므로 파티션 넘버는 1-4 안에서만 지정할 수 있습니다.

1을 입력해서 파티션 넘버를 1로 지정하겠습니다.

Select (default p): p
Partition number (1-4, default 1):

 

파티션의 첫 번째 섹터를 정하라고 나옵니다.

저는 Enter로 default값을 지정해주겠습니다.

Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):

 

파티션의 마지막 섹터를 입력하라고 나옵니다.

primary 5G로 정할 것이기 때문에 +5G를 입력하겠습니다. (5G가 아닌, +5G입니다.)

First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039):

 

파티션 1번이 5 GiB로 세팅되었음을 알려줍니다.

Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G
Partition 1 of type Linux and of size 5 GiB is set

 

위와 동일한 방법으로 2번 파티션을 primary로 추가해줍니다.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G
Partition 1 of type Linux and of size 5 GiB is set

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G
Partition 2 of type Linux and of size 5 GiB is set

 

primary 파티션(5G) 두 개가 모두 세팅되었으므로 extended를 설정할 차례입니다.

파티션 타입은 e로, 파티션 넘버는 3으로, 크기는 10G로 설정합니다. (나머지는 위와 동일합니다.)

 

VMware에서 디스크의 최대 크기를 20G로 설정했기 때문에 크기 설정은 default값으로 설정해도 자동으로 primary를 제외한 나머지의 10G가 할당됩니다.

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): e
Partition number (3,4, default 3): 3
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039):
Using default value 41943039
Partition 3 of type Extended and of size 10 GiB is set 

 

primary 파티션(5G) 두 개, extended 파티션(10G) 한 개가 모두 세팅되었으므로

이제 extended를 두 개의 logical로 분할하여 설정할 차례입니다.

 

n을 입력하면 아까와는 다르게 파티션 타입이 p와 e가 아닌, p와 l 두 개만 있는 것을 볼 수 있습니다.

 

extended는 최대 1개까지만 설정이 가능하므로 사라지고,

extended가 생겼기 때문에 logical을 선택할 수 있게 되었습니다.

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p):

 

logical 파티션 두 개를 추가하겠습니다.

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 5
First sector (20975616-41943039, default 20975616):
Using default value 20975616
Last sector, +sectors or +size{K,M,G} (20975616-41943039, default 41943039): +5G
Partition 5 of type Linux and of size 5 GiB is set

Command (m for help): n
Partition type:
   p   primary (2 primary, 1 extended, 1 free)
   l   logical (numbered from 5)
Select (default p): l
Adding logical partition 6
First sector (31463424-41943039, default 31463424):
Using default value 31463424
Last sector, +sectors or +size{K,M,G} (31463424-41943039, default 41943039):
Using default value 41943039
Partition 6 of type Linux and of size 5 GiB is set

 

모두 추가 했으니 Command에서 p를 입력하여 정보를 확인하겠습니다.

 

sdb4를 제외한 sdb1~6 파티션이 모두 설정된 것을 확인할 수 있습니다.

첫 번째와 두 번째 primary가 각각 sdb1과 sdb2, 3번째 extended가 sdb3,

마지막 logical 두 개가 각각 sdb5, sdb6으로 설정되었습니다.

 

sdb4가 없는 이유는 [Linux] 리눅스 디스크 파티션_2에서 말씀드렸듯이

파티션 번호 1~4까지는 모두 물리 영역이기 때문에 primary와 extended를 제외한 파티션은 사용이 불가합니다.

따라서 자동으로 logical 파티션은 순서대로 4번이 아닌 5번으로 설정됩니다.

Command (m for help): p

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4391906a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
/dev/sdb3        20973568    41943039    10484736    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    41943039     5239808   83  Linux

Command (m for help):

 

파티션 설정만 하고 그냥 나오면 마음이 아픕니다. 꼭 Command에서 w를 입력하여 저장을 해야 합니다.

w를 입력하면 저장 후 자동으로 나와집니다.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@localhost /]#

 

ll /dev | grep sdbfdisk -l 명령으로 확인해보면 파티셔닝이 잘 된 것을 확인할 수 있습니다.

[root@localhost /]# ll /dev | grep sdb
brw-rw----  1 root disk      8,  16  3월 14 23:17 sdb
brw-rw----  1 root disk      8,  17  3월 14 23:17 sdb1
brw-rw----  1 root disk      8,  18  3월 14 23:17 sdb2
brw-rw----  1 root disk      8,  19  3월 14 23:17 sdb3
brw-rw----  1 root disk      8,  21  3월 14 23:17 sdb5
brw-rw----  1 root disk      8,  22  3월 14 23:17 sdb6
[root@localhost /]#
[root@localhost /]# fdisk -l

Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4391906a

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880   83  Linux
/dev/sdb3        20973568    41943039    10484736    5  Extended
/dev/sdb5        20975616    31461375     5242880   83  Linux
/dev/sdb6        31463424    41943039     5239808   83  Linux

(sda부분 생략)