500G 하드디스크를 8개 RAID5로 묶어 3.5T의 용량을 확보하였다.
3.5T를 2T, 1.5T로 나눠 다른 용도로 사용하고 싶다. 파티션을 나누기 위해서 일반적인 명령어(fdisk)를 사용해 보았다.

 fdisk -l
  위 명령어를 내려보니. 3.5T 짜리 /dev/sdb 장치가 보였다.


그리고 파티션을 나누기 위해 다음 명령어를 실행 시켰다.
 fdisk /dev/sdb

이렇게 실행시켜 파티션을 나눌려고 하니.. 최대 1.1T 밖에 공간 할당이 되지 않았다.

  확인 결과, 우리가 사용하는 파티션 테이블은 msdos 타입이며, 2T가 최대 라고 한다. 그래서 다른 방법을 찾던 와중 parted를 알게 되었다. 본 강좌는 parted 의 사용법을 알아보고 위 문제를 해결하는 방법으로 써 내려 가겠다.



1. parted는?
  parted에 관한 정보를 알기 위해서 man 페이지를 보았다. 아래와 같이 나와 있었다.

 GNU Parted 는 파티션 관리 프로그램이다.
 parted 는 파티션  관리 , 크기 변경 프로그램이다. parted는 파티션 생성, 삭제, 용량변경, 이동, 복사 를 지원한다. ext3, ext2, linx-swap, FAT, FAT32 파티션 복사 또는 이동을 지원한다. 이는 새로운 디스크에 데이터를 복사하기에 아주 편리하다.



2. 설치
  대부분의 리눅스 배포판에 parted명령어가 존재 한다. 그렇기에 따로 설치하는 법은 언급하지 않겠다.



3. 알아둘 점
  * 리눅스의 부트로더인 lilo와 grub는 우리가 흔히 사용하는 msdos 디스크 라벨만을 인식한다. 만약 디스크 라벨이 GPT(2TB를 넘기위해 사용하는 라벨)이면, 부팅을 하지 못한다. (시스템 디스크는 gpt를 사용하지 말것)
  * 2TB를 넘는 파티션의 경우는 gpt 라벨을 사용해야 한다.
  * kernel에 2TB이상의 파티션을 사용할 수 있게 설정되어 있어야한다.(대부분 되어있다.)
  * parted는 설정과 동시에 디스크에 기록된다. fdisk에서 w를 눌렀을 때 저장되는 것과 다르다.
  * parted는 블럭 단위가 아닌, MB단위로 입력한다.



4. 명령어 사용법
    parted [옵션] 장치 [명령어 [옵션]]
위와같은 형식으로 실행한다.

  다음과 같은 명령어 들이 있다.

check 파티션번호 : 단순하게 파티션을 점검한다.

cp [소스장치] 소스파티션 대상파티션 : 소스장치의 소스파티션의 데이터를  대상파티션에 복사한다.

help [명령어] : 명령어들의 도움말을 얻을 수 있다.

mkfs 파티션번호 파티션타입 : 파티션에 파일 시스템을 만든다
         파티션타입 : ext2, fat 지원

mklabel 레벨타입 : 디스크 라벨을 설정한다.
         레벨타입 : bsd, gpt, loop, mac, mips, msdos, pc98, sun 지원
        (일반적으로  msdos이며, 2TB이상 사용하기 위해서 gpt를 사용한다.)
   
mkpart 파티션타입  [파일시스템 타입] 시작 끝  : 파티션을 나눈다.
        파티션타입 : primary, logical, extedned
        파일시스템 타입 : ext2, fat등을 넣는데 안 넣어도 상관없다.
        시작 : 시작 MB
        끝 : 끝 MB

mkpartfs 파티션타입  [파일시스템 타입] 시작 끝  : 파티션을 나누고 파일시스템 생성
        파티션타입 : primary, logical, extedned
        파일시스템 타입 : ext2, fat, fat32 지원
        시작 : 시작 MB
        끝 : 끝 MB

move 파티션번호 시작  끝 : 파티션의 시작과 끝을 이동시킨다. 파티션 번호는 변경되지 않는다.
        ( ext2, fat, fat32지원, 확장 및 이전시 데이터는 살아 있다.)

       * 다음 예제를 보자
         (parted) mkpartfs primary ext2 101 200
위 명령어를 통하여 101M~200M 사이의 공간의 100M 파티션을 만든다. 파일 시스템은 ext2로 한다.

        (parted) print
print명령으로 파티션 공간을 확인한다.
Minor    Start       End     Filesystem  Name                  Flags
1          0.017    100.000  ext2                             
2        101.000    200.000  ext2

위와같이 파티션 2번에 101M~200M : 100M용량이 2에 할당되었다.

           (parted)  move 2 201 300

Minor    Start       End     Filesystem  Name                  Flags
1          0.017    100.000  ext2                             
2        201.000    300.000  ext2
위와같이 파티션 2번이 : 201M~300M 사이 공간의 100M로 이동된 것을 확인 할 수 있다.

           (parted)  move 2 301 500

Minor    Start       End     Filesystem  Name                  Flags
1          0.017    100.000  ext2                             
2        301.000    500.000  ext2
위와같인 공간을 200M로 늘릴 수 있다. 하지만! 줄일 수는 없다.!! 줄일려면, resize명령어를 이용하라.



name 파티션번호  이름 : 파티션에 이름을 설정한다.
        ( 이 옵션은 Mac, PC98에서만 사용된다.)

print : 파티션번호  테이블을 보여준다. (p만 눌러도 된다.)

quit   : parted 모드에서 빠져 나온다.

resize 파티션번호 시작 끝 : 파티션 용량을 늘리고, 줄인다.
            (ext2, fat, fat32에서만 가능)

rm 파티션번호 : 파티션 삭제

select 장치명 : 장치명 선택 (장치 변경시 사용)

set 파티션번호  플레그  상태 : 파티션의 플레그의 상태를 변경한다.
        플레그 : boot, root, swap, hidden, raid, lvm, lba, palo
        상태 : on 또는 off



5. 3.5T 파티션 나누기
  처음 시도했더, 3.5T 장치 (/dev/sdb)를 2T, 1.5T로 나눠 보겠다.

parted /dev/sdb
(parted) print
 파티션을 확인한다.
(parted) mklabel gpt
장치에 라벨링을 한다. gpt로 해야 2T이상 사용할 수 있다.
(parted) mkpart primary 0 2000000
2T 파티션을 생성한다.
(parted) mkpart primary 2000000 3500000
1.5T 파티션을 생성한다.
(parted) print
확인한다.
(parted) quit
끝낸다.

위와같이 파티션을 생성하면 된다.
물론 위 수치들은 MB 단위 임으로 적당히 조절하면서 ^^

* gpt 라벨을 기본값인 msdos로 바꾸기 : mklabel msdos


6. 마치며
 처음에는 대용량 디스크의 파티션을 나누기 위해서 parted를 연구했다. 연구 결과 여러가지 기능들이 있다는 것을 알게 되었다. 특히 파티션을 옮기거나, 조정하는 것은 아주 좋은 기능 같다.
 아쉬운 것은 리눅스에서는 ext2, fat만 지원하는 것이 아쉽다.
parted를 GUI로 만들어두 gparted등이 있으니 쉽게 파티션을 다룰 수 있을 것이다.  이것으로 강좌를 마무리 하겠다.
오타 및 잘못된 부분, 기타 개선점이 있으신 분은 메일 한통 주시기 바랍니다.

참고자료 : gpart man 페이지
                http://www.gnu.org/software/parted

리눅스용 파티션매직 – parted

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다