Azure

Hyper-V 에서 Azure 상의 Migrate 진행했으나 강제 제거후 오류

ravon 2025. 9. 23. 10:47

 

 

Azure 상에서 Migrate 진행했던 머신을 강제로 삭제 했다. 그러니 Hyper-V 에서 머신이 실행되지 않는다.

이걸 ChatGPT 에 물어보니 여러거지 방안에서 해결.

역시 AI 세상이구만.

 

 

# Hyper-V 상에서 진행할려니 버튼이 비활성화되어 있어서 PowerShell 로 진행.

 

 

# 아래 로그를 보면 알겠지만 뭐든 안먹히는 상태이다.

 

# chatgtp 에 물어보니 한방에 해결됬다.

 

 

$vmName = "WinServe2019"

# WMI 네임스페이스
$ns = "root\virtualization\v2"

# 대상 VM 객체
$vm = Get-CimInstance -Namespace $ns -ClassName Msvm_ComputerSystem -Filter "ElementName='$vmName'"
if (-not $vm) { throw "VM을 찾을 수 없습니다: $vmName" }

# ReplicationService 핸들
$repSvc = Get-CimInstance -Namespace $ns -ClassName Msvm_ReplicationService

# 해당 VM의 복제 관계(Primary/Provider 관계) 조회
$rels = Get-CimInstance -Namespace $ns -ClassName Msvm_ReplicationRelationship |
        Where-Object { $_.SystemElement -eq $vm.__Path -or $_.SyncedElement -eq $vm.__Path }

if ($rels) {
  foreach ($rel in $rels) {
    # RemoveReplicationRelationshipEx가 있으면 우선 사용
    $params = @{
      ClassName   = $repSvc.CimClass
      MethodName  = "RemoveReplicationRelationshipEx"
      Arguments   = @{
        ComputerSystem         = $vm
        ReplicationRelationship= [string]$rel
      }
      Namespace   = $ns
    }
    try {
      Invoke-CimMethod @params -ErrorAction Stop | Out-Null
    } catch {
      # 구버전이면 기본 RemoveReplicationRelationship 시도
      Invoke-CimMethod -InputObject $repSvc -MethodName "RemoveReplicationRelationship" `
        -Arguments @{ ComputerSystem = $vm } -ErrorAction Stop | Out-Null
    }
  }
  Write-Host "복제 관계 제거 완료"
} else {
  Write-Host "복제 관계가 조회되지 않았습니다(이미 제거되었을 수 있음)."
}

# 이제 Hyper-V 측 상태 정리
Stop-VMReplication -VMName $vmName -ErrorAction SilentlyContinue
Start-VM -Name $vmName

 

 

- ChatGPT 의 답변.

위 스크립트는 Hyper-V의 WMI 클래스를 직접 호출해 ASR가 남겨둔 ‘복제 관계’ 를 제거합니다. 해당 기법은 커뮤니티/블로그에서도 동일 원리로 소개되어 있고, 증상(“prepared for failover 때문에 부팅 불가”)이 정확히 일치합니다.

 

- 참고 링크까지.

https://charbelnemnom.com/hyper-v-prevented-starting-virtual-machine-asr/?utm_source=chatgpt.com