1. 배경 및 개요

  • Proxmox VE는 KVM 기반의 가상화 솔루션으로, 서버 자원을 효율적으로 분리해 다양한 OS를 동시에 실행할 수 있는 강력한 환경을 제공합니다. 
  • 그러나 macOS는 Apple SMC(Security Management Controller)와 자체 하드웨어 식별 메커니즘 때문에 일반적인 방식으로는 가상화가 불가능합니다.
  • 이 문제를 해결하기 위해 커뮤니티에서는 OpenCore 부트로더를 이용한 SMC 우회 기법을 활용하고 있습니다. 
  • 본 포스트에서는 Proxmox 9.x 환경에서 단 한 줄의 명령어로 macOS 설치 환경을 자동 구성하는 방법을 실전 중심으로 소개해 드립니다.
  • 참고 소스: https://github.com/luchina-gabriel/OSX-PROXMOX

 

2. 주요 변경 사항

 - Proxmox 9.x 버전은 기존 8.x 대비 다음과 같은 향상된 구조를 통해 macOS 설치 호환성이 개선되었습니다.

  • QEMU/KVM 업그레이드로 인한 OpenCore 부트 안정성 향상
  • OVMF(UEFI) 지원 강화, EFI 초기화 시 오류 발생률 감소
  • VirtIO 및 vmxnet3 네트워크 드라이버 호환성 개선
  • OSX-PROXMOX 설치 스크립트 완전 호환 (Proxmox 9 verified)

 - 결과적으로, 수동 설정 과정이 크게 단축되고 설치 성공률이 높아졌습니다.

 

3. 기술 원리 및 구성 요소

 - Proxmox에서 macOS를 실행하기 위해 반드시 필요한 두 가지 기술적 요소는 다음과 같습니다.

  > Apple SMC 우회 (Fake SMC Key 적용)

  • macOS는 부팅 시 “진짜 Mac 하드웨어”에서 실행 중인지를 검증합니다. 
  • 이를 우회하기 위해 QEMU 설정 파일에 가상의 SMC 인증 키(OSK)를 삽입합니다.
  • 이 부분이 macOS 가상화의 핵심이며, 다음 명령이 실제 적용 포인트입니다.

 

args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"



  > OpenCore 부트로더

  • macOS가 비공식 하드웨어(QEMU VM) 위에서 정상적으로 부팅되도록 EFI 계층을 에뮬레이션합니다.
  • 쉽게 말해, OpenCore는 “Proxmox를 Mac처럼 보이게 만드는 가상 펌웨어”입니다.

 

 

 

 

4. 설치 자동화 스크립트 실행

 - 먼저 서버 쉘에서 다음 명령어 한 줄로 OSX-PROXMOX 설치를 자동으로 진행할 수 있습니다.

# /bin/bash -c "$(curl -fsSL https://install.osx-proxmox.com)


 - 이 스크립트는 다음 과정을 자동 처리합니다.

  • macOS용 VM 템플릿 구성 및 EFI 디스크 생성
  • QEMU 파라미터 세팅(ISA SMC, SMBIOS, EFI, Hypervisor flags 등)
  • OpenCore 및 macOS 설치 ISO 자동 다운로드 및 마운트

 - 설치가 완료되면 Proxmox 웹 콘솔에서 macOS용 VM이 생성됩니다.

 

5. 수동 구성 가이드

 - 자동 스크립트 외에도, 세부 설정 과정을 직접 관리하고 싶으신 분들을 위해 주요 단계별 수동 가이드를 함께 정리하였습니다. (실제 설정 단계 : 정상적으로 작동하지 않을 수 있습니다.)

  > Phase 1: 준비 파일 업로드

  • macOS Catalina ISO (이미 보유 중인 macOSCatalina.iso)
  • OpenCore 부트로더 ISO (Nick Sherlock 등의 공개 이미지 다운로드)
  • Proxmox 웹 GUI에서 local → ISO Image 저장소로 각각 업로드합니다.

 

  > Phase 2: VM 생성

  • BIOS: OVMF (UEFI)
  • Machine Type: q35
  • SCSI Controller: VirtIO SCSI single
  • Disk Size: 64GB 이상 (VirtIO Block)
  • CPU Type: host
  • Memory: 8192MB, Ballooning Device 해제
  • Network Adapter: VirtIO 또는 vmxnet3
  • OS Type은 "Do not use any media"로 설정 후 나중에 ISO를 추가합니다.

 

  > Phase 3: Apple SMC 우회 코드 삽입

  • Proxmox 쉘에서 VM 설정 파일을 수정합니다.
  • 예) VM ID가 100인 경우
# nano /etc/pve/qemu-server/100.conf
  • 가장 아래에 다음 줄을 추가합니다:
args: -device isa-applesmc,osk="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc" -smbios type=2 -device usb-kbd,bus=ehci.0,port=2 -device usb-mouse,bus=ehci.0,port=3 -cpu host,kvm=on,vendor=GenuineIntel,+kvm_pv_unhalt,+kvm_pv_eoi,+hypervisor,+invtsc



  > Phase 4: ISO 마운트 및 부팅 순서 지정

  • Hardware 메뉴에서 ISO 2개 추가
  • IDE 0: OpenCore.iso
  • IDE 1: macOSCatalina.iso
  • Options > Boot Order에서 OpenCore를 최상단으로 설정

 

  > Phase 5: macOS 설치 진행

  • VM 부팅 후 OpenCore 메뉴에서 “Install macOS Catalina”를 선택합니다.
  • 이후 Disk Utility > QEMU VIRTIO BLOCK을 선택 → “MacHD”라는 이름으로 APFS 포맷 > GUID Partition Map으로 초기화합니다
  • 포맷 완료 후 macOS를 해당 Disk에 설치합니다. 재부팅 시마다 OpenCore 메뉴에서 “macOS Installer / MacHD”를 선택해 이어서 설치합니다.

 

  > Phase 6: 하드디스크 부팅 세팅 (마무리)

   >> 설치 완료 후 macOS에서 로그인했다면, 터미널을 열어 다음을 수행합니다.

  • diskutil list로 EFI 파티션 확인
  • OpenCore CD의 EFI 폴더를 MacHD의 EFI 파티션으로 복사
  • Proxmox Hardware 탭에서 두 ISO(OpenCore, macOS) 모두 제거
  • 재부팅 후 하드디스크 단독 부팅을 확인합니다.

 

6. 기획 의도 및 기술적 개선

 - 이 프로젝트는 비공식적으로 macOS 테스트 환경을 연구/개발 목적으로 간소화하기 위해 설계되었습니다. 

 - 특히 OSX-PROXMOX 자동화 스크립트는 다음과 같은 이점을 제공합니다.

  • 기존의 복잡한 OpenCore 구성 파일 수동 수정을 완전히 자동화
  • Proxmox 최신 버전에서도 커널 패치 없이 안정적으로 동작
  • macOS 설치 ISO와 EFI 디스크를 일괄 관리하는 통합 루틴 구현
  • Apple 라이선스 보호구조를 침해하지 않는 범위에서 테스트 환경 구성 가능

 

7. 기대효과 및 주의사항

 - 기대효과

  • macOS/iOS 개발 환경을 가상화 환경 내에 손쉽게 구현
  • Swift, Xcode, Cocoa 테스트 및 빌드용으로 즉시 활용 가능
  • 포렌식, 악성코드 분석, 크로스 OS 대응 테스트 등 다양한 연구 목적에 적합

 

 - 주의사항

  • macOS 실행은 Apple 하드웨어 이용 약관을 준수하셔야 하며, 연구·테스트 목적의 내부 환경에서만 사용을 권장드립니다.
  • VM 설치 중 네트워크 끊김 또는 메모리 벌루닝 활성화 시 설치 오류가 발생할 수 있습니다.
  • 설치 과정 중 2~3회 자동 재부팅이 이루어지며, 매회 OpenCore 메뉴에서 수동 선택이 필요합니다.
  • CPU가 AMD 계열이거나 VT-x 기능이 비활성화된 경우 설치가 제한될 수 있습니다.

 

 

 

반응형

2025년 8월 5일, Proxmox Server Solutions GmbH가 창립 20주년을 맞이하여 Proxmox VE(Virtual Environment) 9.0을 공식 출시했습니다. 이번 메이저 업데이트는 Debian 13 "Trixie"를 기반으로한 코어와 함께 엔터프라이즈급 스토리지 및 네트워킹 기능의 대폭적인 개선을 제공합니다.

◎ 핵심 플랫폼 업데이트
 - Debian 13 "Trixie" 기반 코어
  > Proxmox VE 9.0의 가장 주목할 만한 변화는 Debian 13 "Trixie"를 기반으로 한 완전히 새로운 코어입니다. 이는 더 나은 하드웨어 지원, 향상된 보안 기능, 그리고 최신 패키지들을 포함하여 전체 플랫폼의 안정성과 성능을 크게 향상시킵니다.

  > 새로운 플랫폼은 Linux Kernel 6.14.8-2를 기본 안정 커널로 사용하여 최신 하드웨어와의 호환성을 개선했습니다. 또한 핵심 가상화 기술들도 최신 버전으로 업그레이드되었습니다:

  • QEMU 10.0.2 - 향상된 가상머신 성능과 라이브 마이그레이션
  • LXC 6.0.4 - 개선된 컨테이너 격리와 cgroup v2 지원
  • ZFS 2.3.3 - RAIDZ 확장 지원 및 향상된 데이터 관리
  • Ceph Squid 19.2.3 - 분산 스토리지 클러스터 개선

 

◎ 혁신적인 스토리지 기능
 - Thick-provisioned LVM 공유 스토리지 스냅샷
  > 엔터프라이즈 사용자들이 가장 기다려온 기능 중 하나가 드디어 도입되었습니다. iSCSI 및 Fibre Channel SAN 환경에서 thick-provisioned LVM 공유 스토리지에 대한 스냅샷 지원이 이제 가능합니다.

  > 이 기능은 볼륨 체인 방식으로 구현되어, 스냅샷 기반의 볼륨이 부모 스냅샷과의 차이점만 기록하도록 합니다. 이는 Directory, NFS, CIFS 스토리지에도 확장되어 스토리지 벤더에 독립적인 스냅샷 솔루션을 제공합니다.

 

 - ZFS RAIDZ 확장 기능
  > ZFS 2.3.3의 도입으로 RAIDZ 풀에 새로운 디스크를 다운타임 없이 추가할 수 있게 되었습니다. 이는 기존에 RAIDZ 풀을 확장하기 위해 전체 풀을 재구축해야 했던 번거로움을 완전히 해결하는 획기적인 개선사항입니다.

◎ 고급 네트워킹: SDN Fabrics
 - OpenFabric 및 OSPF 지원
  > 새로운 SDN Fabrics 기능은 복잡한 라우팅 네트워크의 구성과 관리를 크게 단순화합니다. 이 기능은 다중 경로와 자동 NIC 장애조치를 지원하여 견고한 2계층 스파인-리프 아키텍처 구성을 가능하게 합니다.

  > SDN 스택은 이제 OpenFabric과 OSPF 두 가지 동적 라우팅 프로토콜을 지원하며, 이를 통해 Ethernet VPN(EVPN) 언더레이나 Ceph 풀메시 네트워크 구성이 가능합니다. 사용자들은 직관적인 GUI를 통해 이러한 복잡한 네트워크 토폴로지를 손쉽게 관리할 수 있습니다.

◎ 고가용성(HA) 개선사항
 - 리소스 친화성 규칙

  > 새로운 HA 리소스 친화성 규칙은 클러스터 내에서 가상머신과 기타 HA 리소스의 배치를 세밀하게 제어할 수 있게 해줍니다. 관리자들은 이제 다음과 같은 정책을 설정할 수 있습니다:

  • 상호 의존적 서비스 (애플리케이션 서버와 데이터베이스)를 같은 물리적 노드에 배치하여 네트워크 지연시간 최소화
  • 중요한 서비스의 여러 인스턴스를 서로 다른 노드에 분산 배치하여 장애 허용성 최대화

  > 이는 기존의 HA 그룹 기능을 대체하며, 업그레이드 시 자동으로 마이그레이션됩니다.

 

◎ 모바일 인터페이스 혁신
 - Rust 기반 Yew 프레임워크

  > 모바일 인터페이스가 Rust 기반 Yew 프레임워크를 사용하여 완전히 새로 작성되었습니다. 새로운 인터페이스는 다음과 같은 기능을 제공합니다:

  • 빠른 서비스 개요 및 상태 확인
  • 가상머신 및 컨테이너 시작/중지 제어
  • 기본적인 구성 작업 수행
  • 터치 디바이스에 최적화된 사용자 인터페이스

 

◎ 업그레이드 및 설치 옵션
 - 원활한 업그레이드 경로
  > Proxmox VE 8.x에서 9.0으로의 업그레이드는 철저히 테스트된 상세한 업그레이드 경로를 통해 진행할 수 있습니다. 업그레이드 전 pve8to9 체크리스트 스크립트를 실행하여 잠재적인 호환성 문제를 미리 확인할 수 있습니다.
  > 혼합 클러스터(8.x와 9.0 노드)는 마이그레이션 목적으로는 지원되지만, 장기간 유지해서는 안 됩니다. 구 버전에서 신 버전으로의 가상머신 마이그레이션은 완전히 지원되며, 역방향 마이그레이션은 베스트 에포트로 지원됩니다.

 

 - 설치 옵션

  > 베어메탈 설치: 완전한 기능셋을 포함한 ISO 이미지 다운로드

  > Debian 13 위에 설치: 기존 Debian 13 시스템에 Proxmox VE 설치 가능

  > 커스텀 파티션 레이아웃: 특별한 스토리지 구성이 필요한 경우

 

◎ 라이선스 및 지원
 - Proxmox VE는 GNU Affero General Public License v3 하에 자유 오픈소스 소프트웨어로 제공됩니다. 엔터프라이즈 사용자들을 위해서는 CPU당 연간 115유로부터 시작하는 구독 기반 지원 모델을 제공합니다.
 - 현재 전 세계적으로 160만 대 이상의 호스트에서 Proxmox VE가 운영되고 있으며, 31개 이상의 언어로 번역되어 있습니다. 225,000명 이상의 커뮤니티 멤버들이 지원 포럼에서 활발하게 소통하고 있어, 강력한 커뮤니티 지원을 받을 수 있습니다.

◎ 주요 고려사항
 - 알려진 이슈들

  > 네트워크 인터페이스 이름 변경: 6.8에서 6.14 커널로의 업그레이드 시 일부 네트워크 인터페이스 이름이 변경될 수 있습니다.

  • VirtIO vNIC MTU 기본값 변경: 이제 브리지 MTU를 상속받으며, 기존 1500 고정값과 다릅니다
  • Test Repository 이름 변경: pvetest에서 pve-test로 변경되었습니다

  > Proxmox VE 9.0은 홈랩 사용자부터 대규모 엔터프라이즈까지 모든 규모의 환경에서 가상화 플랫폼의 새로운 표준을 제시하는 의미 있는 업데이트입니다. 특히 기존 VMware 사용자들에게는 매력적인 대안이 될 것으로 보입니다.

반응형

Proxmox VE는 강력한 가상화 플랫폼으로, 컨테이너와 가상 머신(VM)을 손쉽게 배포할 수 있습니다. 때로는 가상 머신 안에서 또 다른 가상 머신이나 컨테이너를 실행하고 싶을 때가 있는데, 이럴 때 필요한 것이 바로 중첩 가상화입니다. 조금 더 쉽게 설명하자면 VM으로 윈도우 OS를 설치했는데 윈도우 OS에서 Hyper-v를 실행하려면 중첩가상화를 활성해야합니다. 이번 글에서는 Proxmox에서 중첩 가상화를 활성화하는 방법을 단계별로 안내합니다.

◎ 중첩 가상화란?
중첩 가상화란, 물리적 호스트(Proxmox 서버)에서 실행 중인 가상 머신(게스트) 안에서 다시 하이퍼바이저를 실행해 또 다른 가상 머신을 만들 수 있도록 해주는 기능입니다. 예를 들어, Proxmox 호스트에서 가상 머신을 만들고, 그 안에 또 다른 가상 머신을 실행할 수 있습니다.

◎ Proxmox에서 중첩 가상화 활성화
1. 호스트에서 중첩 가상화 활성화 확인
 - 먼저, Proxmox 호스트에서 중첩 가상화가 활성화되어 있는지 확인합니다.
   > Intel CPU인 경우:

# cat /sys/module/kvm_intel/parameters/nested

 

  > AMD CPU인 경우:

# cat /sys/module/kvm_amd/parameters/nested

**출력이 "Y" 또는 "1"**이면 중첩 가상화가 활성화된 상태입니다.
**"N" 또는 "0"**이면 비활성화 상태입니다.

2. 중첩 가상화 활성화
 - 활성화되어 있지 않다면 아래 명령어로 활성화합니다.
  > Intel CPU:

# echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf

 

  > AMD CPU:

# echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf

 

 - 적용을 위해 시스템을 재부팅하거나 커널 모듈을 다시 로드합니다.

  > Intel CPU:

# modprobe -r kvm_intel
# modprobe kvm_intel

 

  > AMD CPU:

# modprobe -r kvm_amd
# modprobe kvm_amd


3. 게스트 VM에서 가상화(VT-X/SVM) 활성화
 - Proxmox 호스트에서 중첩 가상화가 활성화되었다면, 이제 게스트 VM에서 가상화 기능을 활성화해야 합니다.
 - 명령줄에서 활성화
  > VM을 종료합니다.
  > VM의 CPU 타입을 "host"로 변경합니다.

# qm set <VMID> --cpu host
# qm set 105 --cpu host

(VMID는 해당 가상 머신의 ID로 변경).

 - 웹 UI에서 활성화


  > Proxmox 웹 UI에 접속합니다.
  > VM → 하드웨어 → 프로세서로 이동합니다.
  > CPU 유형을 "host"로 변경합니다.
  > VM을 시작합니다.

 

4. AMD 프로세서에서 중첩 가상화 활성화 추가 안내
 - Proxmox 호스트에서 VM 구성 파일에 args 추가
  > VM을 종료합니다.
  > Proxmox 호스트에서 VM 구성 파일을 엽니다.

# vi  /etc/pve/qemu-server/.conf


   * 윈도우 VM의 경우 첫번째 줄에 추가합니다.

args: -cpu 'host,+svm,-hypervisor'

 

   * 리눅스 VM의 경우 첫번째 줄에 추가합니다.

args: -cpu 'host,+svm'


파일을 저장하고 VM을 다시 시작합니다


5. 게스트 VM에서 가상화 지원 확인
 - 게스트 VM에 접속한 뒤, 아래 명령어로 가상화 지원 여부를 확인합니다.

  > 윈도우OS

   * 작업 관리자(태스크 매니저) 사용
    ** Ctrl + Shift + Esc 키를 눌러 작업 관리자를 엽니다.
    **  성능 탭으로 이동 후 CPU 항목을 클릭합니다.
    **  오른쪽 하단에 "가상화: 사용" 또는 **"가상화: 활성화됨"**으로 표시되면 가상화가 활성화된 상태입니다.

   * 명령 프롬프트 또는 PowerShell
    **  명령 프롬프트에서 systeminfo 명령을 실행합니다.

> systeminfo
..(생략)..
Hyper-V 요구 사항:       하이퍼바이저가 검색되었습니다.

    **  결과에서 "펌웨어에 가상화 사용: 예" 또는 **"하이퍼바이저가 검색되었습니다."**가 표시되면 가상화가 활성화된 것입니다.

   * PowerShell에서 아래 명령을 실행할 수 있습니다:

> Get-ComputerInfo -property "HyperV*"
HyperVisorPresent                                 : True
HyperVRequirementDataExecutionPreventionAvailable :
HyperVRequirementSecondLevelAddressTranslation    :
HyperVRequirementVirtualizationFirmwareEnabled    :
HyperVRequirementVMMonitorModeExtensions          :

    **  HyperVisorPresent: True 또는 HyperVRequirementVirtualizationFirmwareEnabled: True가 표시되면 가상화가 활성화된 것입니다.

 

  > 리눅스 OS

# egrep --color -i "svm|vmx" /proc/cpuinfo

"vmx"(Intel-VT) 또는 "svm"(AMD-V)가 출력되면 가상화가 활성화된 것입니다.

◎ 결론
이제 Proxmox 가상 머신 안에서 또 다른 가상 머신이나 컨테이너를 실행할 수 있습니다. KVM, Proxmox, VirtualBox, VMware 등 다양한 하이퍼바이저를 게스트 VM에 설치해 활용할 수 있습니다. 중첩 가상화를 활용하면 개발, 테스트, 교육 등 다양한 환경에서 유연하게 가상화 환경을 구성할 수 있습니다.


반응형

Proxmox VE를 설치 후 업데이트 관련 설정을 변경하지 않으면 OS는 업데이트가 가능하지만 Proxmox VE는 제공받지 못합니다. Proxmox VE의 공식 업데이트를 받으려면 반드시 Proxmox의 No-Subscription 저장소(Repository)를 활성화해야 합니다.

 

◎ 저장소(Repository) 활성화 방법

 - /etc/apt/sources.list.d/pve-enterprise.list 는 유료구독용 설정파일이기 때문에 무료로만 이용할 경우 삭제해도 됩니다.

 - /etc/apt/sources.list.d/ceph.list 는 분산스토리지관련 업데이트 설정입니다. 분산스토리지 기능은 무료인데 기능을 사용하면 업데이트 설정을 하지 않는 경우 업데이트가 불가합니다. 분산스토리지 기능을 사용하지 않는 경우 삭제해도 됩니다.
 - /etc/apt/sources.list.d/pve-no-subscription.list 파일을 설정하지 않는 경우 Proxmox 업데이트는 불가하고 OS 업데이트만 가능합니다.

 

[Proxmox 8 release]

# rm -f /etc/apt/sources.list.d/pve-enterprise.list
# rm -f /etc/apt/sources.list.d/ceph.list
# vi /etc/apt/sources.list.d/pve-no-subscription.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription
# apt update && apt dist-upgrade -y

 

 - Debian OS 코드네임이 변경되면 Proxmox 업데이트 설정의 코드네임도 변경해야 합니다.

 - bookworm은 Debian 12의 코드네임입니다. 아래 명령어로 VERSION_CODENAME 항목에서 확인이 가능합니다.

# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

 

 - Proxmox VE 버전은 아래 명령어로 확인이 가능합니다.

# pveversion -v
proxmox-ve: 8.3.0 (running kernel: 6.8.12-4-pve)
pve-manager: 8.3.0 (running version: 8.3.0/c1689ccb1065a83b)
proxmox-kernel-helper: 8.1.0
proxmox-kernel-6.8: 6.8.12-4
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
...(생략)

 

 - Proxmox VE 업데이트 후 비교 결과입니다.

# pveversion -v
proxmox-ve: 8.4.0 (running kernel: 6.8.12-4-pve)
pve-manager: 8.4.1 (running version: 8.4.1/2a5fa54a8503f96d)
proxmox-kernel-helper: 8.1.1
proxmox-kernel-6.8.12-11-pve-signed: 6.8.12-11
proxmox-kernel-6.8: 6.8.12-11
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
...(생략)

 

[Proxmox 9 release]

 - 기존 8버전대에서 9버전대로 업데이트 시 /etc/apt/sources.list를 백업하고 수정합니다.(문제 발생 시 복원 용)

# cat /etc/apt/sources.list
#deb http://ftp.kr.debian.org/debian bookworm main contrib
deb http://ftp.debian.org/debian bookworm main contrib
#deb http://ftp.kr.debian.org/debian bookworm-updates main contrib
deb http://ftp.debian.org/debian bookworm-updates main contrib

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription

# security updates
deb http://security.debian.org bookworm-security main contrib

# cp /etc/apt/sources.list /etc/apt/sources.list.backup

 

 - Debian OS 코드네임을 변경하고 업데이트합니다.

# sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
# sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/pve-enterprise.list
# cat > /etc/apt/sources.list.d/pve-enterprise.sources << EOF
Types: deb
URIs: https://enterprise.proxmox.com/debian/pve
Suites: trixie
Components: pve-enterprise
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

# cat > /etc/apt/sources.list.d/proxmox.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

# cat > /etc/apt/sources.list.d/ceph.sources << EOF
Types: deb
URIs: http://download.proxmox.com/debian/ceph-squid
Suites: trixie
Components: no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg
EOF

# apt update
# apt dist-upgrade

 

 

> 업데이트 완료

 - trixie은 Debian 13의 코드네임입니다. 아래 명령어로 VERSION_CODENAME 항목에서 확인이 가능합니다.

# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.0
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

 

 - Proxmox VE 버전은 아래 명령어로 확인이 가능합니다.

# pveversion -v
proxmox-ve: 9.0.0 (running kernel: 6.14.8-2-pve)
pve-manager: 9.0.3 (running version: 9.0.3/025864202ebb6109)
proxmox-kernel-helper: 9.0.3
proxmox-kernel-6.14.8-2-pve-signed: 6.14.8-2
proxmox-kernel-6.14: 6.14.8-2
proxmox-kernel-6.8.12-13-pve-signed: 6.8.12-13
proxmox-kernel-6.8: 6.8.12-13
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
proxmox-kernel-6.8.4-2-pve-signed: 6.8.4-2
...(생략)

 

반응형

※ 문제 발생 시 웹UI 실행 오류가 발생하니 별도로 백업파일을 생성 후 적용바랍니다.

 

Proxmox에서 로그인 후 "No valid subscription" 팝업이 뜨는 이유는, Proxmox가 유료 구독(Subscription)을 요구하기 때문입니다. Proxmox는 기본적으로 무료로 사용할 수 있지만, 유료 구독이 없을 경우 경고 메시지 팝업이 표시됩니다. 이 메시지는 Proxmox가 공식적으로 제공하는 지원이나 업데이트 서비스를 받을 수 없다는 경고입니다.

◎ 이 문제를 해결하거나 팝업을 제거하는 방법은 2가지가 있습니다. 아래에서 그 방법들을 설명하겠습니다.
1. Proxmox 유료 구독 구매

 - 가장 간단한 방법은 Proxmox의 유료 구독을 구매하는 것입니다. 유료 구독을 구매하면 정식 지원 및 업데이트를 받을 수 있으며, "No valid subscription" 경고 메시지도 더 이상 표시되지 않습니다.

2. 구독 경고 메시지 제거

 - Proxmox의 구독 경고 메시지는 pve-manager라는 웹 관리 인터페이스에 로그인하면 나타납니다. Proxmox는 경고 메시지를 관리하는 데 pve-manager 패키지에서 subscription 관련 부분을 비활성화할 수 있습니다. 경고 메시지를 완전히 숨기려면 해당 경고를 표시하는 스크립트를 비활성화할 수 있습니다. 이 방법은 로그인하더라도 팝업없이 무료로 Proxmox를 사용할 수 있게 해줍니다.

 - 이 방법은 향후 업데이트 시 덮어쓰기가 될 수 있기 때문에 스크립트를 만들고 서비스로 등록해보도록 하겠습니다.
 - 아래는 Proxmox 웹 UI 관련 pve-manager.js 수정 스크립트입니다.

※ 처음 적용은 Proxmox를 완전히 종료 후 재시작하시기 바랍니다.  

 

[PVE 9 버전 테스트 완료]

# vi /usr/local/bin/remove-subscription-warning-safe.sh

#!/bin/bash

# Safer Proxmox subscription warning removal script
# 안전한 Proxmox 구독 경고 제거 스크립트
# Version: 2.1 - Quoting Fix

JSFILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"

# 색상 출력을 위한 설정
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

echo -e "${GREEN}=== Safer Proxmox Subscription Warning Removal Script ===${NC}"
echo "Target file: $JSFILE"
echo

# JavaScript 파일 존재 확인
if [ ! -f "$JSFILE" ]; then
    echo -e "${RED}ERROR: JavaScript file not found: $JSFILE${NC}"
    echo "Please check if Proxmox is properly installed and the path is correct."
    exit 1
fi

echo -e "${YELLOW}WARNING: This script will modify Proxmox system files.${NC}"
echo "Make sure you understand the implications before proceeding."
echo
read -p "Do you want to continue? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
    echo "Operation cancelled."
    exit 0
fi

echo
echo "Starting subscription warning removal..."

# 원본 백업 생성 (한 번만)
if [ ! -f "${JSFILE}.original" ]; then
    cp "$JSFILE" "${JSFILE}.original"
    echo -e "${GREEN}✓ Original backup created: ${JSFILE}.original${NC}"
else
    echo -e "${YELLOW}! Backup already exists: ${JSFILE}.original${NC}"
fi

# 타임스탬프 백업 생성
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
cp "$JSFILE" "${JSFILE}.backup.${TIMESTAMP}"
echo -e "${GREEN}✓ Timestamped backup created: ${JSFILE}.backup.${TIMESTAMP}${NC}"

# 현재 파일 상태 확인
echo
echo "Analyzing current file..."

# 이미 수정된 파일인지 확인
if grep -q "// MODIFIED BY SUBSCRIPTION REMOVAL SCRIPT" "$JSFILE"; then
    echo -e "${YELLOW}! File appears to be already modified by this script${NC}"
    read -p "Do you want to proceed anyway? (y/N): " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        echo "Operation cancelled."
        exit 0
    fi
fi

# 타겟 패턴 존재 확인
if grep -q "res\.data\.status\.toLowerCase() !== 'active'" "$JSFILE"; then
    echo -e "${GREEN}✓ Target pattern found for modification${NC}"

    # 안전한 수정 적용
    echo "Applying safe modification..."

    # 수정 마커 추가 및 패턴 교체
    sed -i.bak "/res\.data\.status\.toLowerCase() !== 'active'/ {
i\\
// MODIFIED BY SUBSCRIPTION REMOVAL SCRIPT - $(date)
s/res\.data\.status\.toLowerCase() !== 'active'/false/g
}" "$JSFILE"

    # sed 작업이 성공했는지 확인
    if [ $? -eq 0 ]; then
        echo -e "${GREEN}✓ Modification applied successfully${NC}"
    else
        echo -e "${RED}✗ Failed to apply modification${NC}"
        # 백업에서 복원
        cp "${JSFILE}.backup.${TIMESTAMP}" "$JSFILE"
        exit 1
    fi

else
    echo -e "${YELLOW}! Target pattern not found or already modified${NC}"
    echo "The file may already be patched or this version is not supported."
fi

# 수정 결과 검증
echo
echo "Verifying modifications..."

# 성공적으로 수정되었는지 확인
if ! grep -q "res\.data\.status\.toLowerCase() !== 'active'" "$JSFILE" && grep -q "false" "$JSFILE"; then
    echo -e "${GREEN}✓ SUCCESS: Subscription check has been disabled${NC}"
    MODIFICATION_SUCCESS=true
else
    echo -e "${RED}✗ WARNING: Changes may not have been applied correctly${NC}"
    MODIFICATION_SUCCESS=false
fi

# 파일 무결성 기본 검사
if grep -q "checked_command: function" "$JSFILE" && grep -q "Proxmox.Utils" "$JSFILE"; then
    echo -e "${GREEN}✓ File structure appears intact${NC}"
else
    echo -e "${RED}✗ WARNING: File structure may be damaged${NC}"
    MODIFICATION_SUCCESS=false
fi

echo
echo "=== Modification Summary ==="
if [ "$MODIFICATION_SUCCESS" = true ]; then
    echo -e "${GREEN}Status: SUCCESS${NC}"
    echo "The subscription warning popup should no longer appear."
else
    echo -e "${RED}Status: FAILED or UNCERTAIN${NC}"
    echo "Please check the file manually or restore from backup."
fi

echo
echo "Backup files created:"
echo "  - Original: ${JSFILE}.original"
echo "  - Timestamp: ${JSFILE}.backup.${TIMESTAMP}"
echo
echo "=== Post-Installation Steps ==="
echo "1. Clear your browser cache (Ctrl+F5 or Ctrl+Shift+R)"
echo "2. Restart pveproxy service (will be done automatically)"
echo "3. Reload the Proxmox web interface"
echo
echo "=== To Restore Original File ==="
echo "Run: cp ${JSFILE}.original $JSFILE && systemctl restart pveproxy.service"
echo

# pveproxy 서비스 재시작
echo "Restarting pveproxy service..."
if systemctl restart pveproxy.service; then
    echo -e "${GREEN}✓ pveproxy.service restarted successfully${NC}"
else
    echo -e "${RED}✗ Failed to restart pveproxy.service${NC}"
    echo "Please restart it manually: systemctl restart pveproxy.service"
fi

echo
echo -e "${GREEN}=== Script Completed ===${NC}"
echo "Please test the web interface and clear your browser cache."
echo
echo -e "${YELLOW}REMINDER:${NC}"
echo "- This modification will be reverted after Proxmox updates"
echo "- Keep the backup files for future restoration"
echo "- Use this modification responsibly"

exit 0

 

실행 권한 부여
# chmod +x remove-subscription-warning-safe.sh

스크립트 실행
# sudo ./remove-subscription-warning-safe.sh

복원방법
# cp /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.original /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

 

 

[PVE 8 버전 테스트 완료]

# vi /usr/local/bin/remove-subscription-warning.sh

#!/bin/bash
# Proxmox subscription warning removal script - Improved version with duplicate prevention

JSFILE="/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js"

if [ -f "$JSFILE" ]; then
    echo "Removing subscription warning..."

    # 백업 생성 (이미 백업이 있으면 건너뛰기)
    if [ ! -f "${JSFILE}.original" ]; then
        cp "$JSFILE" "${JSFILE}.original"
        echo "Original backup created: ${JSFILE}.original"
    fi

    # 타임스탬프 백업도 생성
    cp "$JSFILE" "${JSFILE}.backup.$(date +%Y%m%d_%H%M%S)"

    # 히스토리 확장 임시 비활성화
    set +H

    # 방법 1: 구독 상태 체크를 false로 변경
    if grep -q "data\.status\.toLowerCase() !== 'active'" "$JSFILE"; then
        echo "Applying method 1: subscription status check..."
        sed -i 's/data\.status\.toLowerCase() !== '\''active'\''/false/g' "$JSFILE"
    else
        echo "Method 1 already applied or not needed."
    fi

    # 방법 2: 구독 체크 조건을 false로 만들기
    if grep -q "res === null || res === undefined || !res || res\.data\.status\.toLowerCase() !== 'active'" "$JSFILE"; then
        echo "Applying method 2: subscription check condition..."
        sed -i 's/if (res === null || res === undefined || !res || res\.data\.status\.toLowerCase() !== '\''active'\'') {/if (false) {/g' "$JSFILE"
    else
        echo "Method 2 already applied or not needed."
    fi

    # 히스토리 확장 다시 활성화
    set -H

    # 방법 3: 팝업 메시지가 포함된 라인을 주석 처리
    if grep -q "^[^/]*No valid subscription" "$JSFILE"; then
        echo "Applying method 3: commenting out popup message..."
        sed -i '/No valid subscription/s/^/\/\/ /' "$JSFILE"
    else
        echo "Method 3 already applied or not needed."
    fi

    # 방법 4: Ext.Msg.show를 console.log로 대체하여 팝업 방지
    if grep -q "Ext\.Msg\.show" "$JSFILE"; then
        echo "Applying method 4: replacing Ext.Msg.show..."
        sed -i 's/Ext\.Msg\.show/console.log/g' "$JSFILE"
    else
        echo "Method 4 already applied or not needed."
    fi

    # 방법 5: checked_command 함수 우회
    if grep -q "function(orig_cmd) {" "$JSFILE" && ! grep -q "orig_cmd();" "$JSFILE"; then
        echo "Applying method 5: checked_command bypass..."
        sed -i '/function(orig_cmd) {/a\n\torig_cmd();\n\treturn;' "$JSFILE"
    else
        echo "Method 5 already applied or not needed."
    fi
    echo "Done! Please clear your browser cache."
    echo ""
    echo "To restore original file: cp ${JSFILE}.original $JSFILE && systemctl restart pveproxy.service"
systemctl restart pveproxy.service
else
    echo "JavaScript file not found: $JSFILE"
fi

# chmod +x /usr/local/bin/remove-subscription-warning.sh
# vi /etc/apt/apt.conf.d/99remove-subscription-warning
DPkg::Post-Invoke {"/usr/local/bin/remove-subscription-warning.sh";};
# systemctl restart pveproxy.service

 

반응형

◎ 개요

 - VMware Workstation Pro는 한 대의 컴퓨터에서 여러 운영 체제를 동시에 실행할 수 있는 데스크톱 가상화 소프트웨어로, 스냅샷, 클론, 고급 네트워크 시뮬레이션 등 다양한 기능을 제공합니다.

 - IT 전문가와 개발자들이 소프트웨어 테스트, 네트워크 실습, 다양한 OS 환경 구축 등 목적으로 1999년부터 널리 사용해왔습니다.
 - VMware는 2023년 11월 22일에 브로드컴(Broadcom)에 공식적으로 인수되었습니다. 
 - VMware Workstation Pro와 Fusion Pro가 개인 사용자에게 무료로 제공된다는 정책은 2024년 5월 13일에 공식 발표되었습니다.

 - 이 발표 이후, 개인 사용자는 별도의 라이선스 키 없이 Broadcom 지원 포털에 가입해 제품을 다운로드하고, 설치 시 "Personal Use"를 선택하면 무료로 사용할 수 있게 되었습니다.
 - 상업적 목적 사용자는 연간 구독료(약 $120)가 필요하며, 개인 사용자와 학생은 무료로 이용할 수 있습니다.
 - 기존 Workstation Player와 Fusion Player 제품은 단종되고, Pro 버전이 모든 기능을 포함하게 되었습니다.

 

다운로드 방법

 - Broadcom 등록 페이지를 엽니다.

※ 등록된 회원이신 경우 오른쪽 상단 모서리에 있는 "Login" 버튼을 클릭하세요.

 - 이메일 가입여부를 확인 과정을 완료하세요.

 - 다음 버튼을 클릭하세요. > 인증코드를 확인하세요. > "확인 및 계속" 버튼을 클릭하세요. > 필수 정보를 입력하세요.

 - 계정 생성 버튼을 클릭하세요. > "나중에 하겠습니다" 버튼을 클릭하세요.

 

 - 등록된 회원이신 경우 이메일주소와 패스워드를 입력하세요.

 

- 로그인 후 Close 버튼을 누르세요.

 

 - 구름모양 소프트웨어 메뉴를 열고 VMware Cloud Foundation을 선택합니다 .

 

 - 내 다운로드를 클릭합니다 .

 

 - HERE 글자를 클릭합니다.

 

 - 오른쪽 화면을 아래쪽으로 이동하여 VMware Workstation Pro를 클릭합니다 .

01

 - VMware Workstation Pro 17.0 for Windows를 클립합니다.

 

 - 사용 가능한 최신 버전을 클릭합니다.

 

 - 설치 프로그램을 다운로드하려면 Terms and Conditions를 먼저 클릭한 후 "동의함" 옵션을 선택하세요.

 - 구름모양 다운로드 버튼을 클릭하세요 .

01

 - 소프트웨어 다운로드 시 적용되는 이용 약관관련 정보를 입력합니다.

 

 - 저장 버튼을 클릭하세요 .

 

 

설치 방법

 - VMware Workstation Pro 전체 실행 파일을 두 번 클릭합니다.
 - Next 버튼을 클릭하세요 .

 

 - 동의함 옵션을 선택하세요.

 

 - Hyper-V가 설치되어 있지만 "Windows Hypervisor Platform"(WHP) Windows 기능이 설치되지 않은 경우 "호환 설치" 단계가 표시됩니다.
 - 이 마법사에서 알 수 있듯이 설치 프로그램은 Hyper-V가 활성화되어 있음을 감지했습니다. 하지만 VMware Workstation이 제대로 작동하려면 위에서 언급한 기능을 설치/활성화해야 합니다.
 - "Install Windows Hypervisor Platform (WHP) automatically" 상자를 선택하고 다음을 클릭합니다.

 

 - "Add VMware Workstation console tools into system PATH" 옵션을 선택합니다.

 

 - "Check for product updates on startup" 옵션을 선택하세요.
 - "Join the VMware Customer Experience Improvement Program" 옵션의 선택을 취소합니다.

 - Next 버튼을 클릭하세요 .

 


 - Desktop 옵션을 선택하세요 .
 - Start Menu Programs Folder 옵션을 선택하세요 .

 - Next 버튼을 클릭하세요.

 

 - Insatall 버튼을 클릭하세요

 

 - 설치가 완료될 때까지 기다리세요.

 

 - Finish 버튼을 클릭하세요.

 

 - 예 버튼을 클릭하여 컴퓨터를 다시 시작하세요.

 - license key 관련 팝업에서는 Use VMware Workstation 17 for Personal Use 옵션을 선택하세요.

 - 계속 버튼을 클릭하세요.
 - 마침 버튼을 클릭하세요.

 - 재부팅 후 VMware Workstation Pro 아이콘을 더블클릭하여 실행합니다.

 

반응형

◎ Proxmox란 무엇인가요?
 - Proxmox는 풍부하고 모든 기능을 갖춘 웹 인터페이스를 통해 가상화를 간편하게 관리할 수 있으며, 보기에도 좋고 사용하기에도 편리합니다. 
 - Proxmox VE는 엔터프라이즈 가상화를 위한 오픈소스 하이퍼바이저 플랫폼입니다. 가상 머신, 컨테이너, 소프트웨어 정의 스토리지, 네트워킹, 클러스터링 등 프로덕션 워크로드 실행에 필요한 다양한 기능을 기본으로 제공합니다. Linux 기반이므로 가상화, 컨테이너 및 기타 측면에서 순수한 Linux 환경을 경험할 수 있습니다. 다음과 같은 이점을 확인해 보세요.

◎ 오픈소스 소프트웨어
 - 공급업체에 대한 종속성 없음
 - 리눅스 커널
 - 빠르고 쉬운 설치
 - 직관적인 웹 기반 관리 인터페이스로 사용하기 쉽습니다.
 - 낮은 관리 비용 및 간단한 배포
 - 매우 활발한 커뮤니티
 
무료 Proxmox VE ISO 설치 프로그램을 다운로드 받으세요
 
◎ 설치 단계
 - ISO로 부팅하면 Proxmox VE 8.3 설치가 시작됩니다. "Proxmox VE 설치" 를 선택하세요 .

 
 - 먼저, EULA에 동의하세요.

 
 - 다음으로, 원하는 경우 디스크 파티션을 지정할 수 있습니다.

 
 - 다음으로는 위치와 시간대 구성 설정입니다.

 
 - root 계정 의 비밀번호를 설정하세요 . 또한, Proxmox에서는 이메일 주소를 입력하도록 요구합니다.(Email주소는 기본주소에서 invalid를 local로 변경하면 넘어갑니다.)

 
 - Proxmox 호스트 이름과 네트워크 구성을 구성합니다.
  > DHCP 환경에서는 자동으로 IP정보를 받아옵니다.
  > Hostname주소에서 pve는 원하는 이름으로 변경하시기 바랍니다.
  > Hostname주소는 기본주소에서 invalid를 local로 변경하면 넘어갑니다.

 
 - 마지막으로 "요약" 화면으로 이동합니다. 여기에서 구성을 검토하고 설정을 확인합니다. 그런 다음 "설치"를 클릭합니다 .

 
 - 설치 과정이 시작됩니다.

 
 - 설치가 완료되면 Proxmox 서버가 재부팅됩니다. 아래는 설치 후 재부팅되는 부팅 화면입니다.

 
 - 마지막으로, 설치 과정에서 설정한 root 계정과 비밀번호를 사용하여 Proxmox 웹 GUI에 로그인합니다.

 
 - Proxmox는 오픈 소스이며 무료로 다운로드할 수 있고 다양한 기능을 제공하는 멋진 하이퍼바이저입니다. 최신 Proxmox VE 릴리스를 설치해서 다양한 기능을 경험해보시기 바랍니다.

반응형

◎ 자동화 스크립트

 - 아래 내용을 Notepad에 붙여넣기하고 인코딩을 UTF-8 with BOM으로 변경하고 저장합니다.

# [1. 관리자 권한 확인 및 인코딩]
$OutputEncoding = [System.Text.Encoding]::UTF8
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8

if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    Write-Host "`n[권한] 관리자 권한으로 실행 중입니다..." -ForegroundColor Yellow
    try {
        Start-Process powershell.exe "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    } catch {
        Write-Host "`n[오류] 관리자 권한 승인이 필요합니다." -ForegroundColor Red
        Read-Host "엔터를 누르면 종료합니다."
    }
    exit
}

# --- 시스템 정보 분석 (빌드 번호 기반 윈도우 11 구분) ---
$registryPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
$verInfo = Get-ItemProperty $registryPath
$osName = $verInfo.ProductName
$editionId = $verInfo.EditionID
$buildNumber = [int]$verInfo.CurrentBuild

# 빌드 번호가 22000 이상이면 Windows 11로 정정
if ($buildNumber -ge 22000) {
    $osName = $osName -replace "Windows 10", "Windows 11"
}

$isHome = ($osName -match "Home" -or $editionId -match "Core")
$packagePath = "$env:SystemRoot\servicing\Packages"

# [함수: Hyper-V 제어 로직]
function Set-HyperV {
    param([string]$Action)
    
    switch ($Action) {
        "EnableAndOn" { # [활성화 + 켜기] Home 에디션 타겟
            Write-Host "`n[작업] Hyper-V 활성화 및 켜기를 시작합니다..." -ForegroundColor Cyan
            if ($isHome) {
                Write-Host "[1/2] 패키지 활성화(목록 노출) 중..." -ForegroundColor Yellow
                Get-ChildItem -Path $packagePath -Filter "*Hyper-V*.mum" -Name | ForEach-Object {
                    dism /online /norestart /add-package:"$packagePath\$_" | Out-Null
                }
            }
            Write-Host "[2/2] 기능 켜기 및 하이퍼바이저 부팅 설정 중..." -ForegroundColor Yellow
            dism /online /enable-feature /featurename:Microsoft-Hyper-V /All /LimitAccess
            bcdedit /set hypervisorlaunchtype auto | Out-Null
            Write-Host "[완료] 활성화 및 켜기 작업이 완료되었습니다." -ForegroundColor Green
        }
        
        "DisableAndOff" { # [비활성화 + 끄기] Home 에디션 타겟
            Write-Host "`n[작업] Hyper-V 끄기 및 비활성화를 시작합니다..." -ForegroundColor Red
            Write-Host "[1/2] 기능 끄기 및 하이퍼바이저 부팅 차단 중..." -ForegroundColor Yellow
            dism /online /disable-feature /featurename:Microsoft-Hyper-V /norestart
            bcdedit /set hypervisorlaunchtype off | Out-Null
            
            if ($isHome) {
                Write-Host "[2/2] 패키지 비활성화(목록 제거) 중..." -ForegroundColor Yellow
                Get-ChildItem -Path $packagePath -Filter "*Hyper-V*.mum" -Name | ForEach-Object {
                    dism /online /norestart /remove-package /packagepath:"$packagePath\$_" | Out-Null
                }
            }
            Write-Host "[완료] 끄기 및 비활성화 작업이 완료되었습니다." -ForegroundColor Green
        }

        "On" { # [켜기] Pro/Ent 및 이미 활성화된 Home용
            Write-Host "`n[작업] Hyper-V 기능을 켭니다 (On)..." -ForegroundColor Green
            dism /online /enable-feature /featurename:Microsoft-Hyper-V /All /LimitAccess
            bcdedit /set hypervisorlaunchtype auto | Out-Null
            Write-Host "[완료] 기능을 켰습니다." -ForegroundColor Green
        }

        "Off" { # [끄기] Pro/Ent 및 이미 활성화된 Home용
            Write-Host "`n[작업] Hyper-V 기능을 끕니다 (Off)..." -ForegroundColor Yellow
            dism /online /disable-feature /featurename:Microsoft-Hyper-V /norestart
            bcdedit /set hypervisorlaunchtype off | Out-Null
            Write-Host "[완료] 기능을 껐습니다." -ForegroundColor Green
        }
    }

    Write-Host "`n-------------------------------------------------"
    Write-Host " 작업 완료. 변경 사항 적용을 위해 반드시 재부팅이 필요합니다." -ForegroundColor Cyan
    $confirm = Read-Host " 지금 재부팅하시습니까? (Y/N)"
    if ($confirm -match "y") { Restart-Computer }
}

# [메인 메뉴 루프]
while ($true) {
    Clear-Host
    Write-Host "=================================================" -ForegroundColor White
    Write-Host "      Windows Hyper-V 통합 관리 도구       " -ForegroundColor Cyan
    Write-Host "================================================="
    Write-Host " [OS 정보] $osName ($editionId)" -ForegroundColor Yellow
    Write-Host " [빌드번호] $buildNumber" -ForegroundColor Gray
    Write-Host "-------------------------------------------------"
    
    if ($isHome) {
        Write-Host " <Home 에디션 메뉴>" -ForegroundColor Gray
        Write-Host " 1. [활성화+켜기] Hyper-V 목록 노출 및 즉시 사용" -ForegroundColor Green
        Write-Host " 2. [비활성화+끄기] Hyper-V 사용 중지 및 목록 제거" -ForegroundColor Red
    } else {
        Write-Host " <Pro/Enterprise 에디션 메뉴>" -ForegroundColor Gray
        Write-Host " 1. [켜기] Hyper-V 기능 사용 시작" -ForegroundColor Green
        Write-Host " 2. [끄기] Hyper-V 기능 사용 중지" -ForegroundColor Yellow
    }
    
    Write-Host " <공통 관리 메뉴>" -ForegroundColor Gray
    Write-Host " 3. [재부팅] 시스템 즉시 재부팅"
    Write-Host " 0. 종료"
    Write-Host "================================================="
    $sel = Read-Host "선택"
    switch ($sel) {
        "1" { 
            if ($isHome) { Set-HyperV -Action "EnableAndOn" } 
            else { Set-HyperV -Action "On" } 
        }
        "2" { 
            if ($isHome) { Set-HyperV -Action "DisableAndOff" } 
            else { Set-HyperV -Action "Off" } 
        }
        "3" { Restart-Computer }
        "0" { exit }
    }
}

 

 - powershell을 실행하고 파일이 만들어진 폴더로 이동하고 아래 명령어를 실행합니다.

PS C:\Users\Users\Downloads> powershell -ExecutionPolicy Bypass -File .\Enable_Home_Tools.ps1

 

Enable_Home_Tools.ps1
0.01MB

 

 

Hyper-V는 Microsoft의 가상화 플랫폼입니다. Windows Server 운영 체제에서 사용할 수 있었지만 Microsoft는 Windows 10와 Windows 11에 Hyper-V 기능을 추가했습니다. 

안타깝게도 Hyper-V 기능은 Windows 11 Professional 및 Enterprise 버전에서만 사용할 수 있습니다.

기본적으로 Windows 11 Home Edition에는 설치할 수 없습니다.

그러나 이 문서의 단계를 사용하여 Windows 11 Home Edition에서 Hyper-V를 사용하도록 설정하겠습니다.

 > 시스템이 가상화를 지원하는지 여부 확인

계속 진행하기 전에 시스템이 가상화를 지원하는지 확인해야 합니다.

Hyper-V가 올바르게 작동하려면 하드웨어 가상화가 필요합니다.

만약 지원하지 않다면 Virtualbox 및 VMWare와 같은 다른 가상화 플랫폼을 사용해야 합니다.

Windows 11 컴퓨터에 Hyper-V를 설치하기 위한 네 가지 기본 요구 사항이 있습니다.

   - VM 모니터 모드 확장 

  - 펌웨어에 가상화 사용

  - 두 번째 수준 주소 변환

  - 데이터 실행 방지 사용 가능

명령 프롬프트 ( 실행(WinKEY+R) –> cmd )를 열고 systeminfo 명령을 실행하여 Hyper-V 요구 사항 섹션을 확인할 수 있습니다.

 

 > Windows 11 Home에서 Hyper-V 활성화 Windows 11 Home에서 Hyper-V를 설치하고 활성화하려면 아래 단계를 따라서 진행하면 됩니다. 

  - 텍스트 편집기를 사용하여 install-hyper.bat 와 같이 파일을 만들고 다음을 해당 파일에 복사하고 저장하세요.

pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum > hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL
pause

 

  - 해당 파일을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택합니다. 그러면 설치 스크립트가 실행됩니다. 설치를 완료하는 데 다소 시간이 걸릴 수 있습니다. 완료 전에 종료하지 말고 기다려주세요.

 

  - Y를 눌러 계속합니다. 완료되면 시스템이 다시 시작됩니다.

 

  - 다시 시작하면 Windows 업데이트 화면이 표시됩니다.

  - 다시 시작한 후 Windows 선택적 기능에 Hyper-V 옵션이 표시되는지 확인할 수 있습니다. 

  - 확인하려면 실행(WinKEY+R) – optionalfeatures를 실행하면 됩니다. Hyper-V 및 Hyper-V 관리 도구를 찾을 수 있습니다.

 

  - 시작 메뉴에서 Hyper-V를 검색하여 Windows 11 Home 컴퓨터에서 가상 머신 생성을 시작할 수 있습니다.

 > 시작 메뉴에서 hyper를 검색합니다. 

  - Hyper-V가 컴퓨터 내에 설치되었으며, 이제 Hyper-V를 이용하여 가상 머신을 만들 수 있었습니다.

 

 > Windows 11 Home에서 Hyper-V 비활성화
컴퓨터에서 이 기능을 원하지 않는 경우 언제든지 비활성화할 수 있습니다. 비활성화하는 방법에는 두 가지가 있습니다.
  - 첫번째 방법
   . 실행(WinKEY+R) –> optionalfeatures로 실행하면 선택적 기능 창이 열립니다.
   . Hyper-V 및 Hyper-V 관리 도구 선택을 취소합니다..
   . 컴퓨터 재시작
  - 두 번째 방법
   . 명령 줄을 사용하여 이 작업을 수행할 수도 있습니다.

 PS C:\> Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
 또는
 C:\> DISM /Online /Disable-Feature /All /FeatureName:Microsoft-Hyper-V

 

Hyper-V는 개인 사용자에게도 매우 유용합니다.

  - 새 소프트웨어 테스트 및 평가

    호스트 시스템을 손상시키지 않고 새 소프트웨어를 테스트하고 평가하는 데 사용할 수 있고,

  - 은행/증권 등 금융 사이트, 국가기관 민원업무 사이트 등

    은행 사이트나 정부 사이트 접속 시 강제설치 프로그램을 가상 머신 내 설치하여 접속할 수도 있습니다.

 

 

반응형

Hyper-V에서 고정 IP를 사용하는 방법을 알아보겠습니다.

◎ 1단계: 내부 가상 스위치 생성
관리자권한으로 PowerShell을 열고 아래 명령을 실행합니다. 
"SWITCHNAME"을 원하는 스위치 이름으로 변경합니다. 저는 "NAT-Switch"라고 했습니다.

 PS C:\> New-VMSwitch -Name SWITCHNAME -SwitchType Internal


◎ 2단계: 인터페이스 색인 번호 가져오기(ifIndex)
다음으로 1단계에서 생성한 가상 스위치의 인덱스 번호를 찾아야 합니다. 아래 명령을 실행합니다.
저의 경우 인덱스 번호는 118입니다.(MacAddress 는 가렸습니다.)

 PS C:\> Get-NetAdapter

 

◎ 3단계: NAT 게이트웨이 구성
10.10.10.0/24 네트워크에 VM을 구성하겠습니다.
이 네트워크의 첫 번째 주소를 게이트웨이로 사용하겠습니다.
게이트웨이는 네트워크 외부로 트래픽을 보낼 수 있도록 VM에서 사용됩니다.

 PS C:\> New-NetIPAddress -IPAddress 10.10.10.1 -PrefixLength 24 -InterfaceIndex 118


◎ 4단계: NAT 네트워크 구성
이제 NAT하려는 네트워크를 구성하면됩니다.
10.10.10.0/24 네트워크를 NAT하기 위해 아래 명령을 실행합니다.
NAT-NETWORK-NAME은 원하는 이름으로 지정합니다. 저는 "NAT-Switch-Outside"라고 했습니다.

 PS C:\> New-NetNat -Name NAT-NETWORK-NAME -InternalIPInterfaceAddressPrefix 10.10.10.0/24


◎ 5단계: 새 가상 스위치로 VM 구성
Hyper-v에서 VM에 대한 설정화면에서 네트워크 어댑터를 선택하고 새 가상 스위치를 사용하도록 변경합니다.


◎ 6단계: VM 네트워크 설정
이제 4단계에서 구성한 네트워크의 IP 주소로 VM을 구성합니다.

저의 경우에는 위에서 10.10.10.0/24 네트워크로 설정했습니다.
VM에 IP 10.10.10.10 을, 게이트웨이 10.10.10.1을 부여하겠습니다.

DNS는 KT DNS 168.126.63.1와 구글 DNS 8.8.8.8을 부여하겠습니다.


◎ 기타
> NAT 설정 보기
기존 NAT 설정을 보려면 아래 명령을 실행하면 됩니다.

 PS C:\> Get-NetNat


> Hyper-V 가상 스위치 보기
Hyper-V 가상 스위치를 보려면 아래 명령을 실행하면 됩니다.

 PS C:\> Get-VMSwitch

반응형

Proxmox VE(Virtual Environment,가상 환경)는 사용자가 가상 ​​머신(VM) 및 컨테이너를 효율적으로 관리할 수 있도록 하는 오픈 소스 서버 가상화 플랫폼입니다. LXC(Linux Containers)를 사용하여 KVM 기반 가상화와 컨테이너 기반 가상화를 결합하여 엔터프라이즈급 가상화를 위한 포괄적인 솔루션을 제공합니다. Proxmox VE는 가상화 리소스의 관리를 단순화하고 고가용성, 라이브 마이그레이션, 클러스터링 및 스토리지 관리와 같은 기능을 제공하는 웹 기반 그래픽 사용자 인터페이스(GUI)를 제공합니다.

 

다음은 Proxmox VE를 다른 두 가지 인기 있는 가상화 플랫폼인 VMware ESXi 및 Hyper-V와 비교한 표입니다.

Feature Proxmox VE VMware ESXi Hyper-V
Cost Open-source and free Commercial, with a free limited version Included with Windows Server, requires licensing
Virtualization Support KVM and LXC
(Linux Containers)
ESXi hypervisor Hyper-V hypervisor
Management Interface Web-based GUI Web-based GUI
(vSphere Client)
Windows-based GUI
(Hyper-V Manager)
High Availability Built-in HA clustering and automatic failover Requires additional vCenter Server and licensing Requires additional clustering software and configuration
Live Migration Built-in live migration support Requires additional vCenter Server and licensing Requires additional clustering software and configuration
Storage Management Integrated storage management with ZFS support Supports various storage options and third-party plugins Supports various storage options and third-party plugins
Scalability Supports large-scale deployments and clustering Supports large-scale deployments and clustering Supports large-scale deployments and clustering
Community Support Active and helpful community Extensive resources and community support Good community support
Ecosystem Integration Limited integration with third-party solutions Extensive ecosystem and integration options Good ecosystem and integration options
Compatibility Supports various operating systems and virtual appliances Broad compatibility with different hardware configurations Limited to Windows and specific Linux distributions

Proxmox VE, VMware ESXi 및 Hyper-V 중에서 선택하는 것은 환경의 특정 요구 사항, 예산 제약, 전문성 수준 및 통합 요구 사항을 비롯한 다양한 요인에 따라 달라집니다. 각 플랫폼에는 고유한 강점과 약점이 있으므로 특정 사용 사례와 선호도에 따라 선택하는 것이 좋습니다.

반응형

+ Recent posts