가상머신 없이 VHD에 OS 설치

[필수 조건]

1. Convert-WindowsImage.ps1 스크립트 필요 (아래 파일 다운)

2. Powershell 버전 3.0 이상

3. 설치하려는 OS의 커널넘버가 NT6.0 이상(클라이언트는 VISTA 부터 가능, 서버는 2008 버전 부터 가능)

 

 

 

[옵션]

   -SourcePath <설치할ISO파일경로>

   -VHDPath <가상디스크파일이생성될확장자포함경로>

   -VHDFormat <VHD|VHDX>

   -Edition <ServerEnterprise|ServerEnterpriseCore|ServerDataCenter|ServerDataCenterCore>

   -VHDPartitionStyle <MBR|GPT>

   -RemoteDesktopEnable

   -Feature <dism명령의설치명>

       dism /online /get-feature 명령을 통해 확인

   -Verbose

   -VHDType <fixed|dynamic> : 기본 dynamic

   -SizeByte <용량> : 기본 40GB

 

   -ShowUI : GUI 화면 모드로 실행(권장하지않음)

 


* 스크립트 실행 시 [보안 오류: (:) [], PSSecurityException] 발생 할때 아래의 명령어를 파웨쉘에 입력

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

 


[스크립트 사용 방법]

.\Convert-WindowsImage.ps1 -SourcePath "<설치할 ISO파일의 경로>" -VHDPath "<생성될 VHD 또는 VHDX파일의 전체경로>" -VHDFormat <VHD또는 VHDX> -VHDPartitionStyle <MBR또는 GPT> -Edition <서버OS의 경우 설치할 에디션 입력> -Verbose

 

[ Windows 10에서 스크립트 사용 방법]

Import-Module .\Convert-WindowsImage.ps1 <엔터>

convert-windowsimage -SourcePath "<설치할 ISO파일의 경로>" -VHDPath "<생성될 VHD 또는 VHDX파일의 전체경로>" -VHDFormat <VHD또는 VHDX> -VHDPartitionStyle <MBR또는 GPT> -Edition <서버OS의 경우 설치할 에디션 입력> -Verbose

 



[예제]

* 2012 R2

   .\Convert-WindowsImage.ps1 -SourcePath "D:\2012R2.ISO" -VHDPath "C:\HyperV\VHD\2012R200\2012R200.vhdx" -VHDFormat VHDX -Edition ServerStandard -VHDPartitionStyle GPT -Verbose

 


* 2008R2

   .\Convert-WindowsImage.ps1 -SourcePath "D:\2008R2.ISO" -VHDPath "C:\HyperV\VHD\2008R200\2008R200.vhdx" -VHDFormat VHD -Edition ServerEnterprise -VHDPartitionStyle MBR -Verbose

 


* Windows 7

   .\Convert-WindowsImage.ps1 -SourcePath "D:\Windowns7.ISO" -VHDPath "C:\HyperV\VHD\700\700.vhd" -VHDFormat vhd -VHDPartitionStyle MBR -verbose

 


5  Comments
  • 안성군
    os는 2012r2 구요 .\convert-windowsimage -showui 해줬는데 아무런 반응이없습니다. 차단해제도 해줬습니다. .\convert-windowsimage -s까지만 누르고 tab키를 누르면 -sourcepath 가 저절로 쳐졌던걸로 기억하는데 저는 그것도 안됩니다. 일일이 명령어를 다쳐서 실행해도 아무런 반응이없네요.. 오류도 안뜹니다 그냥 아무런 반응이없습니다. 어떤게 문제인지 알려주시면 감사하겠습니다.관리자권한으로 powershell 실행했구요 스크립트보안해제 명령어도 해줬습니다.
    • 1.
      .\Convert-WindowsImage.ps1
      옵션없이 위와 같이 실행했을때 아래와 같은 오류가 발생한다면

      + CategoryInfo : 보안 오류: (:) [], PSSecurityException
      + FullyQualifiedErrorId : UnauthorizedAccess

      관리자 권한으로 실행된 Powershell에서 아래의 명령어 입력합니다.
      Set-ExecutionPolicy -ExecutionPolicy Unrestricted
      실행규칙 변경에 대한 메세지가 발생되면 '[y]예(Y)' 를 눌러 실행정책을 변경합니다.

      그래도 정상 실행되지 않는다면 아래의 2번을 진행합니다.
      2.
      다운로드받은 스크립트 파일을 우클릭하여 '속성' > '일반' 탭에서
      '특성' 아래에 '보안' 이라는 메세지가 보인다면 '차단해제' 체크박스에 체크한 뒤 '확인' 버튼을 눌러 창을 닫습니다.
      기존 Powershell창을 닫은 후, Powershell을 관리자로 재실행하여 실행해야합니다.

      그래도 정상 실행되지 않는다면 아래의 3번을 진행합니다.
      3.
      해당 스크립트를 Import 하여 사용하는 방법입니다.(Powershell은 관리자 권한으로 실행)
      스크립트 파일이 있는 경로로 이동하여 아래의 명령어를 통해 Import 합니다.
      Import-Module .\Convert-WindowsImage.ps1
      이후 아래와 같이 'Convert-WindowsImage' 라고 입력후 옵션을 입력하면 됩니다.
      PS D:\> Convert-WindowsImage -SourcePath
  • 안성군
    import하니까 됬습니다. 감사합니다!
  • 안성군
    리눅스를 설치하려고 하니까 'Path' 매개 변수가 null이므로 인수를 해당 매개 변수에 바인딩할 수 없습니다. 라는 오류가 나옵니다 리눅스는 convert-windowsimage 로 만들수 없나요? cent os 입니다
댓글 쓰기