2011. 8. 8. 07:13

♧ 전통적으로 PC 하드디스크는 마스터 부트 레코드(MBR)가 포함된 32bit PC-BIOS

파티션 테이블을 사용해왔다. 이러한 조건 때문에 파티션 하나의 크기는 최대 2TB

가 한계이며, 각 드라이브당 네 개의 주(primary) 파티션만을 가질 수 있었다.

확장 파티션은 이러한 주 파티션의 개수의 제한을 극복하기 위한 방법이다.

최근에는 2TB파티션 용량 제한을 해결하기 위해 PC-BIOS 파티션 테이블을

GTP(GUID 파티션테이블)로 대체 하고 있다.

 

기존 디스크 파티션 작업을 위한 표준 명령어로는 fdisk가 있다. 그러나 fdisk는

현재 새로운 GTP 파티션을 지원하지 못하기 때문에 사용빈도가 줄어들 것이다.

대신 적극적으로 지원받고 있는 새로운 명령어인 parted가 부각되고 있다.

 

⌒그래픽 파티셔닝 툴 : gparted, qtparted

 

 

■ fdisk를 사용하여 디스크 파티션 변경

fdisk 명령어는 디스크 파티션을 나열하고 변경하는데 유용한 툴.

 

▶ 파티션 정보 출력

$ sudo fdisk -l

 

Disk /dev/sda: 19.3 GB, 19327352832 bytes

255 heads, 63 sectors/track, 2349 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0003ed61

 

Device Boot Start End Blocks Id System

/dev/sda1 * 1 2220 17824768 83 Linux

/dev/sda2 2220 2350 1046529 5 Extended

/dev/sda5 2220 2350 1046528 82 Linux swap / Solaris

☞ 리눅스 커널 2.6.20 버전부터 IDESCSI 디스크 모드 /dev/sd? 디바이스명 사용.(여기서 ? 표시는 a,b,c 등)

우분투의 오래된 버전은 SCSI 디스크와 USB디스크만 /dev/sd?를 사용하며,

IDE 하드드라이브는 /dev/hd?를 사용했다.

☞ 특정 디스크에 대한 파티션 목록 출력 : $ sudo fdisk -l /dev/sdb

 

▶ 간략한 fdisk 명령어 사용 예:

$ sudo fdisk /dev/sdb

Command (m for help): m

도움말 출력

Command (m for help): d

Partition number (1-4): 1

파티션 삭제 요청

삭제할 파티션 번호 입력

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-130, default 1): 1

Last cylinder … +size{K,M,G} (1-130, default 130): 130

새로운 파티션 생성

 

확장 파티션

주 파티션

주 파티션 선택

주 파티션 번호 1번 선택

시작 위치 선택(또는 그냥 엔터)

끝 위치 선택 (또는 그냥 엔터)

Command (m for help): a

Partition number (1-4): 1

부팅 가능한 파티션 선택

부팅 가능한 파티션 번호 입력

Command (m for help): t

Hex code (type L to list codes): L

Hex code (type L to list codes): 82

파일시스템 유형 선택

선택할 코드 리스트 출력

스왑 파티션으로 지정

Command (m for help): w

변경 내용 파티션 테이블에 쓰고 종료

 

 

■ sfdisk를 사용하여 파티션 테이블 복사

♧ 디스크 파티션 테이블을 백업하거나 복사하는 경우 sfdisk 사용

 

$ sudo sfdisk -d /dev/sda > sda-table

파티션 테이블을 파일로 복사

$ sudo sfdisk /dev/sda < sda-table

파일로부터 파티션 테이블을 복구

$ sudo sfdisk -d /dev/sda | sfdisk /dev/sdb

디스크에서 다른 디스크로 파티션 테이블 복사

 

 

■ parted를 사용하여 디스크 파티션 변경

fdisk와 같이 parted 역시 디스크 파티션 정보를 확인하거나 변경하는 툴

 

▶ 디스크 파티션 목록 출력

$ sudo parted /dev/sda print

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sda: 19.3GB

Sector size (logical/physical): 512B/512B

Partition Table: msdos

 

Number Start End Size Type File system Flags

1 1049kB 18.3GB 18.3GB primary ext4 boot

2 18.3GB 19.3GB 1072MB extended

5 18.3GB 19.3GB 1072MB logical linux-swap(v1)

 

▶ 대화식 모드

$ sudo parted

GNU Parted 2.3

Using /dev/sda

Welcome to GNU Parted! Type 'help' to view a list of commands.

☞ 특정 디스크 파티션 작업 : $ sudo parted /dev/sdb

 

※ fdisk와는 다르게, parted는 별도의 쓰기 과정 없이 파티션에 변경 작업을 즉시 적용.

따라서 단순히 parted를 종료하는 것으로는 어떠한 변경도 되돌릴 수 없기 때문에 신중하게 작업해야 함.

 

▶ 간략한 parted 명령어 사용 예:

$ sudo parted /dev/sdb

(parted) help mklabel

특정 도움말 자세히 출력

(parted) mklabel msdos

새로운 디스크 레이블 만듬(리눅스: msdos)

(parted) rm

Partition number? 1

파티션 삭제 요청

삭제할 파티션 번호 입력

(parted) mkpart

Partition type? primary/extended? primary

File system type? [ext2]? ext3

Start? 1

End? -1

새로운 파티션 생성

파티션 타입

파일 시스템 타입

시작 위치

끝 위치 (-1: 끝까지 의미)

(parted) print

파티션 테이블 출력

(parted) quit

종료

☞ 명령어와 함께 입력 (예: rm 1, mkpart primary ext3 0 -1)

partedmkpartfs 명령은 ext3 파티션을 제대로 생성하지 못하므로 가급적 사용을 피한다

☞ 일반적으로 partedext3, ext4 파일시스템 지원이 미비 하므로 mkfs.ext? 명령 이용하여 파티션 포맷.

Posted by devanix