본문 바로가기

Server Story..../Windows Server

Usb 파티션 조작 안될때. 사용툴 diskpart

Windows OS에서 디스크 파티션을 조작할려면 [컴퓨터 관리]에 있는 [저장소] - [디스크 관리]를 사용하는 것이 일반적일 것이다. 하지만 diskpart.exe라는 명령어를 이용해서도 똑같은 작업을 할수 있다.

조작 방법
diskpart 명령어는 명령 프롬프트에서 이용하는 명령어이다. 관리자 권한이 있는 사용자로 명령 프롬프트를 열어서 [diskpart]라고 입력하면 실행할 수 있다. 일단 실행하면 디스크나 파티션, 볼륨등을 조작하는 명령어를 입력해서 이용한다. 실행하는 명령어가 미리 정해져 있다면 일련의 명령어를 텍스트 파일에 스크립트로 써두어 [diskpart /s <스크립트 파일명>]로 실행할 수 있다.


diskpart 명령어는 Windows 2000 이후의 Windows OS에서 이용할 수 있지만 OS에 따라서 버젼이 다르다. 현재로서는 Windows 2000용은 Ver.1.0.xxxx, Windows XP에서는 Ver.5.1.xxxx, Windows Server 2003에서는 Ver.5.2.xxxx, Windows Vista/Windows Server 2008에서는 Ver.6.0.xxxx이라고 되어 있다. (버젼이 올라가면서 지원되는 명령어수가 증가 하였다). 다만 Ver.6.x이외에는 도움말이 거의 준비되어 있지 않기 때문에 (명령어 리스트만 표시될뿐임) 상세한 명령어의 설명은 아래 페이지등을 참조하기 바란다

Windows Server 2003 diskpart.exe 명령어 해설(마이크로소프트 TechNet 사이트)

Ver.6.x의 diskpart 명령어는 명령 프롬프트상에 [? select] 나 [? select disk] [help assign] 과 같이 하면 명령어 사용법이 표시된다.

스크/파티션/볼륨의 선택과 확인
diskpart 명령어를 실행하면 보통은 우선 시스템에 접속되고 있는 디스크나 파티션, 볼륨의 리스트을 표시하고 싶을 것이다. 이를 위해서는 [list disk] [list partition] [list volume] 명령어를 사용한다. 다만 diskpart 명령어에서는 조작 대상이 되는 디스크나 파티션, 볼륨등을 대부분 미리 선택해 두어야 한다. 이를 위해서는는 [select disk] [select partition] [select volume] 명령어 순으로 사용한다. 선택된 현재 항목은 앞부분에 [*] 마크가 붙어서 표시된다.

DISKPART> list disk                                                                                                   ← 시스템 디스크의 리스트를 표시

  Disk ###  Status           Size     Free     Dyn  Gpt                                                          ← 3대의 디스크가 있다
  --------  ---------------  -------  -------  ---  ---
  Disk 0    온라인        127 GB      0 B                                                                            ← 시스템 디스크
  Disk 1    온라인        120 GB   120 GB                                                                          ← 미사용 디스크
  Disk 2    온라인        250 GB   250 GB                                                                          ← 미사용 디스크

DISKPART> list partition                                                                                              ← 파티션을 표시한다

파티션을 나열하도록 선택한 디스크가 없습니다.
디스크를 선택하고 다시 시도해 보십시오.                                                                       ← 디스크 미선택으로 에러 발생

DISKPART> select disk 0                                                                                           ← 디스크 0을 선택한다 (디스크 번호는 list disk로 확인한다)

디스크 0 이 선택되었습니다.                                                                                        ← 디스크 0이 선택되었다

DISKPART> list partition                                                                                             ← 한번 더 실행해 본다

  Partition ###  Type                Size     Offset                                                               ← 파티션이 1개 포함되어 있다
  -------------  ------------------  -------  -------
  Partition 1    주                    127 GB  1024 KB                                                             ← 파티션 1. 프라이머리 디스크이다

DISKPART> list volume                                                                                             ← 볼륨을 표시해 본다

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info                                 ← 2개의 볼륨이 있다
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음                                     ← DVD 드라이브
  Volume 1    C                NTFS  Partition    127 GB  정상       시스템                              ← 시스템 볼륨

DISKPART>


[list disk] 와 [list volume] 은 [select ~] 하지 않아도 이용할 수 있지만 [list partition]은 대상이 되는 디스크가 선택된 상태에서만 이용 가능하다.

볼륨 작성
시스템에 새로운 디스크를 추가하면 list disk 명령어로 그 디스크의 정보를 얻을 수 있다. 위의 예에서는 [Disk 1(120Gbytes]과 [Disk 2(250Gbytes)]라는 2대의 빈 디스크를 확인할 수 있다. 이번에는 디스크 1에 60Gbytes의 파티션을 작성해 G: 드라이브에 할당해 보자.
우선 디스크 1을 선택한 후에 [create partition ~]로 새로운 파티션을 작성한다. 파티션에는 몇개의 타입이 있지만, 여기에서는 제일 간단하고 잘 사용되는 프라이머리 파티션을 작성한다. (프라이머리 파티션은 1개의 디스크상에 최대 4개까지 작성할 수 있다)

DISKPART> list disk                                                                                                ← 디스크 확인

  Disk ###  Status           Size     Free     Dyn  Gpt
  --------  ---------------  -------  -------  ---  ---
* Disk 0    온라인        127 GB      0 B
  Disk 1    온라인        120 GB   120 GB                                                                      ← 여기에 60Gbytes의 G:드라이브를 작성하기로 한다
  Disk 2    온라인        250 GB   250 GB

DISKPART> select disk 1                                                                                        ← 디스크 1을 선택

디스크 1이 선택되었습니다.

DISKPART> list partition                                                                                         ← 파티션을 표시해 본다

이 디스크에는 표시할 파티션이 없습니다.                                                                   ← 파티션 미정의

DISKPART> create partition primary size=60000                                                         ← 60Gbytes의 프라이머리 파티션을 작성

DiskPart 는 지정한 파티션의 작성에 성공했습니다.                                                       ← 성공
                                                                                                                            ※[size=~]를 생략 하면 빈 전체영역이 파티션에 할당됨
DISKPART> list partition                                                                                         ← 파티션을 표시해 본다

  Partition ###  Type                Size     Offset
  -------------  ------------------  -------  -------
* Partition 1    주                     59 GB  1024 KB                                                         ← 작성한 프라이머리 파티션

DISKPART> list volume                                                                                          ← 볼륨 확인

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음
  Volume 1    C                NTFS  Partition    127 GB  정상       시스템
* Volume 2                     RAW   Partition     59 GB  정상                                            ← 작성한 파티션. 포맷이 안된 상태(파일 시스템이 RAW라고 되어 있다)

DISKPART>


여기에서는 60Gbytes의 파티션을 작성했지만 [size=~] 파라미터를 생략하면 그 디스크상에 있는 빈영역 전체가 1개의 파티션으로서 작성된다.
파티션 작성이 완료되면 다음은 포맷을 하지 않으면 안 된다. GUI 디스크 관리 도구라면 파티션 작성과 동시에 NTFS나 FAT등으로의 포맷과 드라이브 문자 할당 등이 실행되지만, diskpart 명령어에서는 그렇게 되지 않는다.
파티션 포맷을 실행할하려면 [format ~] 명령어를 이용해야 하지만, 실은 이 명령어는 Ver.6.x 이후 밖에 이용할 수 없다. 즉 Windows Vista/Windows Server 2008 이후의 diskpart에서만 이용할 수 있다. 그 이전의 OS의 경우는, 여기서 일단 GUI 디스크 관리 도구로 돌아가서 작업하게 될 것이다.
format 명령어에서는 작성하는 파일 시스템의 타입을 [fs=ntfs] 라는 파라미터로 지정하지만, 이것을 생략 하면 filesystems 명령어로 표시되는 디폴트의 타입이 사용된다.


DISKPART> filesystems                                                                                        ← 디폴트로 작성되는 파일 시스템 확인

현재 파일 시스템

  종류                 : RAW                                                                                        ← 현재 포맷 안됨
  할당 유닛 크기     : 512

포맷에서 지원되고 있는 파일 시스템

  종류                 : NTFS (기준)                                                                             ← 디폴트는 NTFS
  할당 유닛 크기     : 512, 1024, 2048, 4096 (기준), 8192, 16K, 32K, 64K

DISKPART> format fs=ntfs label="Data Vol 1" quick                                                   ← 퀵 포맷 한다
                                                                                                                         ※label=은 볼륨 라벨명 지정, quick은 읽기 검사 스킵
  100% 완료했습니다

DiskPart는 포맷을 완료했습니다.                                                                             ← 완료

DISKPART> list vol                                                                                               ← 볼륨 확인

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음
  Volume 1    C                NTFS  Partition    127 GB  정상       시스템
* Volume 2        Data Vol 1   NTFS  Partition     59 GB  정상                                       ← 새로운 볼륨

DISKPART>


다음으로 작성한 새로운 볼륨에 드라이브 문자 G: 를 할당한다. 이를 위해서는 assign 명령어를 사용한다.

DISKPART> assign letter=g                                                                                    ← G:\ 드라이브를 할당

DiskPart는 드라이브 문자 또는 마운트 포인트를 정상적으로 할당했습니다.

DISKPART> list volume                                                                                         ← 볼륨 확인

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음
  Volume 1    C                NTFS  Partition    127 GB  정상       시스템
* Volume 2    G   Data Vol 1   NTFS  Partition     59 GB  정상                                     ← G: 드라이브가 되었다

DISKPART>


assign 명령어를 사용해서 기존의 드라이브 문자를 다른 문자로 변경할 수도 있다.

파티션/볼륨의 삭제

파티션이나 볼륨을 삭제하려면 대상이 되는 파티션이나 볼륨을 선택한 상태에서 [delete ~]를 실행한다.

DISKPART> list volume                                                                                        ← 볼륨 확인

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음
  Volume 1    C                NTFS  Partition       127 GB  정상       시스템
  Volume 2    G   Data Vol 1   NTFS  Partition     59 GB  정상
* Volume 3    H   Data Vol 2   NTFS  Partition     61 GB  정상                                     ← 선택된 현재 볼륨 (앞부분에 [*]가 붙어 있다)

DISKPART> delete volume                                                                                    ← 볼륨 삭제

DiskPart는 볼륨을 정상적으로 삭제했습니다.

DISKPART> list volume                                                                                       ← 볼륨이 삭제되었다

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0    D                      DVD-ROM         0 B  미디어 없음
  Volume 1    C                NTFS  Partition    127 GB  정상       시스템
  Volume 2    G   Data Vol 1   NTFS  Partition     59 GB  정상                                  ※볼륨은 삭제되었지만 파티션은 아직 남아 있으므로 필요하면 파티션도                                                                                                                                  선택후 삭제한다.