윈 도 우 diskpart를 갖고 놀아봐요~
2012.05.06 21:14
1. diskpart가 무엇이냐?
diskpart란, 윈도우의 '디스크 관리(diskmgmt.msc)'의 명령행 방식(CUI라고 합니다.) 프로그램입니다.
그럼, 좋은 GUI프로그램이 많은데 뭐하러 이런 CUI프로그램을 쓰냐?
물론 그럴 일은 별로 없지만 가끔 그럴 일이 생기게 됩니다.
바로 GUI환경이 사용 불가능할때(윈도우 7 설치 DVD의 PE와 같은)입니다.
그리고 배치 파일을 짤 때도 필요합니다.
저도 한번 컴터가 심각한 상황에 처했을때 써먹어 본 적이 있습니다. 그리고 요즘 배치파일을 공부하고 있는데 거기서도 쓰고 있습니다.
자....이제 잡담은 그만하고 본론으로 들어가겠습니다.
2. diskpart 사용법
먼저 diskpart를 사용하려면, CUI프로그램이니까 당연히 명령 프롬프트(cmd.exe)를 실행해야겠죠?
단 diskpart는 관리자 권한을 필요로 하므로, 관리자 권한으로 실행해야 합니다.
[관리자 권한으로 실행하는 법/]
Win(윈도우키)+R을 눌러서 '실행'창을 띄운 뒤 텍스트박스에 'cmd'를 입력한뒤 '확인'을 누릅니다.
[/관리자 권한으로 실행하는 법]
관리자 권한의 명령 프롬프트(이하 'cmd'라 합니다.)가 띄워졌으면 거기에 'diskpart'를 입력하고 엔터키를 눌러서 diskpart모드로 들어갑니다.
우리가 GUI에서 파티션 조정같은 작업을 할때 적절한 프로그램을 열듯이, CUI에서도 diskpart모드로 들어가는 겁니다.
자....diskpart 모드로 들어가면, c:\~~~>프롬프트 대신 DISKPART>프롬프트가 뜹니다.(뜨기까지는 10초 정도가 걸립니다)
이제 diskpart 모드로 들어가는 방법을 알았으면, 나오는 방법도 알아야겠죠?
나가는 방법은 들어오는 방법보다 명령어가 짧습니다. 'exit'을 치고 엔터를 누르면 다시 c:\~~~>프롬프트로 돌아옵니다.
이제 다시 diskpart모드로 들어와 주세요.
그리고 'help'를 입력하고 엔터를 누릅니다(이하 '엔터를 누릅니다.'라는 말은 빼겠습니다. 그냥 입력하라고 하면 입력후 엔터를 누르세요).
그러면 어쩌고저쩌고~ 사용 가능한 명령 목록들이 나옵니다.
여기에서 active, attach, create, detach, format, list, inactive, select, assign가, 일반적으로 가장 많이 사용하는 명령어인데(저만 그런가요?ㅠㅠ) 잘 기억해 두시기 바랍니다.
여기서 명령어들에 대한 설명을 간단하게 하겠습니다.
active : 디스크를 '활성'으로 표시합니다. 즉 부팅 가능하게 합니다.
attach : 가상 디스크 파일을 연결합니다(VHD에 관한 제 글을 참조하세요.).
create : 파티션, 볼륨, 가상 디스크(이하 'VHD')를 만듭니다.
detach : VHD를 연결 해제합니다.
format : 선택한 파티션을 해제합니다.
list : 존재하는 디스크, 파티션, 볼륨의 리스트를 출력합니다.
inactive : 디스크를 '비활성'으로 표시합니다. 즉 부팅 불가능하게 합니다.
select : 디스크, 볼륨 또는 파티션에 포커스를 위치합니다.
assign : 디스크 문자를 할당합니다.
위의 9개 명령어만 알아도 기본적인 기능은 다 쓸 수 있습니다.
먼저 다른 명령을 쓰려면 가장 기본이 되는, select명령부터 알아보겠습니다.
2.1 select
select명령은 말그대로 선택, 즉 포커스를 위치시키는 프로그램으로, 그러니까 예를 들어 C:를 포맷하고 싶다면(헉 이게 무슨짓이여;;;어차피 되지도 않겠지만ㅋㅋ) select 명령으로 C:에 포커스를 위치시킨 뒤 format명령을 내려주면 됩니다.
명령 형식 : select [disk | partition | volume | vdisk] [디스크번호 | 파티션 번호 | 볼륨 | file="VHD파일위치"]
즉, 첫번째 하드디스크에 포커스를 위치시키고 싶다면
select disk 0 (하드디스크 번호는 0번부터 시작합니다.)
이라고 하면 되는 것이고, 두번째 하드디스크의 첫번째 파티션에 포커스를 위치시키고 싶다면
select disk 1 (먼저 파티션이 위치하는 디스크를 선택해 주어야 합니다.)
select partition 1 (파티션 번호는 1번부터 시작합니다.)
와 같이 하는 겁니다.
기본적인 select사용방법은 여기서 알아보았으니, 앞으로의 예에서 더 잘 알아보시기 바랍니다.
추가 : select명령은 sel이라고 줄여도 됩니다. (sel dis 1과 같이)
2.2 list
list는 현재 시스템에 있는 디스크/파티션/볼륨(보통 '드라이브'라고 하는 것이 볼륨이라고 생각하시면 될 것 같습니다.)/VHD의 목록을 표시합니다.
명령 형식 : list [disk | partition | volume | vdisk]
즉 list disk 라고 명령을 내리면 다음과 같이 현재 시스템에 설치된 디스크의 목록을 보여줍니다.
디스크 ### 상태 크기 사용 가능 Dyn Gpt
------------- ------------- ------- ------------ ----- ----
디스크 0 온라인 465 GB 1024 KB
디스크 1 온라인 232 GB 98 GB
디스크 2 온라인 465 GB 1024 KB
그리고 list partition을 하면 파티션의 목록을 보여주는데, 그냥 list partition만 하면 다음과 같이 출력되며 절대 안됩니다.
파티션을 나열하도록 선택한 디스크가 없습니다.
디스크를 선택하고 다시 시도해 보십시오.
그러니까, 어떤 디스크에 있는 파티션을 표시하려면 해당 디스크를 select disk명령으로 선택해줘야 한다는 뜻이죠.
그래서 list partition을 하기전에, select disk 1과 같이 디스크를 선택해 주어야 합니다.
추가 : list명령은 lis라고 줄여도 됩니다.
2.3 active
'디스크 관리'에 들어가 보면, 대부분은 여러분이 윈도우를 설치한 파티션에 '활성'으로 표시되어 있을 것입니다. 당연히 윈도우를 부팅하려면 부팅이 가능하게 설정이 되어 있어야겠죠.
파티션을 '활성'으로 표시하려면 먼저 활성으로 표시할 파티션에 포커스를 위치해 줘야겠죠?(즉 선택해 준다는 말입니다.) 그리고 나서 active명령을 실행해줘야 할 것입니다.
추가 : 잠깐 혹시 모르시는 분 있으실까 해서 설명드리는데요, '파티션'이란 1개의 물리적인 디스크를 여러개의 논리적인 디스크로 나누는 것 또는 나누어진 그것을 말합니다.
예) 우리가 C: 드라이브를 활성으로 표시하려면(이건 제 컴퓨터에서 입력한 것이므로 실제와는 약간 다를 수 있습니다.) :
[명령/]
DISKPART>list disk(lis dis 라고 줄여서 쳐도 됩니다.)
디스크 ### 상태 크기 사용 가능 Dyn Gpt
------------- ------------- ------- ------------ ----- ----
디스크 0 온라인 465 GB 1024 KB
디스크 1 온라인 232 GB 98 GB
디스크 2 온라인 465 GB 1024 KB
DISKPART>select disk 0 (C:가 위치하는 디스크입니다. sel dis=0이라고 해도 됩니다.)
0 디스크가 선택한 디스크입니다.
DISKPART>list partition (선택한 디스크에 존재하는 파티션의 리스트를 출력합니다. lis par이라고해도 됩니다.)
파티션 ### 종류 크기 오프셋
---------- ---------------- ------- -------
파티션 1 주 50 GB 1024 KB
파티션 2 주 415 GB 50 GB
DISKPART>sel par 1 (파티션 1을 선택합니다.)
1 파티션이 선택한 파티션입니다.
DISKPART>active (활성으로 표시합니다.)
diskpart에서 현재 파티션을 활성으로 표시했습니다.
[/명령]
이러면 현재 활성으로 표시한 파티션으로 부팅이 가능하게 됩니다.
추가 : active는 act라고 줄여도 됩니다.
추가2 : '활성'표시 제거는 위와 거의 같고, active를 inactive로만 바꾸어서 입력하면 됩니다.
2.4 assign
선택한 파티션에 드라이브 문자를 할당합니다.
명령 형식 : assign letter=[드라이브 문자]
예) 첫번째 하드디스크의 두번째 파티션에 드라이브 문자를 할당해 보겠습니다.
[명령/]
DISKPART>lis dis
디스크 ### 상태 크기 사용 가능 Dyn Gpt
------------- ------------- ------- ------------ ----- ----
디스크 0 온라인 465 GB 1024 KB
디스크 1 온라인 232 GB 98 GB
디스크 2 온라인 465 GB 1024 KB
DISKPART>sel dis 0
0 디스크가 선택한 디스크입니다.
DISKPART>lis par
파티션 ### 종류 크기 오프셋
---------- ---------------- ------- -------
파티션 1 주 50 GB 1024 KB
파티션 2 주 415 GB 50 GB
DISKPART>sel par 2
2 파티션이 선택한 파티션입니다.
DISKPART>assign letter=v
DiskPart에서 드라이브 문자 또는 탑재 지점을 할당했습니다.
[/명령]
2.5 attach
attach 명령은 VHD파일을 지정한 드라이브 문자로 마운트하는 명령입니다. 물론 앞으로 지겹도록 사용할 select명령으로 마운트할 VHD에 포커스를 위치해 줘야겠죠?
명령 형식 : attach vdisk
명령 형식은 매우 간단하죠? 그냥 VHD파일만 선택하고 attach vdisk명령만 입력하면 되니까요~^^아 그리고 assign letter도 해줘야겠죠?
예) D:\Windows 7 VHD.vhd 라는 VHD파일을 마운트해보겠습니다.
[명령/]
DISKPART>sel vdi file="D:\Windows 7 VHD.vhd"
DiskPart가 가상 디스크 파일을 선택했습니다.
DISKPART>attach vdisk
100 퍼센트 완료
DiskPart가 가상 디스크 파일을 연결했습니다.
DISKPART>assign letter=v
DiskPart에서 드라이브 문자 또는 탑재 지점을 할당했습니다.
[명령/]
탐색기를 열어 보시면 V:로 마운트된 VHD파일을 보실 수 있을 겁니다.
2.6 detach
연결된 VHD파일을 분리합니다.
명령 형식 : detach vdisk
attach보다 사용방법이 더 쉬우니 예만 보여 드리겠습니다.
예) 아까 V:로 마운트한 VHD파일을 분리해 보겠습니다.
[명령/]
DISKPART>sel vdi file="D:\Windows 7 VHD.vhd"
DiskPart가 가상 디스크 파일을 선택했습니다.
DISKPART>detach vdisk
DiskPart가 가상 디스크 파일을 분리했습니다.
[/명령]
2.7 format
포맷을 합니다.
명령 형식 : format fs=<파일시스템> label=<"라벨"> quick
<파일시스템>에는 NTFS와 같은 파일시스템을 넣고, <라벨>에는 '로컬 디스크'와 같은 디스크 라벨을 지정합니다. quick은 빠른 포맷을 한다는 옵션입니다.
참고 : 여기에는 일반적으로 거의 쓸데가 없는 몇가지 옵션이 빠졌습니다.
예) D:를 포맷하려면(첫째 디스크의 둘째 파티션)
[명령/]
DISKPART>sel dis 0
0 디스크가 선택한 디스크입니다.
DISKPART>sel par 2
2 파티션이 선택한 파티션입니다.
DISKPART>format fs=ntfs label="포맷 테스트" quick
[/명령]
자...이제 끝~
댓글 [8]
-
cabin 2012.05.06 22:15 -
기러기 2012.05.06 23:24 .이많은 글을 작성하시려면 상당한 시간이 소요 되었을것 같습니다
잘 익혀 사용하겠습니다.---->장담은 못합니다..이해력이 워낙부족하여...
-
윈도우찬양론자 2012.05.07 11:24
6시간 동안 키보드 두드렸네요. 저는 그렇게 긴 글이 아니라도 항상 좀....느리네요.
-
YhK군 2012.05.07 00:07 수고하셨습니당 추천ㅇ help -> help create -> help create partition 이런식으로만 해보다가 언제 한번 또 막힐 때는 그때는 이 팁 보면 되겠네요. 감사합니다 (_ _)
-
하얀쪽배 2012.05.07 13:48
덕분에 공부하는 계기가 되었네요. 고맙습니다.
-
옛날이야기 2012.05.08 05:30
@.@ 감사합니다.. 열심히 따라해 볼께요
-
LOVEnTIME 2012.05.08 08:38
감사합니다..
나중에 찬찬히 보려고 제 원노트에 카피해 두었습니다. ^^!
-
천줄기바람 2013.02.23 17:03
명령어의 단축형을 찾았는데 대단히 감사합니다. select은 sel로 되는데 partition은 어떤지 궁금했습니다. 자주 partiton이라 오타했거든요.
항상..알려주실려고 노력하시는분..
감사하게 잘 보고 감니다....
이전 버전의 명령들에서는..항상 대상을 선택 지시해서..어디에서든..손쉽게 처리가 되었는데...
이젠..해당하는 구조를 직접 찾아 들어가서..명령어를 실행해야 하는 불편함이 보이네요...
(항상 포커스가 어디있는지 파악해야함)
다음 강좌 기대함니다.ㅎㅎ