본문 바로가기
IT/리눅스 이론

리눅스 파티션 기초 - 리눅스 파티션에 대한 이해

by 꾸꾸웍스 2022. 8. 6.
반응형

 


리눅스 파티션 기초 - 리눅스 파티션에 대한 이해


 

 

 

※ 목차

1) 리눅스 파티션이란?
2) 리눅스 파티션 종류
3) 리눅스 파티션 보기
4) 리눅스 파일 시스템 만들기

 

리눅스 파티션이란?

 

리눅스 파티션(Linux Partition)

리눅스 파티션(partition)이란? 디스크 공간의 분할을 의미하는 것으로 하드 디스크 드라이브의 기억 공간을 별도의 데이터 영역으로 분할하는 것을 말합니다. 한 번 디스크가 여러 개의 파티션으로 나뉘면 다른 카테고리의 디렉터리와 파일들은 다른 파티션에 저장되게 됩니다.

 

파티션을 하는 이유

리눅스 파티션을 하는 가장 큰 이유는 디스크의 공간을 나누고 각 공간 사용이 다른 공간을 간섭하지 않도록 하는 것입니다. 파티션을 나누는 다른 이유는 서로 다른 공간에 서로 다른 OS를 설치하기 위해서 각 OS를 다른 파티션에 설치합니다. 또한 보호 목적으로 파티션을 나누어 사용합니다.

 

장치 파일(device file) 이름 생성 기준

장치 파일은 각 디스크에 대응하는 장치 파일(device file)이 있습니다. 예를 들어 IDE 디스크의 경우는 /dev/hdx이고 SCSI 디스크의 경우에는 /dev/sdx가 있습니다. 맨 끝에 붙은 x는 디스크 개수에 따라 a에서부터 z까지 붙여주는데 예를 들어 IDE 디스크가 한 개 있는 경우에는 /dev/hda이고 IDE 디스크가 두 개 있는 경우에는 /dev/hda와 /dev/hdb로 장치 파일이 구성됩니다.

 

[사진 출처:  https://runhbm.tistory.com/1066 ]

※ IDE디스크란?
IDE 디스크는 (Integrated Drive Electronics) 
가장 오래된 규격으로 포트는 40개의 핀으로 구성된 직사각형

 

 

디스크 파티션 이름 생성 기준

파티션의 장치 파일은 위 설명과 같이 끝에 a부터 z가 붙지만 디스크에 파티션을 나누게 되면 이름 뒤에 숫자로 구분하게 됩니다. 예를 들어 /dev/hda 디스크를 2개의 파티션으로 나눌 경우 /dev/hda1과 /dev/hda2로 뒤에 숫자가 붙어 파티션이 나누어지게 됩니다.

 

리눅스 파티션 종류

 

리눅스 파티션은 일반적으로 아래의 용도로 많이 생성하게 됩니다. 서버를 사용하려는 목적에 따라 원하는 피티션을 구성하여 시스템을 구성하는 것이 좋습니다.

 

/ (루트) 파티션 

루트 파티션은 단일 사용자 모드로 수행하기 위해 필요한 핵심 시스템 파일이 저장됩니다. 핵심 기능들이 보호되도록 다른 파일 시스템과 분리해 놓는 것이 좋습니다.

 

/boot 파티션

/boot 파티션은 리눅스 커널 이미지, 맵, 파일 등을 저장합니다.

 

/var 파티션

/var 파티션은 Spool 디렉토리 (메일, 프린트 등)와 로그 파일을 저장합니다. 부주의하여 매우 큰 파일이 생길 수 있으므로 별도의 파티션으로 분리하는 것이 좋습니다.

 

/tmp 파티션

/tmp 파티션은 사용자 응용 프로그램에서 임시 파일을 저장하는 곳으로 사용하게 됩니다. 부주의하여 매우 큰 임시 파일이 생길 수 있으므로 별도의 파티션으로 분리하는 것이 좋습니다.

 

/home 파티션

/home 파티션은 사용자의 홈 디렉토리를 위한 파티션으로 사용하게 될 서버의 목적에 따라 사용자를 구분하여 적절한 용량으로 파티션을 분리하는 것이 좋습니다.

 

SWAP 파티션

스왑 파티션은 가상 메모리를 저장합니다. 보통 RAM 크기의 2배로 사용하게 됩니다.

 

 

반응형

 

 

리눅스 파티션 보기

 

$ fdisk -l

fdisk -l

 

리눅스 fidsk 명령어로 현재 디스크 및 현재 파티션을 볼 수 있습니다. 디스크 장치 파일이나 파티션의 장치 파일을 확인할 수 있습니다.

 

 

$ df -h

df -h

 

df 명령어로 현재 파일 시스템 디스크 공간을 볼 수 있습니다. 즉 파티션으로 나누어진 디스크를 볼 수 있습니다. -h 옵션은 사용자가 용량을 편리하게 볼 수 있게 하는 옵션입니다.

 

 

$ cat /etc/fstab

cat /etc/fstab

 

/etc/fstab는 모든 파티션의 정보를 가지고 있습니다. /etc/fstab는 부트 과정에서 자동으로 마운트를 할 수 있게 합니다. 형식은 왼쪽부터 순서대로 장치 파일 이름, 마운트 될 디렉토리, 파일 시스템 유형, 마운트 파라미터, dump여부, fsck 프로그램이 검사할 순서로 /etc/fstab로 설정합니다.

 

 

/etc/fstab 마운트 파라미터

parameter 의미
defaults rw, suid, exec, nouser, auto
ro read-only
rw read / write
exec 실행 파일의 실행을 허용
auto 자동으로 마운트, 또한 mount -a로 마운트 가능
noauto 자동으로 마운트되지 않음
quota quota 설정시에 사용함
noatime i-node에 있는 접근 시간 정보를 변경하지 않음
nouser 일반 사용자는 마운트를 못하게함
nosuid setuid 비트를 설정하지 못하세함

 

 

 

 

리눅스 파일 시스템 만들기

 

파티션을 생성하였으면 각 파티션에 파일 시스템을 만들어야 됩니다. 즉 파일시스템을 만든다는 것은 생성된 파티션으로 format을 하는 의미 입니다. 파일시스템 유형으로는 ext2, ext3, swap, FAT, iso9660, proc, etc가 있습니다. 아래 예시는 /dev/hdb3이라는 장지파일을 가지고 파일시스템을 만드는 예시입니다.

 

ext2 파일 시스템 만들기

$ mke2fs /dev/hdb3

mke2fs /dev/hdb3

 

ext3 파일 시스템 만들기

$ mkfs.ext3 /dev/hdb3

mkfs.ext3 /dev/hdb3

 

swap 파일 시스템 만들기

$ mkswap /dev/hdb3

mkswap /dev/hdb3

 

파티션 생성 후 마운트가 안될 때

fdisk -l에 장치 파일이 보이고 파티션을 생성 후 마운트 작업을 하려고 하니 아래와 같은 오류가 생성되면 파일 시스템을 새로 생성 후 마운트 작업을 진행해줘야 됩니다.

 

mount error 메세지

mount: /dev/sdb is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/sdb, missing codepage or helper program, or other error

In some cases useful info is found in syslog - try
dmesg | tail or so.

 

ext4 파일 시스템 만들기

$ mkfs.ext4 /dev/sdb

mkfs.ext4 {장치이름}

 

mkfs.ext4 {장치 이름}으로 파일 시스템을 포멧 후 아래 마운트명령어를 입력합니다.

 

$ mount /dev/sdb /recbackup

mount /dev/sdb /recbackup

 

파일시스템을 format 후 mount를 시도한 후 df 명령어로 보면 마운트가 된 것을 확인할 수 있습니다.

 

반응형
그리드형

댓글