Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

부록 A. 디스크 파티션 소개

참고

이 부록에 설명된 내용은 AMD64 및 Intel 64 이외의 아키텍처에는 적용되지 않지만 기본적인 개념은 적용 가능합니다.
다음 부분에서는 기본 디스크 개념, 디스크 파티션 다시 설정, Linux 시스템에서 사용하는 파티션 이름 지정 체계 및 관련 주제에 대해 설명합니다.
디스크 파티션에 익숙하시다면 A.2절. “디스크 파티션 재설정 전략 ”으로 이동하여 Red Hat Enterprise Linux 설치를 준비하기 위해 디스크 공간을 확보하는 절차에 대한 내용을 참조하시기 바랍니다.

A.1. 하드 디스크 기본 개념

하드 디스크는 매우 단순한 기능을 수행합니다. — 하드 디스크는 데이터를 저장하며, 명령에 따라 안전하게 사용자에게 그 데이터를 가져다 줍니다.
디스크 파티션 설정과 같은 문제를 논의할 때 기본 하드웨어에 대해 이해하고 있는 것이 중요합니다. 하지만 이론은 매우 복잡하고 광범위하므로 여기서는 기본적인 개념에 대해서만 설명합니다. 이 부록에서는 단순화된 디스크 드라이브의 다이어그램을 사용하여 파티션의 프로세스와 이론에 대해 설명합니다.
그림 A.1. “사용되지 않은 디스크 드라이브”에서는 사용하지 않은 새로운 디스크 드라이브를 보여줍니다.
사용되지 않은 디스크 드라이브

그림 A.1. 사용되지 않은 디스크 드라이브

A.1.1. 파일 시스템

디스크 드라이브에 데이터를 저장하려면 먼저 디스크 드라이브를 초기화해야 합니다. 초기화 (일반적으로 "파일 시스템 만들기"로 알려짐)는 드라이브에 정보를 기록하여 초기화되지 않은 드라이브에 있는 빈 공간에 순서를 생성하는 것입니다.
파일 시스템이 있는 디스크 드라이브

그림 A.2. 파일 시스템이 있는 디스크 드라이브

그림 A.2. “파일 시스템이 있는 디스크 드라이브”에서 볼 수 있듯이, 파일 시스템을 통해 만들어진 순서에는 트레이드 오프 (trade-off) 관계가 포함되어 있습니다:
  • 드라이브의 사용 가능한 공간의 일부분은 파일시스템과 관련된 데이터를 저장하기 위해 사용되며, 이는 오버헤드로 간주될 수 있습니다.
  • 파일 시스템은 남은 공간을 작고 같은 크기의 단위로 나눕니다. Linux에서 이러한 단위는 블럭(block)이라 불립니다.[4]
또한 하나의 보편화된 파일 시스템은 존재하지 않음에 유의하십시오. 그림 A.3. “다른 파일 시스템을 사용하는 디스크 드라이브”에서 볼 수 있듯이, 디스크 드라이브 상에는 여러 다른 파일 시스템 중에서 한 가지 파일 시스템이 기록되어 있을 수 있습니다. 다른 파일 시스템은 서로 호환이 되지 않는 경향이 있습니다; 즉, 한 운영 체제가 특정 파일 시스템 (또는 그와 관련된 여러 파일 시스템 유형)을 지원한다면 다른 파일 시스템들은 지원하지 않을 수 있습니다. 그러나 예를 들어 Red Hat Enterprise Linux는 (다른 운영 체제에 의해 주로 사용되는 많은 파일 시스템을 포함한) 여러 다양한 파일 시스템을 지원하여, 다른 파일 시스템 사이에서도 데이터 교환이 쉽게 이루어 질 수 있도록 해줍니다.
다른 파일 시스템을 사용하는 디스크 드라이브

그림 A.3. 다른 파일 시스템을 사용하는 디스크 드라이브

물론 디스크에 파일 시스템을 기록하는 것은 단지 첫 단계에 불과합니다. 이러한 과정의 목표는 실제로 데이터를 저장하고 검색하는 것입니다. 다음 그림에서는 몇 개의 데이터가 기록된 후의 디스크 드라이브를 보여줍니다:
데이터가 기록된 디스크 드라이브

그림 A.4. 데이터가 기록된 디스크 드라이브

그림 A.4. “데이터가 기록된 디스크 드라이브”에서 볼 수 있듯이 이전에 비어있었던 블록들 중의 일부분이 현재 데이타를 가지고 있는 것을 볼 수 있습니다. 그러나, 이 그림을 보는 것 만으로는 도대체 얼마나 많은 파일들이 이 드라이브 상에 존재하는지 알 수 없습니다. 모든 파일이 최소 한 개의 블록을 사용하며, 몇몇 파일들은 여러 블록을 사용할 수 도 있으므로, 드라이브상의 파일 갯수는 한 개 또는 여러 개일 수 있습니다.또 다른 한가지 기억하셔야 할 것은 사용되는 블록이 연속적으로 할당되어 있을 필요는 없다는 것입니다; 사용된 블록과 사용되지 않은 블록들이 흩어져 있을 수 도 있습니다. 이것은 단편화(fragmentation)로 알려져 있습니다. 단편화는 기존 파티션의 크기를 재조정하려고 할 때 그 역할을 합니다.
대부분의 컴퓨터 관련 기술처럼, 디스크 드라이브도 처음으로 소개된 이후 시간에 따라 계속 변화해 왔습니다. 특히, 더욱 커졌다고 할 수 있습니다. 눈에 보이는 크기가 아니라 정보를 저장하는 용량이 커졌다는 것입니다. 그리고 추가적인 용량 증가로 인해 디스크 드라이브가 사용되는 방식에 근본적인 변화가 생겼습니다.

A.1.2. 파티션: 드라이브 한 개를 여러 개로 나누기

디스크 드라이브는 파티션 (Partition)으로 분할할 수 있습니다. 각각의 파티션은 개별 디스크처럼 액세스할 수 있습니다. 이것은 파티션 테이블(Partition table)을 추가함으로서 이루어 집니다.
디스크 공간을 개별 디스크 파티션에 할당하는 이유에는 다음과 같은 것이 있습니다:
  • 사용자 데이터에서 운영 체제 데이터를 논리적으로 분리시키기 위해
  • 다른 파일 시스템을 사용하기 위해
  • 하나의 컴퓨터에서 여러 운영 체제를 실행하기 위해
물리적 하드 디스크에는 마스터 부트 레코드 (MBR) 및 GUID 파티션 테이블 (GPT)이라는 두 개의 파티션 레이아웃 표준이 있습니다. MBR은 BIOS 기반 컴퓨터에서 사용되는 기존의 디스크 파티션 설정 방식입니다. GPT는 새로운 파티션 레이아웃으로 UEFI (Unified Extensible Firmware Interface)의 일부입니다. 이 섹션 및 A.1.3절. “파티션 내의 파티션 — 확장된 파티션 개요”에서는 주로 MBR (Master Boot Record) 디스크 파티션 설정 체계에 대해 설명합니다. GPT (GUID Partition Table) 파티션 설정 레이아웃에 대한 자세한 내용은 A.1.4절. “GUID 파티션 테이블 (GPT)”에서 참조하십시오.

참고

이 장에 나오는 그림에서는 파티션 테이블이 실제 디스크 드라이브와 별개인 것처럼 보여집니다. 그러나 이것이 전부 다 정확하다고 할 수는 없습니다. 실제로 파티션 테이블은 어떤 파일 시스템이나 사용자 데이타 이전에 디스크 가장 처음에 저장됩니다. 하지만 쉬운 설명을 위해 여기 그림에서는 별개로 취급하기로 합니다.
파티션 테이블을 가진 디스크 드라이브

그림 A.5. 파티션 테이블을 가진 디스크 드라이브

그림 A.5. “파티션 테이블을 가진 디스크 드라이브”에서 볼 수 있듯이, 파티션 테이블이 네 부분 또는 네 개의 기본 파티션으로 분할되어 있습니다. 기본 파티션은 하드 드라이브 상에 있는 파티션으로 하나의 논리 볼륨 (또는 부분)만이 포함될 수 있습니다. 각 부분은 단독 파티션을 정의하는 데 필요한 정보를 저장할 수 있으며, 이는 파티션 테이블이 최대 네 개의 파티션만을 정의할 수 있음을 의미합니다.
각 파티션 테이블의 항목은 파티션의 여러 중요한 특성들을 포함하고 있습니다:
  • 디스크에서 파티션이 시작하고 끝나는 지점
  • 파티션이 "active"인지에 대한 여부
  • 파티션 유형
시작과 끝 지점은 실제로 파티션의 크기와 디스크상의 위치를 결정합니다. "활성 (active)" 플래그는 몇몇 운영 체제의 부트 로더에서 사용됩니다. 즉, "활성 (active)"으로 설정된 파티션에 있는 운영 체제가 부팅됩니다.
파티션 유형은 파티션이 앞으로 사용될 용도를 표시하는 숫자입니다. 몇몇 운영 체제에서는 이 파티션 유형을 특정 파일 시스템 유형을 지정하거나, 파티션이 특정 운영 체제와 연관되어 있음을 표시하거나, 파티션에 부팅 가능한 운영 체제가 있음을 나타내거나, 또는 이러한 세가지 정보를 조합하여 표시하는데 사용합니다.
단독 파티션을 갖는 디스크 드라이브의 예는 그림 A.6. “단독 파티션을 가진 디스크 드라이브”에서 참조하십시오.
단독 파티션을 가진 디스크 드라이브

그림 A.6. 단독 파티션을 가진 디스크 드라이브

많은 경우에 오직 단독 파티션만이 파티션 이전에 사용되었던 방식을 복제하면서 전체 디스크를 메꾸고 있습니다. 파티션 테이블에서는 오직 한가지 항목만이 사용되며 그것은 파티션의 시작을 가르킵니다.
이 파티션을 "DOS" 유형으로 레이블했습니다. 이것이 표 A.1. “파티션 유형”에 있는 여러 가능한 파티션 유형 중 하나에 불과하긴 하지만, 지금 설명하고 있는 내용에는 충분합니다.
표 A.1. “파티션 유형”에는 일반적인 (그리고 사용하지 않는) 파티션 유형이, 16진법으로 나타낸 파티션 번호와 함께, 나열되어 있습니다.

표 A.1. 파티션 유형

파티션 유형 파티션 유형
비어있음 00Novell Netware 38665
DOS 12-bit FAT01PIC/IX75
XENIX root02Old MINIX80
XENIX usr03Linux/MINUX81
DOS 16-bit <=32M04Linux swap82
Extended05Linux native83
DOS 16-bit >=3206Linux extended85
OS/2 HPFS07Amoeba93
AIX08Amoeba BBT94
AIX bootable09BSD/386a5
OS/2 Boot Manager0aOpenBSDa6
Win95 FAT320bNEXTSTEPa7
Win95 FAT32 (LBA)0cBSDI fsb7
Win95 FAT16 (LBA)0eBSDI swapb8
Win95 Extended (LBA)0fSyrinxc7
Venix 8028640CP/Mdb
Novell51DOS accesse1
PReP 부트41DOS R/Oe3
GNU HURD63DOS secondaryf2
Novell Netware 28664BBTff

A.1.3. 파티션 내의 파티션 — 확장된 파티션 개요

네 개의 파티션으로 충분하지 않을 경우 확장 파티션을 사용하여 추가 파티션을 생성할 수 있습니다. 파티션 유형을 "확장 (Extended)"으로 설정하여 작업합니다.
확장 파티션은 또 다른 디스크 드라이브와 비슷합니다 — 그 안에는 확장 파티션 안에만 전적으로 포함되는 파티션을 가리키는 파티션 테이블이 있습니다 (처음 네 개의 주 파티션(primary partitions)과 대비해 논리 파티션(logical partitions) 이라 부릅니다). 그림 A.7. “확장 파티션을 가진 디스크 드라이브”에서는 하나의 주 파티션과 두 개의 논리 파티션을 갖는 하나의 확장 파티션이 있는 디스크 드라이브를 보여줍니다 (파티션되지 않은 빈 공간도 있습니다).
확장 파티션을 가진 디스크 드라이브

그림 A.7. 확장 파티션을 가진 디스크 드라이브

이 그림에서 볼 수 있듯이 일차 파티션과 논리 파티션에는 차이가 있습니다. — 일차 파티션은 4개까지 있을 수 있지만, 논리 파티션의 숫자에는 한계가 정해져 있지 않습니다. 그러나 Linux에서 파티션에서 액세스하는 방법을 고려하면 단독 디스크 드라이브 상에 12개 이상의 논리 파티션을 정의하는 것은 좋지 않습니다.

A.1.4. GUID 파티션 테이블 (GPT)

GUID 파티션 테이블 (GPT)은 새로운 파티션 설정 체계로 글로벌 고유 식별자 (GUID)의 사용을 기반으로 합니다. GPT는 특히 디스크의 최대 스토리지 공간의 제한과 같은 MBR 파티션 테이블의 제한을 해결하기 위해 개발되었습니다. MBR과는 달리 이는 2.2 TB 이상의 스토리지 공간을 허용할 수 없기 때문에 GPT는 이 크기 보다 큰 하드 디스크로 사용할 수 있습니다. 허용할 수 있는 최대 디스크 크기는 2.2 제타바이트입니다. 또한 GPT는 기본값으로 123 개의 주 파티션 생성을 지원합니다. 이 숫자는 파티션 테이블에 더 많은 공간을 할당하여 확장할 수 있습니다.
GPT 디스크는 LBA (logical block addressing)을 사용하고 파티션 레이아웃은 다음과 같습니다:
  • MBR 디스크와의 호환성을 유지하기 위해 GPT의 첫 번째 섹터 (LBA 0)는 MBR 데이터 용으로 사용되고 이는 protective MBR이라고 합니다.
  • GPT 헤더는 장치의 두 번째 논리 블록 (LBA 1)에서 시작됩니다. 헤더에는 디스크 GUID, 주 파티션 테이블 위치, 보조 GPT 헤더 위치, CRC32 체크섬 자체, 주 파티션 테이블이 포함됩니다. 또한 테이블의 파티션 엔트리 수도 지정되어 있습니다.
  • GPT 테이블 에는 기본값으로 128 파티션 항목이 포함되어 있으며 각 항목 크기는 128 바이트로 파티션 유형 GUID 및 고유한 파티션 GUID가 있습니다.
  • 보조 GPT 테이블은 주 GPT 테이블과 동일합니다. 이는 주 파티션 테이블이 손상된 경우 복구를 위한 백업 테이블로 사용됩니다.
  • 보조 GPT 헤더는 디스크의 마지막 논리 섹터에 있으며 주요 헤더가 손상된 경우 GPT 정보를 복구하는데 사용할 수 있습니다. 이에는 디스크 GUID, 보저 파티션 테이블 위치, 주 GPT 헤더, CRC32 체크섬 자체, 보조 파티션 테이블, 가능한 파티션 항목 수가 포함됩니다.

중요

GPT (GUID Partition Table)가 들어 있는 디스크에 부트로더를 설치하려면 BIOS 부트 파티션이 있어야 합니다. 이에는 Anaconda에 의해 초기화된 디스크가 포함됩니다. 디스크에 이미 BIOS 부트 파티션이 있을 경우 이를 다시 사용할 수 있습니다.


[4] 블럭은 실제로는 그림과 달리 모두 같은 크기입니다. 또한, 평균적인 디스크 드라이브에는 수천개의 블럭이 포함되어 있음에 유의하십시오. 이 그림은 설명을 위해 단순화되어 있습니다.