3. 디스크의 구조

리눅스의 하드 디스크는 파티션으로 세분화될 수 있으며, 이는 개별 블록 장치처럼 작동합니다. /dev/sda1/dev/sda2와 같은 예를 기억하실 수 있습니다. 여기서 /dev/sda는 전체 디스크를 나타내고, /dev/sda1은 해당 디스크의 첫 번째 파티션입니다. 파티션은 데이터를 분리하는 데 매우 유용합니다. 저장 공간의 일부에 특정 파일 시스템이 필요한 경우, 디스크 전체를 포맷하는 대신 새 파티션을 만들어 사용할 수 있습니다.

파티션 테이블

그렇다면 디스크의 어떤 구성 요소가 운영 체제에 디스크가 어떻게 파티션되었는지 알려줄까요? 정답은 파티션 테이블입니다. 이 중요한 구성 요소에는 하드 드라이브 파티션이 구성되는 방법에 대한 정보가 포함되어 있습니다. 파티션 테이블은 각 파티션이 시작하고 끝나는 위치, 부팅 가능한 파티션, 디스크의 어떤 섹터가 각 파티션에 할당되었는지를 지정합니다. 주요 파티션 테이블 방식에는 마스터 부트 레코드 (MBR) 와 GUID 파티션 테이블 (GPT) 의 두 가지가 있습니다.

리눅스 파티션 이해하기

디스크는 데이터를 구성하는 데 도움이 되는 파티션으로 구성됩니다. 단일 디스크에 여러 파티션을 가질 수 있지만 겹칠 수는 없습니다. 파티션에 할당되지 않은 디스크 공간은 여유 공간 (free space) 이라고 합니다. 사용 가능한 리눅스 파티션 유형은 사용하는 파티션 테이블 방식에 따라 달라집니다. 파티션 내부에서는 파일 시스템을 생성하거나 스왑 공간과 같은 다른 용도로 할당할 수 있습니다.

MBR 파티션

마스터 부트 레코드 (MBR) 는 전통적인 파티션 테이블 표준입니다.

  • 주 (primary), 확장 (extended), 논리 (logical) 파티션을 지원합니다.
  • MBR 은 최대 4 개의 주 파티션으로 제한됩니다.
  • 더 많은 파티션을 생성하려면, 하나의 주 파티션을 확장 파티션으로 지정해야 합니다 (디스크당 하나만 허용됨). 이 확장 파티션 내에서 다른 모든 파티션처럼 작동하는 여러 논리 파티션을 생성할 수 있습니다.
  • 최대 2 테라바이트 크기의 디스크를 지원합니다.

GPT 파티션

GUID 파티션 테이블 (GPT) 은 디스크 파티셔닝을 위한 최신 표준입니다.

  • 단일 유형의 파티션만 있으며 대량의 파티션을 생성할 수 있습니다.
  • 각 파티션에는 전역 고유 식별자 (GUID) 가 할당됩니다.
  • GPT 는 일반적으로 UEFI 기반 부팅 시스템과 함께 사용됩니다.

파일 시스템 구조

이전에 배운 바와 같이, 파일 시스템은 구성된 파일 및 디렉터리 모음입니다. 핵심적으로 파일 관리를 위한 데이터베이스와 파일 자체로 구성됩니다. 세부 구조를 살펴보겠습니다.

  • 부트 블록 (Boot block): 파일 시스템의 첫 번째 몇 개 섹터에 위치하며, 파일 시스템 자체에서는 사용되지 않습니다. 대신 운영 체제 부팅에 사용되는 정보가 포함되어 있습니다. OS 당 하나의 부트 블록만 필요합니다. 다른 파티션에도 부트 블록이 있을 수 있지만 종종 사용되지 않습니다.
  • 슈퍼블록 (Superblock): 부트 블록 바로 다음에 오는 단일 블록으로, 파일 시스템의 크기, 논리 블록의 크기, 파일 시스템의 총 크기와 같은 파일 시스템에 대한 메타데이터를 포함합니다.
  • 아이노드 테이블 (Inode table): 파일과 디렉터리를 관리하는 데이터베이스입니다. 각 파일 또는 디렉터리는 아이노드 테이블에 고유한 항목을 가지며, 이는 해당 파일에 대한 다양한 속성을 저장합니다. 아이노드에 대해서는 별도의 강의에서 다룰 것입니다.
  • 데이터 블록 (Data blocks): 파일과 디렉터리의 실제 내용이 저장되는 곳입니다.

아래는 MBR 파티션 테이블 (msdos 로 레이블 지정됨) 을 사용하는 디스크의 예입니다. 주 파티션, 확장 파티션 및 논리 파티션을 볼 수 있습니다.

pete@icebox:~$ sudo parted -l
Model: Seagate (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  6860MB  6859MB  primary   ext4            boot
 2      6861MB  21.5GB  14.6GB  extended
 5      6861MB  7380MB  519MB   logical   linux-swap(v1)
 6      7381MB  21.5GB  14.1GB  logical   xfs

이 두 번째 예시는 고유 ID 를 사용하여 파티션을 구분하는 GPT 파티션 테이블을 보여줍니다.

Model: Thumb Drive (scsi)
Disk /dev/sdb: 4041MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size     File system  Name        Flags
 1      17.4kB  1000MB  1000MB                first
 2      1000MB  4040MB  3040MB                second

로그인하여 학습 진행 상황을 저장하세요

로그인

연습 문제

디스크 파티셔닝 및 파일 시스템에 대한 이해를 강화하기 위해 다음 실습 랩을 권장합니다.

  1. 리눅스 파티션 및 파일 시스템 관리 - 새 파티션 생성, ext4 와 같은 파일 시스템으로 포맷, 마운트 및 /etc/fstab에서 영구 마운트 구성 연습.

이 랩은 실제 시나리오에서 디스크 관리 개념을 적용하고 리눅스 저장소에 대한 자신감을 구축하는 데 도움이 될 것입니다.

퀴즈

MBR 파티셔닝 방식에서 4 개 이상의 파티션을 생성하는 데 사용되는 파티션 유형은 무엇입니까? (단일 소문자 영어 단어로 답하십시오.)