본문 바로가기

디스크와 파티션

[DiskPart] 가상 디스크의 생성과 연결, 분리, 삭제 - Create Vdisk, Select Vdisk, Attach, Detach

VHD 가상 디스크 관리의 기초

1. VHD 가상 디스크의 생성과 연결, 분리 과정의 이해

일단 DiskPart 에서는 다음과 같은 방법으로 VHD 가상 디스크를 연결하고 분리하게 됩니다. 이건 가장 기초적인 내용이니 필히 숙지하세요.

(기존) 가상 디스크의 연결

VHD 파일 선택(Select Vdisk) -> 가상 디스크 연결(Attach Vdisk)

사용 중인 가상 디스크의 분리

VHD 파일 선택(Select Vdisk) -> 가상 디스크 분리(Detach Vdisk)


다음으로 VHD 가상 디스크는 시스템에 연결되면 실제 디스크와 동일한 하나의 디스크로 처리됩니다. 즉, 실제 디스크를 연결하였을 때와 마찬가지로 가상 디스크도 디스크 번호를 할당 받습니다. 이를 통해 파티션 생성 등 디스크에서 하는 작업들을 할 수 있는 것이죠. 가상 디스크가 연결되어 사용될 때에는 그냥 실제 디스크와 똑같다. 그렇게 생각하시면 되는 겁니다. 간단 하죠?

실제 디스크와 가상 디스크가 함께 있는 모습. 윈도우에서 둘은 동일하게 취급된다.




이제 가상 디스크를 사용하기 위해 DiskPart 에서 실제로 새로운 VHD 파일을 생성할 때에는 연결 및 파티션 생성 등의 작업들을 모두 한 번에 처리하는 것이 보통이죠. 그래서 보통 VHD 를 생성할 때 하게되는 작업들을 모두 정리하면 다음과 같습니다.

세로운 가상 디스크의 생성과 연결, 실제 사용을 위한 준비 (MBR 디스크 형식)

VHD 파일 생성(Create Vdisk) -> 가상 디스크 연결(Attach Vdisk) -> 파티션 생성(Create Partition) -> 포맷(Format) -> 드라이브 문자 할당(Assign)

이제 막 생성하고 연결한 가상 디스크는 아직 파티션이 나누어지지 않은 초기 상태로 존재하게 됩니다. 그렇기에 실제로 사용하기 위해서는 파티션을 생성하고 포맷하는 등의 과정을 거쳐야 실제로 사용을 할 수 있고 그래서 [VHD 파일을 생성 - 가상 디스크를 연결] 한 후에 파티션 생성 등의 작업을 한 번에 해주는 것입니다.

이제 막 생성되고 연결된 가상 디스크는 초기화되지 않은 상태이다.


포커스(대상의 선택)에 대해 첨언을 하자면 VHD 파일을 생성한 직후에는 DiskPart 포커스의 특성대로 이제 막 생성된 VHD 파일에 자동으로 포커스가 지정되기 때문에, 생성 후 따로 VHD 파일을 선택하는 과정이 생략되는 것입니다. 또한 VHD 파일을 연결한 직후에도 마찬가지로 포커스가 자동으로 가상 디스크에 해당하는 디스크에 지정되기 때문에 곧바로 파티션 생성 작업 등을 할 수 있는 것이죠. 즉, 원래대로라면

VHD 파일 생성(Create Vdisk) -> VHD 파일 선택(Select Vdisk) -> 가상 디스크 연결(Attach Vdisk) -> 디스크 선택(Select Disk) -> 파티션 생성(Create Partition) -> 파티션 선택(Select Partition) -> 포맷(Format) -> 드라이브 문자 할당(Assign)

이런 식으로 작업이 이루어져야 하지만 DiskPart 에서는 어떠한 대상을 연결하거나 생성하면 자연스럽게 해당 대상으로 포커스가 이동하기 때문에 이러한 중간의 Select 과정들을 모두 생략할 수 있는 것입니다. Select 명령을 배운지 꽤 되었기에 다시 한 번 설명을 해봤는데요. 아무튼 Select 명령에서 배웠던 포커스의 자연스러운 이동을 항상 기억하세요.


참고로 DiskPart 는 아직 초기화되지 않은 디스크를 인식할 때 기본적으로 2TB 이하의 디스크는 MBR 기본 디스크 형식으로 2TB 이상의 디스크는 GPT 기본 디스크 형식으로 인식을 하게 됩니다.[이 부분은 디스크 관리와 좀 다른 부분입니다. 디스크 관리는 먼저 무엇으로 사용할 지 묻죠.] 그렇기에 곧바로 파티션 생성 명령을 내리면 보통 사용되는 2TB 이하의 디스크는 MBR 디스크 상태로 자동 초기화하고 파티션을 생성하게 되죠.

그래서 만약 가상 디스크를 GPT 디스크 형식으로 사용하고자 한다면 Convert GPT 명령을 통해 가상 디스크를 먼저 MBR 디스크 형식에서 GPT 디스크 형식으로 변환해주어야 합니다. 즉, 다음과 같은 순서로 명령을 구성해야 하는 것이죠.

새로운 가상 디스크의 생성과 연결, 실제 사용을 위한 준비 (GPT 디스크 형식)

VHD 파일 생성(Create Vdisk) -> 가상 디스크 연결(Attach Vdisk) -> GPT 디스크 변환(Convert GPT) -> 파티션 생성(Create Partition) -> 포맷(Format) -> 드라이브 문자 할당(Assign)

몇 가지 더 알아두실 점은 먼저 가상 디스크에서는 동적 디스크 형식을 사용할 수 없기 때문에 Convert Dynamic 명령은 사용할 수 없다는 사실입니다. 또한 GPT 형식으로 준비된 가상 디스크에는 윈도우를 설치하여 부팅할 수 없습니다. 고로 특별한 테스트 등의 목적이 아니라면 가상 디스크에서 GPT 디스크 형식은 별다른 메리트가 없고 거의 사용되지 않는다고 보시면 됩니다.


아무튼 이렇게 연결하여 사용 중인 가상 디스크는 언제든지 원할 때 시스템에서 분리시킬 수 있고,(부팅된 VHD 제외, 모든 가상 디스크는 윈도우가 종료되면 자동으로 분리) 분리된 VHD 파일은 이후 언제든지 원할 때 다시 가상 디스크로 연결하여 예전 상태 그대로 사용할 수 있습니다.

사용 중인 가상 디스크를 분리하고 기존의 가상 디스크를 다시 연결하는 것은 제일 처음에 정리해 드린 내용을 참고하세요.



2. Create Vdisk 외 Vdisk 관련 명령들의 이해

A. Create Vdisk

VHD 파일을 새로 생성하는 명령은 Create Vdisk 로 다음과 같은 형식을 가지고 있습니다.

Create Vdisk File="D:\Example.vhd" Maximum=1024 Type=Expandable

Create Vdisk File="[생성할 VHD 파일의 경로와 이름]" Maximum=[가상 디스크 크기] Type=[가상 디스크 형식]

Maximum=1024 -> 가상 디스크의 크기 - MB 단위로 지정. [DiskPart 에선 이를 최대 크기라고 표현]

Type=Fixed -> 고정 크기 방식으로 가상 디스크 생성.
Type=Expandable -> 동적 확장 방식으로 가상 디스크 생성.


뭐 지금 당장은 특별히 더 이야기할 건 없고 가상 디스크 크기는 최대 크기 또는 가상 크기라고 표현되니 이점만 기억을 해두시면 될 듯 합니다.


B. Select Vdisk

만약 기존에 생성하여 사용했던 VHD 가상 디스크 파일을 가지고 있고, 이를 시스템에 다시 연결하여 사용하고자 한다면, 먼저 해당 VHD 파일을 선택해야 합니다. 이는 Select Vdisk 명령을 통해 할 수 있습니다. 이것은 Select 명령에서 이미 한 번 다루었기 때문에 자세한 설명은 생략하도록 하겠습니다. [뭐 더 설명할 것도 없지만... -_-]

Select Vdisk File="D:\Example.vhd"

참고로 같은 말을 반복하는 것이라 지겹겠지만, 이제 막 Create Vdisk 를 통해 생성한 VHD 파일은 자동으로 선택된 상태이기 때문에, 생성 직후 곧바로 연결할 것이라면 굳이 Select Vdisk 명령을 통해 다시 한 번 선택할 필요는 없습니다.


C. Attach Vdisk

이렇게 새로 생성하였거나 선택한 VHD 파일을 실제로 가상 디스크로 사용하기 위해서는 시스템에 연결을 해주어야 하고, 이것을 담당하는 명령은 Attach Vdisk 입니다. 사용법은 매우 간단합니다. VHD 파일이 선택된 상태에서(Create Vdisk 직후, Select Vdisk 선택 후) Attach Vdisk 명령만 내리면 됩니다.

Select Vdisk File="D:\Example.vhd"
Attach Vdisk

먼저 VHD 파일을 선택해줘야 하기 때문에 이제 막 VHD 파일을 생성한 때를 제외하곤 항상 Select Vdisk 명령과 짝을 이뤄 사용한다고 생각하시면 편하실 겁니다. 그래서 그냥 셋트로 함께 외우시는 게 좋습니다.


참고로 가상 디스크는 읽기 전용 상태로 시스템에 연결할 수도 있으며, 이 때는 ReadOnly 매개 변수를 추가해주면 됩니다.

Select Vdisk File="D:\Example.vhd"
Attach Vdisk ReadOnly



D. Detach Vdisk

마지막으로 현재 사용 중인 가상 디스크를 시스템과 분리하기 위해선 먼저 Select Vdisk 명령을 통해 분리할 VHD 파일을 선택한 후 Detach Vdisk 명령만 내리면 됩니다.

Select Vdisk File="D:\Example.vhd"
Detach Vdisk


마찬가지로 항상 Select Vdisk 명령과 항상 짝을 이뤄 사용된다고 생각하시면 되고 그렇기에 이 또한 셋트로 함께 외우시는 게 좋습니다.


E. List Vdisk

현재 시스템에 연결된(Attach 된) 가상 디스크의 목록을 확인하는 명령은 List Vdisk 입니다. List Vdisk 를 통해서 확인할 수 있는 정보는 현재 시스템에 연결된 각 가상 디스크의 디스크 번호, 형식, 가상 디스크에 해당하는 VHD 파일 정보입니다.

List Vdisk





VHD 가상 디스크의 생성과 연결, 분리

필요한 설명은 거의 다 드린 것 같네요. 그럼 실제로 예제를 보면서 가상 디스크를 어떻게 관리하는지 보도록 하죠.


예제 1

10GB 짜리 동적 확장 형식의 가상 디스크를 D:\Data1.vhd 파일로 생성한 후 연결합니다. 그 후 가상 디스크 전체 공간을 하나의 주 파티션으로 생성하고 이를 NTFS 로 빠른 포맷, 드라이브 문자를 자동으로 할당합니다. 이 때 디스크 형식은 따로 지정하지 않고 MBR 디스크 형식 그대로 사용합니다.

[작업 전]




[DiskPart 작업]
diskpart
create vdisk file="D:\Data1.vhd" maximum=10240 type=expandable
attach vdisk
create partition primary
format fs=ntfs quick
assign


* 빨간 글씨 명령 - VHD 가상 디스크 (파일) 자체와 관련된 작업 - 생성, 연결

* 녹색 글씨 명령 - 연결된 가상 디스크 즉, 디스크에서의 작업 - 디스크에 파티션 생성 등 [DiskPart 의 자연스러운 포커스의 이동과 자동 선택의 특성으로 명령에는 디스크 2 로 연결된 가상 디스크를 선택하는 Select Disk 2 가 생략되어 있습니다. 그리하여 해당 작업의 가장 처음에 Select Disk 2 명령을 넣으시고, 앞서 배운 파티션 생성하기 글에서 배운 내용을 대입하여 생각하시면 명령의 흐름을 이해하시기가 한결 편하실 겁니다.]


[작업 후]


실제 디스크와 가상 디스크가 함께 있는 모습. 윈도우에서 둘은 동일하게 취급된다.



참고로 지금은 작업 직후라 파악이 쉽지만 이미 가상 디스크가 연결된 상태에서 List Disk 만을 통해서는 연결되어 있는 디스크들 중에 어떠한 것이 가상 디스크인지를 알 수 없습니다. 이럴 때는 List Vdisk 명령을 통해 (해당 가상 디스크가 현재 연결되었는지, 몇 번째 디스크로 연결되었고, 어떠한 VHD 파일이 연결된 것인지) 확인할 수 있다는 점을 기억하시길 바랍니다.

해당 가상 디스크에 대한 좀 더 정확한 정보는 이렇게 가상 디스크 파일이 선택된 상태에서 Detail Vdisk 를 통해 확인할 수 있습니다.



또한 만약 예제와 같이 자동으로 드라이브 문자를 할당하여 어떤 드라이브(볼륨)이 가상 디스크 안의 볼륨인지 미처 모르겠다면, 물론 디스크 관리를 통하면 가장 쉽겠지만 DiskPart 만으로 작업한다면 해당 가상 디스크가 선택된 상태에서(Select Disk, 연결 명령을 내린 직후라면 따로 선택할 필요 없음) Detail Disk 정보를 통해 확인하면 됩니다.



이런 식으로 Detail Disk 를 통해서도 유형 정보를 통해 해당 디스크가 실제 디스크인지 가상 디스크인지를 파악할 수 있습니다.

이렇게 연결되고 파티셔닝과 포맷, 드라이브 문자 할당까지 끝난 가상 디스크의 드라이브는 실제 디스크의 드라이브와 똑같이 사용할 수 있습니다.




예제 2

현재 디스크 2 로 연결된 가상 디스크를(D:\Data1.vhd) 시스템에서 분리합니다. [스크린 샷은 DiskPart 를 통해서만 보도록 하겠습니다.]

[작업 전]



[DiskPart 작업]
diskpart
select vdisk file="D:\Data1.vhd"
detach vdisk



[작업 후]


이와 같이 가상 디스크를 분리한 상태에서도 List Vdisk 명령을 통해 확인하면, 현재 시스템이 부팅된 이후 생성하였거나 연결하였던 VHD 가상 디스크들의 목록을 확인하는 것이 가능합니다. 이러한 정보들은 시스템이 재부팅되면 사라집니다.

시스템에서 분리된 VHD 가상 디스크 파일은 삭제되지 않습니다. 그렇기에 언제든지 다시 연결하여 사용할 수 있습니다.




예제 3

기존에 미리 만들어 두었던 D:\Data1.vhd 파일을 다시 가상 디스크로 연결합니다. 단! 읽기 전용 상태로 연결합니다.

[DiskPart 작업]
diskpart
select vdisk file="D:\Data1.vhd"
attach vdisk readonly

이렇게 ReadOnly 매개 변수를 추가하여 읽기 전용으로 연결한 가상 디스크는 디스크 관리에서 읽기 전용 상태로 표시가 됩니다.



DiskPart 에서는 디스크가 선택된 상태에서 Detail Disk 명령을 실행, 현재 읽기 전용 상태 정보를 확인하여 이를 파악할 수 있습니다.


이 때 주의할 점은 현재는 가상 디스크를 연결할 때 옵션으로 읽기 전용으로 연결한 것이라는 것입니다. 그리하여 해당 가상 디스크는 현재는 읽기 전용 상태이지만(VHD 파일), 디스크 자체의 특성이 읽기 전용 상태가 아니기 때문에(디스크 2) 읽기 전용 : 아니요 상태로 나타나게 되는 것입니다. 지금처럼 VHD 파일에 락을 걸어 읽기 전용 상태가 된 것과 디스크 자체 특성이 그러한 것은 분명 다른 것입니다.

디스크 자체에 읽기 전용 속성을 부여하는 것은 Attributes 명령에서 다루게 될 것입니다. 

이렇게 읽기 전용 상태로 연결된 가상 디스크에는 (VHD 파일이 쓸 수 없게 잠겨 있기 때문에) 파티션을 생성하거나 포맷, 파티션 제거, 포함된 볼륨(드라이브)에 파일 복사, 제거 등의 작업은 할 수 없고, 오직 그 상태 그대로 읽기만 가능합니다.



그래서 가상 디스크 안에 담긴 데이터가 변조되지 않아야 할 때 활용하시면 되겠습니다.





VHD 가상 디스크 파일의 삭제

DiskPart 를 통해서 VHD 파일 자체를 삭제할 수는 없습니다.[디스크 관리에서는 분리시에 파일을 삭제할 것인지를 선택할 수 있지만] 그렇기에 VHD 가상 디스크 파일을 삭제하는 것은 윈도우 탐색기를 통해야 합니다. 참고로 현재 연결되어 가상 디스크로 사용 중인 VHD 파일은 삭제할 수 없기 때문에, 이를 삭제하려면 반드시 먼저 VHD 가상 디스크 파일을 시스템에서 분리한 후 작업을 진행해야 한다는 사실을 잊지 마세요.



만약 윈도우 PE 와 같이 윈도우 탐색기를 활용할 수 없는 상태라면, DiskPart 가 아닌 명령 프롬프트 상태에서 Del 명령을 통해 VHD 파일을 삭제하면 됩니다. [명령은 현재 가상 디스크가 연결되어 있다고 가정하고 이를 분리하는 것까지 포함하였습니다.]

diskpart
select vdisk file="D:\Data1.vhd"
detach vdisk
exit

del "D:\Data1.vhd"



이상으로 DiskPart 를 통해 VHD 파일과 가상 디스크를 관리하고 정보를 확인하는 내용들을 모두 알아보았습니다. 지금 알아 본 내용들이 기초이면서도 VHD 를 관리하는 거의 대부분이라고 할 수 있겠네요. 이후 추가적인 VHD 관리 작업들은 오늘 알아본 내용 위에 몇 가지 명령들을 더하여 여러 가지 원하는 작업들을 진행한다고 보시면 됩니다. 그렇기에 반드시 오늘 알아본 내용들을 숙지하셔야만 이후 진행되는 VHD 관리 작업들을 올바로 이해할 수 있을 거라고 생각합니다.

이 글은 여기까지입니다. 다음 글에서 뵙죠. 이상입니다. ^^

1 부 2 부로 나눠서 글을 작성했지만, 이번 글은 뭔가 제가 원하는대로 글이 나오지 않았네요. 개인적인 사정에 의해 글을 작성하는중간 중간 끊어져서 하려던 이야기를 빼먹은 것도 보이고 그림도 제대로 못 넣었고 그러네요. 우울하네요.