Handbook:AMD64/Blocks/Disks/ko

공간 분할
비록 이론적으로 리눅스 시스템을 저장할 디스크 전체를 사용할 수 있다고는 하지만, 실제로는 거의 불가능합니다. 대신, 전체 디스크 블록 장치를 더 작게 나누고, 더 관리하기 쉬운 블록 장치로 만들 수 있습니다. AMD64 시스템에서는, 파티션이라고 합니다. 현재 MBR과 GPT 두가지 분할 표준 기술이 있습니다.

MBR
MBR(주 부트 레코드) 설정은 시작 섹터 및 파티션의 길이, 그리고 다음의 파티션 형식을 지원하는 32비트 식별자를 사용합니다: 주, 확장, 논리. 주 파티션은 마스터 부트 레코드 자체에 저장한 정보를 지니고 있습니다. 마스터 부트 레코드는 매우 작으며(보통 512 바이트) 디스크의 맨 처음에 위치합니다. 공간이 작기 때문에 오직 네 개의 주 파티션만을 지원합니다(예를 들자면, 부터 까지).

더 많은 파티션을 지원하려면 주 파티션 중 하나를 확장 파티션으로 표시할 수 있습니다. 이 파티션은 논리 파티션(파티션 안의 파티션)을 보유할 수 있습니다.

각각의 파티션은 2 TB 크기로 제한됩니다(32 비트 식별자이기 때문에). 또한 MBR 설정에서는 백업 MBR을 제공하지 않기 때문에 프로그램이나 사용자가 MBR을 덮어쓰면, 모든 파티션 정보를 잃습니다.

GPT
GPT (GUID 파티션 테이블) 설정에선 파티션에 64비트 식별자를 사용합니다. 파티션 정보를 저장하는 위치는 512 바이트의 MBR보다 훨씬 크며, 파티션의 수량에 제한이 없습니다. 또한 파티션 사이즈도 훨씬 큰 제한 공간에 둘러쌓여있습니다(거의 8 ZB - 예, 제타바이트입니다).

운영 체제와 펌웨어의 시스템 프로그램 인터페이스가 (BIOS 대신) UEFI일 때, GPT는 MBR로 인한 호환성 문제가 일어나는 현 상황에서 단연 필수라 할 수 있습니다.

GPT는 또한 디스트의 마지막 부분에 백업 GPT를 보유하여 디스크 시작 부분의 주 GPT 손상을 복구할 수 있는 장점이 있습니다. GPT는 또한 CRC32 체크섬을 활용하여 헤더와 파티션 테이블의 오류를 감지합니다.

GPT냐 MBR이냐
위 설명을 바탕으로 생각해볼 것은 GPT 방식이 언제든 추천방식이어야 한다는 점입니다. 그런데 몇가지 함정이 숨어있습니다.

BIOS 기반 컴퓨터에서 GPT를 다룬다면, 마이크로소프트 윈도우 운영체제와 듀얼 부팅을 할 수 없습니다. 마이크로소프트 윈도우는 GPT 파티션 레이블을 감지하면 EFI 모드로 부팅합니다.

몇가지 버그가 달려있는 BIOS 또는 BIOS/CSM/레거시 모드에서 부팅하도록 설정한 EFI에서도 GPT 레이블을 붙인 디스크에서 부팅할 때 문제가 있습니다. 이런 경우, 에서   옵션을 추가하여 MBR 형식으로 파티션 테이블을 강제로 읽게합니다.

이 경우, 를 실행하고  키로 첫번째 파티션  플래그 상태랄 바꾸십시오. 그 다음 디스크의 바뀐 상태를 기록하고  프로그램을 빠져나오십시오:

UEFI 사용
운영체제를 부팅할 때 (BIOS 대신) UEFI를 사용하는 시스템에 젠투를 설치할 경우, EFI 시스템 파티션을 만드는 과정이 중요합니다. 아래에 설명할 의 절차에는 필요한 포인터가 있습니다.

EFI 시스템 파티션은 FAT32(또는 리눅스 시스템에 나타나는 vfat) 파티션이어야 합니다. 이 장의 마지막 부분 절차에는 파티션에 ext2를 예제 파일 시스템으로 활용합니다. 다음과 같이 vfat을 쓰는지 확인하십시오:

고급 저장장치
AMD64 설치 CD에서는 LVM2를 지원합니다. LVM2에서는 파티션 설정을 통해 유연성을 제공합니다. 설치 과정을 진행하는 동안 일반 파티션을 중점적으로 다루겠지만, 마찬가지로 LVM2를 지원한다는 사실을 알아두시는 것도 유익합니다.

기본 분할 형태
이 핸드북의 나머지 부분에서는 다음 파티션 형태를 활용합니다. 이 쯤에서 충분하다면 독자 여러분은 기본: 디스크 분할시 parted 사용 또는 대안: 디스크 분할시 fdisk 사용 으로 넘어가셔도 됩니다. 둘 다 디스크 공간 분할 도구인데, 는 잘 알려져 있고 안정적이며,  는 최근에 나왔습니다. 두 분할 도구는 젠투 리눅스 설치 과정에서 잘 동작합니다.

만들기 절차를 진행하기 전에 해당 절의 첫번째 부분에서는 파티션 형태를 어떻게 만드는지, 어떤 문제가 있는지 자세한 내용을 다루겠습니다.

BIOS 부트 파티션이란
BIOS 부트 파티션은 매우 작(1~2MB)으며 GRUB2와 같은 부트로더가 할당 저장공간(MBR의 경우 몇 백 메가바이트정도 저장함)에 맞지 않는 추가 데이터를 저장할 수 있으며, 어떤 위치에든 둘 수 있는건 아닙니다.

일부 파티션은 항상 필요하지 않지만 적은 공간을 차지함을 고려해야 하며 과다한 공간 분할의 차이를 문서화하는데 어렵기때문에, 문서화 한 경우에 대해 파티션을 만드는 방법만 추천합니다.

완벽을 기하기 위해, GPT 파티션 배치를 GRUB2에서 활용할 때 또는 GRUB2에서 디스크 처음 부분 1MB 영역 앞 부분에 첫 분할 영역을 시작하는 MBR 파티션 배치를 활용할 때 BIOS 부트 파티션이 필요합니다.

기본: 디스크 분할시 parted 사용
이 절에서는 앞서 언급한 절차에서 설명한 파티션 배치 예제를 사용합니다:

개인 취향에 따라 파티션 배치를 바꾸십시오.

parted에서 현재 파티션 배치 보기
프로그램에는 디스크 공간 분할에 활용할 간단한 인터페이스를 공하며 (2TB 이상) 매우 큰 파티션 크기를 지원합니다. 다시 실행하십시오(여기서는 를 활용). 에게 최적의 파티션 정렬을 요청하는 것이 좋습니다.

정렬이란 내부 디스크 동작을 최소화하는 운영체제 수준(디스크에서 페이지 전달)에서 디스크의 동작을 확인하며, 디스크의 알려진 범위내에서 파티션을 시작함을 의미합니다. 파티션 정렬이 잘못되면 운영체제에서 단일 페이지를 요청했을 경우에도 디스크에서 페이지를 둘 가져와야 할 수도 있습니다.

parted에서 지원하는 옵션을 찾아보려면 를 입력하고 를 누르십시오.

GPT 레이블 설정
대부분 x86/amd64에서는 디스크를 msdos 레이블로 준비합니다. 에서 디스크에 GPT 레이블을 쓰게 하는 명령은 :

MBR 배치 방식의 디스크를 만들려면,  명령을 사용하십시오.

parted에서 모든 파티션 제거
아직 끝난 과정이 아니라면( 동작을 미리 처리했거나, 디스크를 새로 포맷했을 경우), 먼저 모든 파티션을 디스크에서 제거하십시오. 를 입력하여 현재 파티션 상태를 보고, 를 입력하되, NUMBER 자리에는 제거할 파티션 번호를 넣으십시오.

필요없는 다른 모든 파티션에도 똑같은 동작을 진행하십시오. 그러나 여기서 실수하지 않았는지 확인하십시오. parted에서는 상태 바꾸기를 즉시 처리합니다(작업을 스테이지에 올려놓아 디스크의 상태를 저장하고 나가기 전에 실행 취소가능한 와는 다릅니다).

파티션 만들기
이제 파티션을 만들겠습니다. 로 파티션을 만드는 과정은 어렵지 않습니다. 다음 설정에 대해 parted에게 알려주는 절차만 필요합니다:


 * 사용할 파티션 형식. 주 파티션이 보통입니다. msdos 파티션 레이블을 사용한다면, 주 파티션을 네개 이상은 만들 수 없다는 점을 기억하십시오. 네개 이상의 파티션이 필요하다면, 네 파티션 중 하나는 확장 파티션이어야 하고 논리 파티션을 확장 파티션에 넣어야합니다.
 * 파티션의 시작 지점(MB, GB 등으로 표현할 수 있음)
 * 파티션의 끝 지점(MB, GB 등으로 표현할 수 있음)

우선 parted에 우리가 다룰 크기를 메가바이트 단위로 알려주십시오(실제로는 표준 표기법인 MiB로 줄여 쓰는 메비바이트지만, 보다 일반적으로 쓰는 MB로 적겠습니다):

이제 GRUB2 부트 로더에서 나중에 사용할 2MB 파티션을 만드십시오. 명령을 사용하시고 에 1MB 위치에서 3MB 위치까지 사용(2MB 크기의 파티션을 만듬)한다고 알려주십시오.

부트 파티션(128MB), 스왑 파티션(예제에서는 512MB), 나머지 디스크 공간을 모두 차지하는 루트 파티션(디스크의 끝 부분은 파티션이 최대한 다다를 수 있는 -1MB이며 이런 의미에서 마지막 위치를 -1로 적음)에 같은 동작을 진행하십시오.

시스템을 부팅할 때 (BIOS 대신) UEFI 인더페이스를 사용한다면, 부트 파이션을 EFI 시스템 파티션으로 표시하십시오. parted에서는 파티션에 boot 옵션을 설정할 때 EFI 시스템 파티션으로 자동으로 표시해줍니다:

최종 결과는 다음과 같습니다:

parted를 빠져나가려면  명령을 사용하십시오.

대안: 디스크 분할시 fdisk 사용
다음 부분에서는 를 사용하여 예제 파티션 배치를 만드는 방법을 설명합니다. 예제 파티션 배치는 앞서 언급했습니다:

개인 취향에 따라 파티션 배치를 바꾸십시오.

현재 파티션 배치 보기
는 디스크를 파티션으로 나누는 저명하고 강력한 도구입니다. 를 디스크에서 다시 실행해보십시오(예제에서는 를 사용):

를 입력하여 현재 파티션 설정을 표시하십시오:

각각의 디스크에는 하나의 스왑 파티션과("Linux Swap"으로 나타남) 7개의 리눅스 시스템(각각의 파티션이 "Linux"라고 나타남)을 넣도록 설정했습니다.

fdisk에서 모든 파티션 제거
디스크에서 모든 파티션을 제거하십시오. 를 입력하여 파티션을 삭제하십시오. 기존의 파티션을 삭제하려면:

파티션을 삭제할 예정입니다. 파티션 목록에는 더이상 나타나지 않겠지만 바뀐 내용을 저장하기 전에는 지워지지 않습니다. 사용자가 실수했을 경우 진행을 멈출 수 있습니다. 이 경우 를 바로 입력하고 를 치면 파티션을 삭제하지않습니다.

를 입력하여 파티션 목록을 출력하고 와 삭제할 파티션 번호를 입력하는 과정을 반복하십시오. 최종적으로, 파티션 테이블을 비웠습니다:

이제 메모리에 있는 파티션 테이블을 비웠고, 파티션을 만들 준비를 끝냈습니다.

BIOS 부트 파티션 만들기
먼저 매우 작은 BIOS 부트 파티션을 만들겠습니다. 새 파티션을 만드는 명령 을 입력하시고, 주 파티션을 선택할 를 입력한 후, 첫번째 주 파티션을 선택할 을 입력하십시오. 첫번째 섹터를 물어보면 2048부터 시작하는지(부트로더에 필요함)확인한 후 를 치십시오. 마지막 섹터를 물어보면 +2M을 입력하여 2MB 크기의 파티션을 만드십시오:

EFI 용도로 파티션을 표시하십시오:

부트 파티션 만들기
이제 작은 부트 파티션을 만들겠습니다. 새 파티션을 만드는 명령 을 입력하시고, 주 파티션을 선택할 를 입력한 후, 두번째 주 파티션을 선택할 를 입력하십시오. 첫번째 섹터를 물어보면 그냥 를 치십시오. 마지막 섹터를 물어보면 +128M을 입력하여 128MB 크기의 파티션을 만드십시오:

이제 를 누르면 다음 파티션 출력이 나타납니다:

파티션의 부팅 플래그를 바꾸는 명령 를 입력하고 를 선택하십시오. 를 다시 누르면 "Boot" 열에 없던 * 표시가 나타납니다.

스왑 파티션 만들기
마지막으로, 루트 파티션을 만들려면, 새 파티션을 만드는 명령 을 입력하시고, 주 파티션을 만들겠다고 에게 알리기 위해 를 입력한 후, 세번째 주 파티션 를 만들기 위해 을 입력하십시오. 첫번째 섹터를 물어보면 를 치십시오. 마지막 섹터를 물어보면 +512M(또는 필요한 스왑 공간만큼)을 입력하여 512MB 크기의 파티션을 만드십시오.

이 과정이 끝난 후 파티션 형식을 설정하는 명령 를 입력하고, 을 입력하여 방금 만든 파티션을 입력한 후, 82를 입력하여 "Linux Swap" 형식으로 바꾸십시오.

루트 파티션 만들기
마지막으로, 루트 파티션을 만들려면, 새 파티션을 만드는 명령 을 입력하시고, 주 파티션을 만들겠다고 에게 알리기 위해 를 입력한 후, 네번째 주 파티션 를 만들기 위해 를 입력하십시오. 첫번째 섹터를 물어보면 를 치십시오. 마지막 섹터를 물어보면 를 쳐서 디스크의 나머지 공간을 취하는 파티션을 만드십시오. 이 과정이 끝나면 를 입력하였을 때 다음과 같은 파티션 테이블 모습이 나타나야합니다:

파티션 배치 저장하기
파티션 배치를 저장하고 를 빠져나가려면 를 입력하십시오.

파티션을 만들었다면 이제 파일 시스템을 올려놓을 차례입니다.