Windows VM 문제 해결


이 문서에서는 다음 Compute Engine Windows 가상 머신(VM) 인스턴스 부팅 문제를 해결하는 데 사용할 수 있는 메서드 및 도구에 대해 설명합니다.

  • RDP를 사용하여 VM에 연결할 수 없고 문제 해결 중 연결을 확인할 수 없습니다.

  • 로그인 화면이 VM 스크린샷에 나타나지 않았고 VM이 작업을 진행하거나 업데이트를 수행하는 것으로 표시되지 않습니다.

  • 정상 작동 중 블루 스크린 오류, 고정된 화면 또는 잘못 작동하는 VM이 발생했습니다.

Windows VM에 연결하는 중 오류가 발생하는 경우 RDP 문제 해결을 참조하세요.

시작하기 전에

  • Windows 부팅 프로세스의 문제 해결에 대한 자세한 내용은 Windows 부팅 문제에 대한 Microsoft 고급 문제 해결을 참조하세요.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.

    이 페이지의 샘플 사용 방법에 대한 탭을 선택하세요.

    콘솔

    Google Cloud 콘솔을 사용하여 Google Cloud 서비스 및 API에 액세스할 때는 인증을 설정할 필요가 없습니다.

    gcloud

    1. Google Cloud CLI를 설치한 후 다음 명령어를 실행하여 초기화합니다.

      gcloud init
    2. 기본 리전 및 영역을 설정합니다.

고급 부팅 옵션 메뉴 사용

Windows가 올바르게 시작하지 않으면 고급 부팅 옵션 메뉴를 사용하여 안전 모드로 액세스하거나 운영체제의 온라인 복구를 완료합니다. 자세한 내용은 고급 시작 옵션을 참조하세요.

Windows VM에서 고급 부팅 옵션 메뉴에 들어가려면 다음 절차를 완료합니다.

  1. 아직 수행하지 않았으면 VM에 대해 디스플레이 기기를 사용 설정합니다.
  2. VM의 대화형 직렬 콘솔에 연결합니다.

  3. 다음 방법 중 하나를 사용하여 VM을 다시 시작합니다.

    Console

    1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스로 이동

    2. 다시 시작하려는 VM의 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.

    3. 재설정 버튼을 클릭하여 VM을 재부팅합니다.

    gcloud

    gcloud compute instances reset 명령어를 사용하여 VM을 재설정합니다.

    gcloud compute instances reset VM_NAME --zone=ZONE --project=PROJECT_ID
    

    다음을 바꿉니다.

    • PROJECT_ID: VM이 포함된 프로젝트의 ID
    • ZONE: VM이 있는 영역의 이름
    • VM_NAME: VM의 이름

    명령 프롬프트

    대화형 직렬 콘솔에 연결된 상태에서 명령 프롬프트 세션을 열고 다음 명령어를 실행합니다. 명령 프롬프트 세션 열기에 대한 자세한 내용은 Windows SAC에서 명령 프롬프트 열기를 참조하세요.

    shutdown /r /t 0
    

    Windows 부팅 관리자 메뉴가 열립니다.

    Windows 부팅 관리자 메뉴

  4. 카운트다운이 만료되기 전 다음 단계를 완료합니다.

    1. 대화형 직렬 콘솔이 활성 창인지 확인합니다.

    2. 키보드에서 Esc 키를 누릅니다.

    3. 키보드에서 숫자 8 키를 누릅니다.

    고급 부팅 옵션 메뉴가 열립니다.

    고급 부팅 옵션 메뉴

  5. 키보드에서 화살표 키를 사용하여 옵션을 선택한 후 Enter 키를 눌러 엽니다.

Windows 부팅 관리자 메뉴 사용 설정

Windows VM 인스턴스를 재부팅할 때 표시되도록 Windows 부팅 관리자 메뉴를 구성할 수 있습니다. Windows 부팅 관리자 메뉴를 사용 설정하려면 다음을 수행합니다.

VM에 연결하고 관리 액세스 권한으로 명령 프롬프트를 엽니다. VM에 연결할 수 없는 경우 후속 단계를 직접 실행하는 대신 windows-startup-script-cmd 또는 windows-startup-script-ps1 시작 스크립트에 값으로 추가합니다.

명령 프롬프트

  1. 시작 시 Windows 부팅 관리자 메뉴를 사용 설정하고 15초 제한 시간을 추가하려면 다음 명령어를 실행합니다.

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 15
    
  2. 다음 명령어를 사용하여 직렬 콘솔에서 VM을 재부팅하고 Windows 부팅 관리자 메뉴를 표시하려면 다음 안내를 따르세요.

    shutdown -r -t 0
    

PowerShell

  1. 시작 시 Windows 부팅 관리자 메뉴를 사용 설정하고 15초 제한 시간을 추가하려면 다음 명령어를 실행합니다.

    bcdedit /set '{bootmgr}' displaybootmenu yes
    
    
    bcdedit /set '{bootmgr}' timeout 15
    
  2. 다음 명령어를 사용하여 직렬 콘솔에서 VM을 재부팅하고 Windows 부팅 관리자 메뉴를 표시하려면 다음 안내를 따르세요.

    shutdown -r -t 0
    

오프라인 복구 완료

VM이 올바르게 시작되지 않고 고급 부팅 메뉴를 사용하여 문제를 해결할 수 없는 경우, 문제가 발생한 VM의 부팅 디스크의 스냅샷 복구를 위해 작동되는 Windows VM 인스턴스를 사용하여 오프라인 복구를 수행해 보세요. 스냅샷을 사용하면 원래 VM 상태를 변경하지 않고도 수정할 수 있는 백업 복사본이 제공됩니다.

  1. 문제가 발생한 VM의 부팅 디스크의 스냅샷을 만듭니다.

  2. 이 스냅샷을 사용하여 디스크를 만듭니다.

  3. 새로 만든 디스크를 사용하여 추가적인 비부팅 디스크로 VM을 만듭니다. 복구 VM은 다음 조건을 충족해야 합니다.

    • 복구 VM은 생성된 디스크와 동일한 영역에 있어야 합니다.
    • 복구 VM에는 또한 Windows Server 이미지가 사용되어야 합니다.
    • 복구 VM의 부팅 디스크의 소스 이미지는 문제가 발생한 VM의 부팅 디스크의 소스 이미지와 달라야 합니다.
  4. 이제 Windows 도구 및 유틸리티를 사용하여 추가적으로 연결된 디스크에서 오프라인 복구를 시도할 수 있습니다. VM의 오프라인 복구를 완료하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.

  5. 오프라인 복구가 성공적으로 완료되었으면 문제가 발생한 VM의 부팅 디스크를 새로 복구된 부팅 디스크로 업데이트합니다.

  6. 선택사항: 더 이상 필요하지 않으면 추가 리소스를 삭제합니다.

블루 스크린 오류 문제 해결

Windows 운영체제에서 BSoD(Blue Screen of Death)라고도 부르는 중지 코드 또는 블루 스크린 오류가 발생할 수 있습니다. VM에 블루 스크린 오류가 발생하면 VM 실행이 중지되고 정상 작동을 재개하기 전 재시작을 수행해야 합니다.

블루 스크린 오류가 발생했다고 생각될 경우 다음 방법 중 하나 이상을 사용해서 오류를 식별하여 이를 확인합니다.

직렬 포트 1

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 로그를 보려는 VM의 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.

  3. 로그에서 직렬 포트 1을 클릭합니다.

  4. 다음과 유사한 스택 trace 덤프가 블루 스크린 오류를 확인합니다.

    ntoskrnl.exe [0xFFFFF802C9606000, 0xFFFFF802C9E23000]
    netbios.sys [0xFFFFF80E98430000, 0xFFFFF80E98442000]
    volmgr.sys [0xFFFFF80E97E40000, 0xFFFFF80E97E58000]
    NTFS.sys [0xFFFFF80E98060000, 0xFFFFF80E98293000]
    crashdmp.sys [0xFFFFF80E986C0000, 0xFFFFF80E986D9000]
    pvpanic.sys [0xFFFFF80E99030000, 0xFFFFF80E9903C000]
    myfault.sys [0xFFFFF80E9A570000, 0xFFFFF80E9A578000]
    Dumping stack trace:
    0xFFFFF80E990317C7 (pvpanic.sys+0x17C7)
    0xFFFFF80E990316D3 (pvpanic.sys+0x16D3)
    0xFFFFF802C97D9681 (ntoskrnl.exe+0x1D3681)
    0xFFFFF802C97D8A1F (ntoskrnl.exe+0x1D2A1F)
    0xFFFFF802C97633F4 (ntoskrnl.exe+0x15D3F4)
    0xFFFFF802C9773329 (ntoskrnl.exe+0x16D329)
    0xFFFFF802C976F152 (ntoskrnl.exe+0x169152)
    0xFFFFF80E9A572794 (myfault.sys+0x2794)
    Current Process: notmyfault64.e
    

직렬 포트 2

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 로그를 보려는 VM의 이름을 클릭합니다. VM 인스턴스 세부정보 페이지가 열립니다.

  3. 로그에서 더보기를 확장한 후 직렬 포트 2(Console)를 클릭합니다.

  4. 인스턴스의 직렬 포트를 검토하고 다음과 비슷한 이 출력을 찾습니다.

    !SAC>
    Your PC ran into a problem and needs to restart.
    If you call a support person, give them this info:
    UNEXPECTED_KERNEL_MODE_TRAP
    
    myfault.sys
    
    0x0000000000000008
    0xFFFFC6812AB94F70
    0xFFFFC6812E38EFF0
    0xFFFFF80E9A572794
    
    We're just collecting some error info, and then we'll restart for you.
    100% complete
    

명령 프롬프트

  1. 인스턴스에 연결하고 관리 액세스 권한으로 명령 프롬프트를 엽니다.

  2. 가장 최근의 블루스크린 이벤트를 표시하려면 다음 명령어를 실행합니다.

    wevtutil qe System "/q:*[System [(EventID=1001)]]" /rd:True /c:1 /f:Text
    
  3. 다음과 비슷한 출력을 검토합니다.

    Event[0]:
      Log Name: System
      Source: Microsoft-Windows-WER-SystemErrorReporting
      Date: 2021-04-14T08:53:52.933
      Event ID: 1001
      Task: N/A
      Level: Error
      Opcode: N/A
      Keyword: Classic
      User: N/A
      User Name: N/A
      Computer: WINDOWS
      Description:
    The computer has rebooted from a bugcheck.  The bugcheck was: 0x1000007f (0x
    0000000000000008, 0xffffc6812ab94f70, 0xffffc6812e38eff0, 0xfffff80e9a572794
    ). A dump was saved in: C:\Windows\Minidump\041421-12656-01.dmp. Report Id:
    a5710c98-a577-4b3e-a3c9-2fc0aa4e5d83.
    

wetutil 쿼리 맞춤설정에 대한 자세한 내용은 wevtutil을 참조하세요.

디스크 스냅샷

VM이 더 이상 작동하지 않거나 다른 방법이 성공하지 않는 것으로 확인된 경우에는 보조 VM을 사용하여 의심되는 블루 스크린 VM의 부팅 디스크를 조사할 수 있습니다. 스냅샷을 사용하면 원래 VM 상태를 변경하지 않고도 수정할 수 있는 백업 복사본이 제공됩니다.

  1. 의심되는 블루 스크린 VM의 부팅 디스크의 스냅샷을 만듭니다.

  2. 이 스냅샷을 사용하여 디스크를 만듭니다.

  3. 의심되는 VM의 새로 만든 디스크를 사용하여 추가적인 비부팅 디스크로 VM을 만듭니다. 복구 VM은 다음 조건을 충족해야 합니다.

    • 복구 VM은 생성된 디스크와 동일한 영역에 있어야 합니다.
    • 복구 VM에는 또한 Windows Server 이미지가 사용되어야 합니다.
    • 복구 VM의 부팅 디스크의 소스 이미지는 문제가 발생한 VM의 부팅 디스크의 소스 이미지와 달라야 합니다.
  4. 추가 디스크를 살펴보고 다음 파일을 찾습니다.

    %SystemRoot%\Memory.dmp
    %SystemRoot%\Minidump\DATE-TIME-NUM.dmp
    

    파일의 날짜 및 시간은 의심되는 인스턴스에 블루 스크린 오류가 발생했는지 여부를 확인하는 데 도움이 될 수 있습니다. 이러한 파일은 분석 및 진단에도 사용될 수 있습니다.

  5. 선택사항: 더 이상 필요하지 않으면 추가 리소스를 삭제합니다.

블루 스크린 오류 정보를 가져오고 선택적으로 메모리 덤프 파일에 대한 액세스 권한을 획득한 후 Microsoft에서 제공된 대로 진단 단계 및 권장사항을 따릅니다.

라이선스 문제

Windows 운영체제는 키 관리 서비스(KMS) 서버에 연결하여 7일마다 라이선스를 갱신합니다. Windows VM에서 라이선스 만료 또는 라이선스와 관련된 다른 문제에 관한 메시지를 받는 경우 다음을 수행하세요.

  1. Windows VM의 VPC 네트워크가 KMS와 통신을 허용하도록 구성되었는지 확인합니다.

  2. Windows 방화벽이 KMS 서버에 대한 아웃바운드 연결을 허용하는지 확인합니다.

    • IP 주소: 35.190.247.13
    • 포트: 1688
    • 프로토콜: TCP

    Windows 고급 방화벽 규칙에 대한 자세한 내용은 아웃바운드 포트 규칙 만들기를 참조하세요.

  3. 다음 명령어를 실행하여 KMS 서버에 대한 연결이 성공하는지 테스트합니다.

    powershell.exe Test-NetConnection 35.190.247.13 -Port 1688
    
  4. 다음 명령어를 실행하여 라이선스의 현재 상태를 확인하고, KMS의 서버 IP 주소를 설정하고, 활성화를 적용합니다.

    cscript \windows\system32\slmgr.vbs /dlv
    
    cscript \windows\system32\slmgr.vbs /skms 35.190.247.13:1688
    
    cscript \windows\system32\slmgr.vbs /ato
    

대화형 직렬 콘솔 문제 해결

  1. 직렬 콘솔 액세스를 위한 기본 요건을 충족하는지 확인합니다.

  2. 응급 관리 서비스를 사용 설정합니다. EMS가 사용 중지되어 있으면 직렬 콘솔에서 키보드 입력을 가져오지 않고 깜박이는 커서가 있는 빈 화면만 표시합니다.

    명령 프롬프트

    1. RDP를 사용하여 VM에 연결하고 관리자 권한으로 Command Prompt를 엽니다. RDP를 사용할 수 없는 경우 후속 단계를 windows-startup-script-cmd 시작 키에 값으로 추가합니다.

    2. 보 레이트 115200으로 COM2를 사용하도록 전역 EMS 리디렉션 설정을 설정하고 EMS를 사용 설정합니다.

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. VM을 재부팅하여 업데이트된 구성을 적용합니다. 메타데이터 스크립트를 사용하는 경우 종료 명령어를 추가하지 마세요.

      shutdown -r -t 0
      

    PowerShell

    1. RDP를 통해 연결하고 관리자 권한으로 Powershell을 엽니다. RDP를 사용할 수 없는 경우 후속 단계를 windows-startup-script-ps1 시작 키에 값으로 추가합니다.

    2. 보 레이트 115200으로 COM2를 사용하도록 전역 EMS 리디렉션 설정을 설정하고 EMS를 사용 설정합니다.

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. VM을 재부팅하여 업데이트된 구성을 적용합니다. 메타데이터 스크립트를 사용하는 경우 종료 명령어를 추가하지 마세요.

      shutdown -r -t 0
      

다음 단계