פתרון בעיות במכונות VM של Windows

במאמר הזה נתאר את השיטות והכלים שאפשר להשתמש בהם כדי לפתור את הבעיות הבאות בהפעלה של מכונות וירטואליות (VM) של Windows ב-Compute Engine:

  • אתם לא מצליחים להתחבר למכונה הווירטואלית באמצעות RDP, ופתרון הבעיות לא פותר את בעיית החיבור.

  • מסך ההתחברות לא מופיע בצילום המסך של המכונה הווירטואלית, ונראה שהמכונה הווירטואלית לא מתקדמת או מבצעת עדכון.

  • נתקלתם בשגיאת מסך כחול, במכונה וירטואלית שקפאה או במכונה וירטואלית שמתנהגת באופן לא יציב במהלך פעולה רגילה.

אם נתקלתם בבעיות בהתחברות למכונות וירטואליות של Windows, תוכלו להיעזר במאמר פתרון בעיות ב-RDP.

כדי לזהות למה מכונה לא מצליחה לבצע אתחול, ולזהות את הסיבה באופן אוטומטי, קראו את המאמר פתרון בעיות באתחול של מכונות Windows Compute Engine.

אם נתקלתם בבעיות שקשורות להעברה למכונה וירטואלית מדור שלישי, תוכלו לעיין במאמר בעיות מוכרות ב-Windows.

לפני שמתחילים

  • במאמר פתרון בעיות מתקדם של Microsoft לבעיות באתחול של Windows מוסבר איך פותרים בעיות בתהליך האתחול של Windows.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל.

שימוש בתפריט Advanced Boot Options (אפשרויות אתחול מתקדמות)

אם Windows לא מופעלת כמו שצריך, אפשר להשתמש בתפריט Advanced Boot Options כדי להיכנס למצב בטוח או להשלים תיקון אונליין של מערכת ההפעלה. מידע נוסף זמין במאמר אפשרויות הפעלה מתקדמות.

כדי להיכנס לתפריט Advanced Boot Options ב-VM של Windows:

  1. אם עדיין לא עשיתם זאת, הפעילו מכשיר תצוגה למכונה הווירטואלית.
  2. מתחברים למסוף הטורי האינטראקטיבי של ה-VM.

  3. מאפסים את המכונה הווירטואלית באחת מהשיטות הבאות:

    המסוף

    1. נכנסים לדף VM instances במסוף Google Cloud .

      כניסה לדף VM instances

    2. לוחצים על שם המכונה הווירטואלית שרוצים לאפס. הדף עם הפרטים של המכונה הווירטואלית ייפתח.

    3. לוחצים על הלחצן Reset כדי להפעיל מחדש את ה-VM.

    gcloud

    משתמשים בפקודה gcloud compute instances reset כדי לאפס את ה-VM:

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

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט שמכיל את המכונה הווירטואלית
    • ‫ZONE: שם האזור שבו נמצאת ה-VM
    • ‫VM_NAME: השם של ה-VM

    שורת הפקודה

    בזמן שהחיבור לקונסולה הטורית האינטראקטיבית פתוח, פותחים סשן של שורת הפקודה ומריצים את הפקודה הבאה. מידע נוסף על פתיחת סשן של שורת הפקודה זמין במאמר פתיחת שורת הפקודה ב-Windows SAC.

    shutdown /r /t 0
    

    התפריט של Windows Boot Manager נפתח:

    תפריט Windows Boot Manager

  4. לפני שהספירה לאחור מסתיימת, מבצעים את הפעולות הבאות:

    1. מוודאים שהקונסולה הטורית האינטראקטיבית היא החלון הפעיל.

    2. לוחצים על המקש Esc במקלדת.

    3. לוחצים על המקש 8 במקלדת.

    תפריט אפשרויות האתחול המתקדמות נפתח:

    תפריט אפשרויות אתחול מתקדמות

  5. משתמשים במקשי החיצים במקלדת כדי לבחור אפשרות, ואז פותחים אותה בלחיצה על מקש Enter.

הפעלת התפריט של Windows Boot Manager

אפשר להגדיר את התפריט של Windows Boot Manager כך שיוצג כשמפעילים מחדש מכונה של Windows VM. כדי להפעיל את התפריט של מנהל האתחול של Windows:

מתחברים למכונה הווירטואלית ופותחים את שורת הפקודה עם הרשאת אדמין. אם לא מצליחים להתחבר ל-VM, מוסיפים את השלבים הבאים כערכים לwindows-startup-script-cmd או לwindows-startup-script-ps1 סקריפט לטעינה בזמן ההפעלה במקום להריץ אותם ישירות.

שורת הפקודה

  1. כדי להפעיל את התפריט של Windows Boot Manager בזמן ההפעלה ולהוסיף זמן קצוב של 15 שניות, מריצים את הפקודות הבאות:

    bcdedit /set {bootmgr} displaybootmenu yes
    
    bcdedit /set {bootmgr} timeout 15
    
  2. כדי להפעיל מחדש את ה-VM ולהציג את התפריט של מנהל האתחול של Windows במסוף הטורי, משתמשים בפקודה הבאה:

    shutdown -r -t 0
    

PowerShell

  1. כדי להפעיל את התפריט של Windows Boot Manager בזמן ההפעלה ולהוסיף זמן קצוב של 15 שניות, מריצים את הפקודות הבאות:

    bcdedit /set '{bootmgr}' displaybootmenu yes
    
    bcdedit /set '{bootmgr}' timeout 15
    
  2. כדי להפעיל מחדש את ה-VM ולהציג את התפריט של מנהל האתחול של Windows במסוף הטורי, משתמשים בפקודה הבאה:

    shutdown -r -t 0
    

השלמת תיקון אופליין

אם ה-VM לא מופעל כמו שצריך והשימוש בתפריט האתחול המתקדם לא פתר את הבעיה, נסו לבצע תיקון אופליין באמצעות מכונה וירטואלית תקינה של Windows לשחזור, עם קובץ snapshot של דיסק האתחול של ה-VM הבעייתי. שימוש בתמונת מצב נותן לכם עותק גיבוי שאפשר לשנות בלי לשנות את המצב של ה-VM המקורי.

  1. יוצרים קובץ snapshot של דיסק האתחול של המכונה הווירטואלית הבעייתית.

  2. יוצרים דיסק באמצעות קובץ ה-snapshot.

  3. יוצרים מכונה וירטואלית עם דיסק נוסף שהוא לא דיסק אתחול, באמצעות הדיסק החדש שנוצר. ה-VM לשחזור צריך לעמוד בקריטריונים הבאים:

    • המכונה הווירטואלית לשחזור צריכה להיות באותו אזור שבו נמצא הדיסק שנוצר.
    • גם המכונה הווירטואלית לשחזור צריכה להשתמש בתמונת Windows Server.
    • תמונת המקור של דיסק האתחול של המכונה הווירטואלית לשחזור צריכה להיות שונה מתמונת המקור של דיסק האתחול של המכונה הווירטואלית הבעייתית.
  4. עכשיו אפשר להשתמש בכלים ובכלי העזר של Windows כדי לנסות לתקן אופליין את הדיסק הנוסף שמחובר. במאמרים הבאים מוסבר איך לתקן את ה-VM אופליין:

  5. אם התיקון אופליין הסתיים בהצלחה, מעדכנים את דיסק האתחול של המכונה הווירטואלית הבעייתית לדיסק האתחול החדש שתוקן.

  6. אופציונלי: מוחקים את המשאבים הנוספים כשכבר לא צריכים אותם:

פתרון בעיות שקשורות לשגיאות במסך הכחול

במערכת ההפעלה Windows יכולה להופיע שגיאת קוד עצירה או מסך כחול, שנקראת גם "מסך המוות הכחול". אם מתרחשת שגיאת מסך כחול במכונה וירטואלית, המכונה מפסיקה לפעול וצריך להפעיל אותה מחדש כדי להמשיך בפעולות הרגילות.

אם אתם חושבים שייתכן שהתרחשה שגיאת מסך כחול, אתם יכולים לאשר זאת על ידי זיהוי נוכחות של שגיאות באמצעות אחת או יותר מהשיטות הבאות:

יציאה טורית 1

  1. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על שם המכונה הווירטואלית שאת היומנים שלה רוצים להציג. הדף עם הפרטים של המכונה הווירטואלית ייפתח.

  3. בקטע Logs, לוחצים על יציאה טורית 1.

  4. דוח קריסות שדומה לדוח הבא מאשר שגיאת מסך כחול:

    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. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  2. לוחצים על שם המכונה הווירטואלית שאת היומנים שלה רוצים להציג. הדף עם הפרטים של המכונה הווירטואלית ייפתח.

  3. בקטע Logs, מרחיבים את האפשרות More ולוחצים על יציאה טורית 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.
    

במאמר wevtutil מוסבר איך להתאים אישית שאילתות ב-wetutil.

תמונת מצב של דיסק

אם המכונה הווירטואלית כבר לא פועלת, או אם השיטות האחרות לא עזרו. אתם יכולים לבדוק את דיסק האתחול של המכונה הווירטואלית שחשודה במסך הכחול באמצעות מכונה וירטואלית משנית. שימוש בתמונת מצב מספק עותק גיבוי שאפשר לשנות בלי לשנות את המצב של ה-VM המקורי.

  1. יוצרים קובץ snapshot של דיסק האתחול של ה-VM שחשוד במסך הכחול.

  2. יוצרים דיסק באמצעות קובץ ה-snapshot.

  3. יוצרים מכונה וירטואלית עם דיסק נוסף שהוא לא דיסק אתחול, באמצעות הדיסק החדש שנוצר מהמכונה הווירטואלית החשודה. ה-VM לשחזור צריך לעמוד בקריטריונים הבאים:

    • המכונה הווירטואלית לשחזור צריכה להיות באותו אזור שבו נמצא הדיסק שנוצר.
    • גם המכונה הווירטואלית לשחזור צריכה להשתמש בתמונת Windows Server.
    • תמונת המקור של דיסק האתחול של המכונה הווירטואלית לשחזור צריכה להיות שונה מתמונת המקור של דיסק האתחול של המכונה הווירטואלית הבעייתית.
  4. מעיינים בדיסק הנוסף ומחפשים את הקבצים הבאים:

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

    התאריך והשעה של הקובץ יכולים לעזור לכם לבדוק אם במכונה החשודה הייתה שגיאת מסך כחול. אפשר להשתמש בקבצים האלה גם לניתוח ולאבחון.

  5. אופציונלי: מוחקים את המשאבים הנוספים כשכבר לא צריכים אותם:

אחרי שקיבלתם את פרטי השגיאה של המסך הכחול, ואולי גם גישה לקובץ ה-dump של הזיכרון, בצעו את שלבי האבחון וההמלצות של מיקרוסופט:

בעיות ברישוי

מערכות ההפעלה של Windows מחדשות את הרישיונות שלהן כל שבעה ימים על ידי התחברות לשרת Key Management Service (KMS). אם אתם מקבלים הודעות על תפוגת תוקף של רישיון או בעיות אחרות שקשורות לרישיונות במכונות הווירטואליות של Windows, בצעו את הפעולות הבאות:

  1. מוודאים שרשת ה-VPC של ה-VM של Windows מוגדרת לאפשר תקשורת עם KMS.

  2. מוודאים שחומת האש של Windows מאפשרת חיבורים יוצאים לשרת ה-KMS:

    • כתובת IP: ‏ 35.190.247.13
    • יציאה: 1688
    • פרוטוקול: TCP

    למידע נוסף על הגדרת כללים של חומת האש המתקדמת של Windows, קראו את המאמר יצירת כלל ליציאה החוצה.

  3. כדי לוודא שהחיבור לשרת KMS הצליח, מריצים את הפקודה הבאה ב-Cloud Shell:

    gcloud network-management connectivity-tests create test-access-to-gcp-kms \
        --source-ip-address=WINDOWS_VM_IP_ADDRESS \
        --destination-ip-address=35.190.247.13 \
        --destination-port=1688 \
        --protocol=TCP \
        --round-trip
    

    כמו שמוצג בתמונה הבאה, הערך Next hop: Internet gateway אמור להופיע בשדה Static route בכרטיס התוצאות של Connectivity Test. אם מוצגת תוצאה אחרת, ההפעלה של Windows תיכשל. תוצאת בדיקת הקישוריות של KMS.. בתוצאה אמור להופיע הסטטוס Reachability והתוצאה Successful.

  4. מריצים את הפקודות הבאות כדי לאשר את המצב הנוכחי של הרישיון, להגדיר את כתובת ה-IP של שרת ה-KMS ולאלץ הפעלה:

    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 ופותחים את Command Prompt כאדמין. אם אי אפשר להשתמש ב-RDP, מוסיפים את השלבים הבאים כערכים למפתח ההפעלה windows-startup-script-cmd.

    2. מגדירים את הגדרות ההפניה האוטומטית הגלובליות של EMS כך שישתמשו ב-COM2, קצב באוד של 115200, ומפעילים את 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. מגדירים את הגדרות ההפניה האוטומטית הגלובליות של EMS כך שישתמשו ב-COM2, קצב באוד של 115200, ומפעילים את EMS.

      bcdedit /emssettings EMSPORT:2 EMSBAUDRATE:115200
      bcdedit /ems on
      
    3. מפעילים מחדש את ה-VM כדי להחיל את ההגדרות המעודכנות. אם אתם משתמשים בסקריפט מטא-נתונים, אל תוסיפו את פקודת הכיבוי.

      shutdown -r -t 0
      

המאמרים הבאים