리눅스 시스템 관리의 핵심은 물리적 저장 장치를 논리적인 데이터 관리 체계로 변환하는 과정을 이해하는 데 있다.
이 포스팅을 통해 헷갈리기 쉬운 디스크, 파티션, 파일 시스템의 개념적 차이를 명확히 하고, 실제 Rocky Linux 환경에서의 파일 시스템 조회 데이터를 가지고 파일 시스템이 어떻게 구성되어 있는지 알아보자.
1. 스토리지 관리의 3단계: 디스크, 파티션, 파일 시스템
리눅스에서 저장 장치는 세 가지 논리적 단계를 거쳐 준비된다.
- 디스크 (Disk): HDD 또는 SSD와 같은 물리적인 하드웨어 장치 그 자체를 의미한다. 리눅스 커널은 이를 /dev/sda 또는 /dev/nvme0n1과 같은 장치 파일로 인식하며, 이 상태에서는 아직 데이터를 구조적으로 저장할 수 없다.
- 파티션 (Partition): 하나의 물리 디스크를 독립적인 영역으로 분할한 논리적 구획이다. /dev/nvme0n1p1과 같이 번호를 붙여 관리하며, 각 파티션은 서로 다른 운영체제를 설치하거나 특정 용도(부팅, 데이터 저장, 스왑)로 격리하여 관리할 수 있다.
- 파일 시스템 (File System): 분할된 파티션 내부에 데이터를 어떻게 기록하고 관리할 것인지 결정하는 논리적 구조이다. ext4, xfs 등이 대표적이며, 파일의 메타데이터와 실제 데이터를 관리하는 규칙을 정의한다.
| 구분 | 디스크 (Disk) | 파티션 (Partition) | 파일 시스템 (File System) |
| 성격 | 물리적 장치 (Hardware) | 논리적 구역 (Logical) | 논리적 구조 (Software) |
| 리눅스 예시 | /dev/sda | /dev/sda1 | ext4, xfs, btrfs |
| 주요 작업 | 하드웨어 장착 | fdisk, parted 명령어로 파티션 생성/삭제 | mkfs 명령어로 포맷(파일 시스템 생성) |
[ 물리 디스크 (Disk) ] /dev/nvme0n1 (전체 공간)
▼
[ 파티션 (Partition) ] /dev/nvme0n1p1, p2 (구역 나눔)
▼
[ 파일 시스템 (FS) ] xfs, ext4 (데이터 관리 규칙 생성)
▼
[ 마운트 (Mount) ] / , /boot (디렉토리 연결)
💡 마운트(Mount)가 중요한 이유
윈도우는 파티션에 파일 시스템을 만들면 C:, D: 드라이브로 바로 나타나지만, 리눅스는 그렇지 않다.
파일 시스템이 구축된 파티션을 리눅스의 전체 디렉토리 구조(/) 중 특정 폴더에 연결해야만 사용할 수 있는데, 이 과정을 마운트라고 한다.
📌마운트의 흐름
- fdisk (또는 parted): 물리 디스크를 파티션으로 나눈다. (/dev/sdb → /dev/sdb1)
- mkfs (또는 mke2fs): 나눈 파티션에 파일시스템을 생성(포맷)한다.
- mount: 생성된 파일시스템을 특정 디렉터리에 연결한다.
- /etc/fstab: 재부팅 후에도 자동으로 마운트되도록 설정 파일에 등록한다.
2. Rocky Linux의 블록 장치 구조
그러면 실제로 Rocky Linux 9.7 환경에서 lsblk 및 lsblk -f 명령어를 통해 스토리지 구성이 어떻게 되어 있는지 확인해보자.
🟢블록 장치 계층

- 물리 장치: nvme0n1은 20GB 용량의 물리 NVMe SSD이다.
- 파티션 구성:
- nvme0n1p1 (1GB): /boot에 마운트되어 있으며, 시스템 부팅에 필요한 파일을 담고 있다.
- nvme0n1p2 (19GB): LVM(Logical Volume Manager) 구성을 위한 물리 볼륨(PV)으로 할당되어 있다.
- LVM(Logical Volume Manager): p2 파티션 내부에는 다시 rl-root(17GB)와 rl-swap(2G)이라는 논리 볼륨이 생성되어 각각 루트 디렉토리(/)와 가상 메모리 공간으로 사용된다.
🟢파일 시스템 형식

- xfs: /boot 파티션과 rl-root 논리 볼륨에 적용된 파일 시스템이다. RHEL 계열 운영체제의 기본 파일 시스템으로, 고성능과 대용량 데이터 처리에 최적화되어 있다.
- iso9660: 설치 미디어인 sr0 장치에 적용된 표준 광학 디스크(CD-ROM) 파일 시스템 형식이다.
- swap: 메모리 부족 시 보조 저장 공간으로 활용되는 특수 용도의 파일 시스템이다.
| 장치 이름 | 파일 시스템 (FSTYPE) | 역할 및 특징 |
| sr0 | iso9660 | CD-ROM/ISO 표준: 읽기 전용 미디어 규격. 현재 Rocky Linux 설치 디스크가 이 형식으로 인식되어 있다. |
| nvme0n1p1 | xfs | 부팅용: 리눅스 커널이 위치한 /boot 파티션. 대용량 처리에 강한 xfs가 적용되었다. |
| nvme0n1p2 | LVM2_member | LVM 컨테이너: 이 파티션은 직접 데이터를 담는 수납장이 아니라, LVM이라는 '가변형 가구'를 넣기 위한 틀 역할을 한다. |
| rl-root | xfs | 최상위 시스템(/): 실제 운영체제와 프로그램이 설치된 핵심 수납장. RHEL/Rocky Linux의 기본값인 xfs 형식을 사용 중이다. |
| rl-swap | swap | 가상 메모리: 파일 저장용이 아닌, RAM 보조용 공간. 별도의 디렉토리에 마운트되지 않고 [SWAP]으로 표시된다. |
3. 파일 시스템의 내부 논리 구조
파일 시스템으로 포맷된 파티션은 정밀하게 설계된 관리 영역으로 나뉜다.
[ Boot Block ] + [ Block Group 0 ] + [ Block Group 1 ] + ... + [ Block Group n ]
│
┌──────────────┴────────────────┐
│ - Super Block │ (FS 전체 정보)
│ - Group Descriptor Table │ (그룹 위치 정보)
│ - Data/Inode Bitmap │ (빈 공간 관리)
│ - Inode Table │ (파일 메타데이터)
│ - Data Blocks │ (실제 데이터 저장)
└───────────────────────────────┘
Boot Block과 Block Group
파일 시스템의 최상단에는 시스템 부팅을 위한 Boot Block이 위치하며, 그 뒤로 다수의 Block Group이 이어진다.
대규모 데이터를 효율적으로 관리하기 위해 파일 시스템을 여러 그룹으로 분할하여 관리하는 것이 일반적이다.
Block Group의 세부 구성
각 블록 그룹 내부에는 다음과 같은 구성 요소가 포함된다.
- Super Block: 블록의 크기(1KB, 2KB, 4KB), 총 블록의 개수와 블록 그룹의 개수, inode의 개수 등 시스템 운영에 필수적인 메타데이터를 저장한다. 손상 시 복구를 위해 여러 그룹에 복사본을 유지한다.
- Group Descriptor Table (GDT): 블록 그룹 내 주요 구조물들의 시작 주소와 상태 정보를 관리한다.
- Bitmaps (Block/Inode): 어떤 블록이나 Inode가 현재 사용 중인지 0과 1의 비트로 기록하여 할당 효율성을 높인다.
- Inode Table: 파일의 실제 이름은 제외하고, 파일의 소유권, 권한, 크기, 생성 시간, 데이터 블록의 위치 주소 등 모든 속성 정보를 관리하는 테이블이다.
- Data Blocks: 실제 사용자의 데이터가 저장되는 영역이다.
4. 부팅 메커니즘과 부트 블록의 계층 구조
파티션이 여러 개일 경우 각 파티션은 독립적인 부트 블록을 가질 수 있으며, 이는 MBR과 VBR의 계층적 구조로 설명된다.
🟢부팅 영역의 분리
[ 물리 디스크 전체 ]
└─ [ MBR/GPT (Sector 0) ] : 전체 파티션 테이블 및 주 부트로더 관리
│
├─ [ 파티션 1 (VBR/Boot Block) ] : OS 1 부팅 코드
├─ [ 파티션 2 (VBR/Boot Block) ] : OS 2 부팅 코드
└─ [ 파티션 3 (VBR/Boot Block) ] : OS 3 부팅 코드
- MBR (Master Boot Record): 디스크의 가장 첫 번째 섹터에 위치하며, 시스템 부팅 시 가장 먼저 읽히는 마스터 부트 레코드이다.
- VBR (Volume Boot Record): 파일 시스템의 부트 블록에 해당하며, 특정 파티션 내의 운영체제를 제어하기 위한 코드가 담겨 있다.
- 이러한 분리 구조 덕분에 하나의 디스크 내에서 여러 운영체제를 독립적으로 관리하는 멀티 부팅이 가능해진다.
'Journey to Security > 리눅스' 카테고리의 다른 글
| 리눅스 기본 명령어 모음 (0) | 2026.03.17 |
|---|---|
| Rocky Linux 서버 IP 설정 (nmtui) (0) | 2026.03.17 |
| /lib : 정적 라이브러리(.a) vs 동적 공유 라이브러리(.so) (0) | 2026.02.15 |
| [Linux] APT 저장소 방식으로 VS Code 설치하기 (작동 원리) (0) | 2026.02.10 |
| [Linux] C/C++ 개발 환경 세팅: GCC, G++ 설치 및 build-essential (0) | 2026.02.10 |