fdisk

fdisk 명령어를 통해 새로운 파티션의 생성, 기존 파티션의 삭제, 파티션의 타입 결정 등의 작업들을 수행할 수 있습니다.


fdisk -l 명령어를 통해 현재 모든 디스크의 파티션 설정 현황을 볼 수 있습니다.

/dev/sda는 총 8.5G 이며,  2개의 파티션 /dev/sda1 , /dev/sda2으로 나뉜 것을 확인할 수 있습니다.

Boot에 * 표시가 되어 있는 파티션은 부팅할 때 사용하는 파티션임을 의미합니다.


이제 본격적으로 fdisk를 사용해보겠습니다.

# fdisk 장치이름 명령어를 입력하면 대화식으로 파티션을 설정할 수 있습니다.


m을 누르면 명령할 수 있는 목록들을 출력합니다.



n을 누르면 새로운 파티션을 추가할 수 있습니다.

partition type에서 extended는 확장 파티션으로써 4개 이상의 파티션을 만들고 싶은 경우에 사용합니다.

따라서 p를 입력해서 primary partition을 생성하고,

first sector와 last sector는 건드리지 않고 그냥 엔터를 눌러서 종료합니다.





포맷

파티션을 생성한 뒤에 할 일은 포맷을 하는 것입니다.

mkfs 명령어를 통해 파일 시스템을 바꿀 수 있습니다.


# mkfs.ext4 /dev/sdb1

CentOS는 ext2, ext3, ext4, xfs 파일 시스템을 지원하는데, swap을 제외하고는 ext4와 xfs 파일 시스템을 사용하는 것이 좋습니다.

( CentOS7은 기본적으로 xfs 파일 시스템을 사용 )





마운트

fdisk로 파티션을 생성하고 mkfs로 포맷을 진행했으면, 실제 디스크를 사용하기 위해서 디렉터리와 마운트를 해야 합니다.

리눅스에서는 디스크를 사용하기 위해서 디렉터리와 연결을 해줘야 하는데, 이를 마운트라 합니다.


우선 마운트 할 디렉터리( foo )를 생성하고, 테스트를 위해 디렉터리 안에 파일( file1 )을 하나 생성하겠습니다.

# mkdir /root/foo

# cd /root/foo # touch file1

# ls -l

# ls -l 명령 결과 file1이 생성된 것을 확인할 수 있습니다.


이제 foo 디렉터리를 마운트 시킨 후, 똑같이 파일( file2 )을 하나 생성하겠습니다.

# mount /dev/sdb1 /root/foo # touch file2 # ls -l

# mount

/dev/sdb1 디렉터리와 foo 디렉터리를 연결 하는 명령어 입니다.

마운트를 하면, foo 디렉터리에 존재하는 파일들은 /dev/sdb1 장치에 저장된 파일이 됩니다.


그래서 file2를 생성하고 ls -l 명령을 해보면 file2만 존재하는 것을 확인할 수 있습니다.

즉 마운트를 하기 전과 마운트를 하고 난 후, 존재하는 파일이 다릅니다.


그렇다면 file1은 어디로 갔을까요?

file1은 /dev/sdb1에 숨겨져 있는 상태로 존재합니다.

다시 말해서 마운트를 해제하면, file1이 다시 복구되고, file2는 foo에 존재하지 않게 됩니다.

# umount /dev/sdb1

그러면 이번에는 file2는 어디로 갔을 까요?

file2는 /dev/sdb1 장치에 그대로 보관되어 있습니다.

즉 아무 디렉터리하고 다시 마운트를 하면 file2가 마운트 된 디렉터리에 존재하게 됩니다.





항상 마운트 되도록 설정하기

서버를 실행 할 때 마다 매 번 마운트 하는 것은 귀찮습니다.

/etc/fstab 파일을 통해 파티션이 항상 마운트가 되도록 설정할 수 있습니다.

# vi /etc/fstab

/dev/sdb1    /foo    ext4    defaults    1    2


vi 편집기를 열고 위와 같이 작성합니다.


설정 하는 각 항목은 다음과 같습니다.

장치이름 / 마운트 할 디렉터리 / 파일 시스템 / 속성 / dump 사용 여부 / 파일 시스템 체크 여부


1) defaults                        : 읽기, 쓰기, 실행 작업 가능

2) dump 사용 할 경우 : dump 명령어를 이용한 백업이 가능

3) 파일 시스템 체크 여부

0 : 파일 시스템 체크 안함 ( 필요하지 않을 경우에 설정하며, 부팅 속도가 빨라짐 )

1 : 가장 먼저 파일 시스템을 체크 ( 일반적으로 / 파일 시스템에 설정 )

2 : 1 다음 파일 시스템을 체크 ( 그 외 )



이제 설정을 마쳤으므로 재부팅을 한 뒤에, foo 디렉터리에 file1이 존재할 지, file2가 존재할 지 확인해보겠습니다.

마운트가 안되어있다면 file1이 존재할 것이고, 마운트가 되었다면 file2가 존재하겠죠?

# reboot

# ls -l /root/foo

결과를 보시면 file2가 존재하므로, 마운트가 되었다는 것을 확인할 수 있습니다.




이상으로 fdisk를 통해 파티션을 조작해보고, 디렉터리에 마운트 하는 방법에 대해 알아보았습니다.