解决虚拟机问题

Citrix提供两种形式的支持:

  • 免费,自助支持上Citrix网站
  • 付费支持服务,您可以从支持网站购买。

在Citrix技术支持中,您可以在线开通技术支持案例,也可以通过电话联系技术支持中心。

Citrix的支持如果您遇到异常行为、崩溃或其他问题,站点托管的一些资源可能对您有帮助。资源包括:支持论坛、知识库文章和产品文档。

如果您看到不寻常的VM行为,本节旨在帮助您解决这个问题。本节描述应用程序日志的位置,以及可以帮助您的Citrix Hypervisor解决方案提供商跟踪和解决该问题的其他信息。

重要的是:

仅在您的Citrix Hypervisor解决方案提供商或支持团队的指导下,才能完成本节中的故障排除信息。

厂商更新:使用厂商提供的操作系统更新更新您的虚拟机。供应商可能已经为VM崩溃和其他故障提供了修复。

虚拟机崩溃

如果您正在经历VM崩溃,那么内核崩溃转储可能有助于识别问题。如果可能的话,重现崩溃,并遵循这个过程。请咨询您的客户操作系统供应商进一步调查这个问题。

控制Linux虚拟机崩溃行为

对于Linux虚拟机,崩溃转储行为可以通过actions-after-crash参数。可能的取值如下:

价值 描述
保存 使虚拟机处于暂停状态。(分析)
重新启动 没有核心转储,重启虚拟机。(这是默认设置)
摧毁 没有核心转储,让VM停止。

启用保存Linux虚拟机崩溃转储。

  1. 在Citrix Hypervisor服务器上,执行以下命令确定虚拟机的UUID。

    Xe vm-list name-label=name params=uuid——最小
  2. 改变actions-after-crash使用价值xe vm-param-set;以“dom0”为例,执行如下命令:

    vm_uuid =vm_uuid actions-after-crash=preserve 
  3. 在虚拟机崩溃。

    • 对于PV guests,在虚拟机中执行如下命令:

      Echo c | sudo tee /proc/sysrq-trigger 
  4. 在dom0上执行dump core命令。例如,运行:

    Xl dump-core domid filename 

控制Windows虚拟机崩溃行为

Windows虚拟机actions-after-crash参数不能控制核心转储行为。默认情况下,将放入Windows崩溃转储% SystemRoot % \ Minidump在Windows虚拟机中。

可通过菜单路径设置转储级别我的电脑>属性>高级>启动和恢复

处理Linux虚拟机启动问题

有一个实用程序脚本名为xe-edit-bootloader在Citrix Hypervisor服务器控制域中。此脚本可用于编辑关闭Linux虚拟机的引导加载程序配置,并修复阻止虚拟机启动的问题。

要使用这个脚本:

  1. 执行如下命令:

    xe vm-list < !——NeedCopy >

    此命令确保正在处理的虚拟机被关闭(值电源状态停止).

  2. UUID的使用方法如下:

    Xe-edit-bootloader -u linux_vm_uuid -p partition_number 

    或者,您可以使用姓名标签,如下所示:

    Xe-edit-bootloader -n linux_vm_name_label -p partition_number 

    分区号表示磁盘中包含文件系统的分区。对于默认的Debian模板,分区号为1因为它是第一个分区。

  3. 你被丢到一个编辑那里grub.conf加载指定虚拟机的文件。修改后保存并退出编辑器,启动虚拟机。

处理Windows虚拟机UEFI和Secure Boot问题

在启用了uefi的虚拟机上,如何修改XenCenter控制台的屏幕分辨率?

在启用了uefi的虚拟机上,修改XenCenter控制台的屏幕分辨率。

  1. 打开窗口设置
  2. 单击更新和安全按钮
  3. 在恢复选项卡下,按现在重启按钮。
  4. 导航到进行故障排除>高级选项>UEFI固件设置
  5. 新闻重新启动.在重启过程中,UEFI设置菜单加载。
  6. 导航到设备管理器>OVMF平台配置.显示当前屏幕分辨率。
  7. 新闻输入查看屏幕分辨率选项。
  8. 使用方向键选择所需的屏幕分辨率并按下输入
  9. 新闻F10保存更改并确认您的选择。
  10. 重启虚拟机,以更新屏幕分辨率查看XenCenter控制台。

为什么不能创建UEFI安全引导虚拟机?

检查虚拟机操作系统是否支持UEFI Secure Boot模式。在Citrix Hypervisor 8.2中,只有以下操作系统支持安全启动:Windows 10(64位)、Windows Server 2016(64位)、Windows Server 2019(64位)。

检查Citrix Hypervisor服务器是否在UEFI模式下启动。只有在Citrix Hypervisor服务器上配置了Secure Boot证书,才可以创建UEFI Secure Boot虚拟机。安全启动证书仅在UEFI模式下启动的服务器或与UEFI模式在同一池中的服务器上存在。有关更多信息,请参见网络引导

检查uefi引导的Citrix Hypervisor服务器是否包含在硬件兼容性列表.旧服务器在UEFI模式下启动时可能不包含Secure Boot证书。

如何知道创建安全启动虚拟机的Citrix Hypervisor服务器是否有安全启动证书?

如果您的Citrix Hypervisor服务器采用UEFI模式启动,则需要在服务器上提供Secure Boot证书。Citrix Hypervisor服务器与同一资源池中的其他服务器共享证书。如果资源池中有一个UEFI引导服务器,那么池中的所有服务器都有可用的安全引导证书。

在Citrix Hypervisor服务器上执行如下命令:

配置文件pool-param-get param-name=uefi-certificates uuid= | wc -c . exe

如果它返回一个大于零的值,则表示存在安全引导证书。

要检查证书是否有效,请在Citrix Hypervisor服务器上运行以下命令:

KEK. exe pool-param-get uuid=$(xe pool-list——minimal) param-name= ufi -certificates|base64 -d|tar tv -rw-r——r——root/root 1600 2019-11-11 17:09Auth -rw-r——r——root/root 3212 2019-11-11 17:09 db. log日志示例auth < !——NeedCopy >

如果没有Secure Boot证书,请在Citrix Hypervisor服务器上执行以下命令:

ls /sys/firmware/efi/efivars | grep

如果该命令返回空,则无法在该服务器上创建安全引导虚拟机,因为在UEFI固件中缺少所需的证书。

为什么我的UEFI Secure Boot虚拟机无法启动?

如果您在UEFI Secure Boot虚拟机的控制台看到以下消息,并在XenCenter中看到警告,则说明安全启动进程失败,虚拟机无法启动。

UEFI Secure Boot VM未启动的控制台输出。

这通常是由于在VM中安装了未签名的驱动程序造成的。调查哪些驱动程序已更新或安装自上次成功的安全启动。

您可以禁用“Secure Boot”,以“setup”方式启动虚拟机,移除未签名驱动程序。

重要的是:

在此之前,通过快照备份您的虚拟机。

在虚拟机所在的Citrix Hypervisor服务器上执行以下命令,将UEFI Secure Boot虚拟机切换为UEFI Boot虚拟机。

varstore-sb-state < VM_UUID >设置

修复虚拟机后,执行以下命令重新启用Secure Boot:

varstore-sb-state < VM_UUID >用户

Windows虚拟机安全启动是否有问题?

若要诊断Windows虚拟机的问题是否由虚拟机启用了安全引导引起,请禁用安全引导并尝试重现该问题。

在虚拟机所在的Citrix Hypervisor服务器上执行以下命令,关闭“Secure Boot”功能。

varstore-sb-state < VM_UUID >设置

调试完问题后,可以运行以下命令重新启用Secure Boot:

varstore-sb-state < VM_UUID >用户

如何在安全引导虚拟机中运行Windows调试?

不能在安全引导虚拟机上运行Windows调试。要在你的VM上运行Windows调试,你可以做以下事情之一:

  • 执行如下命令切换UEFI启动模式:

    vm-param-set uuid=< uuid > platform:secureboot=false . exe

    重新启动虚拟机。

    调试完问题后,可以运行以下命令重新启用Secure Boot:

    vm-param-set uuid=< uuid > platform:secureboot=auto . exe

    重新启动虚拟机。

  • 该任务指导管理员在虚拟机所在的Citrix Hypervisor服务器上,执行以下命令关闭安全启动功能。

    varstore-sb-state < VM_UUID >设置

    调试完问题后,可以运行以下命令重新启用Secure Boot:

    varstore-sb-state < VM_UUID >用户

为什么我的UEFI VM只显示两个网卡?

即使在创建启用了uefi的VM时设置了两个以上的网卡,当VM首次启动时,您也只能看到两个网卡。虚拟机安装“Citrix VM Tools for Windows”后,可以正常显示此信息。

为什么我的模拟设备显示为不同的类型比预期?

UEFI Secure Boot虚拟机使用NVME和E1000作为仿真设备。然而,当虚拟机第一次启动时,仿真设备显示为不同的类型。虚拟机安装“Citrix VM Tools for Windows”后,可以正常显示此信息。

为什么我不能将我的模板从BIOS模式转换为UEFI或UEFI Secure Boot模式?

只能使用Citrix Hypervisor自带的模板创建具有uefi功能的虚拟机模板。

请勿使用xe template-param-set命令用于已安装了某些内容的模板或从快照创建的模板。不能修改快照的启动方式,修改启动方式会导致虚拟机启动失败。

如何检查UEFI和UEFI Secure Boot变量?

在UEFI或UEFI Secure Boot虚拟机所在的Citrix Hypervisor服务器上,执行以下命令:

varstore-ls

这个命令列出了guid和可用变量的名称。在以下命令中使用GUID和名称:

varstore-get    | hexdump -C

为什么我不能在安全启动虚拟机中使用“测试”驱动程序?

如果客户还在与第三方合作调试和修复其UEFI Secure Boot VM中的问题,第三方提供的可能会提供未签名的驱动程序用于测试或验证。这些驱动程序不能在UEFI安全引导虚拟机中工作。

告诉客户向第三方申请一个签名的驱动程序。或者客户可以将UEFI Secure Boot虚拟机切换到安装模式,以使用unsigned驱动程序运行。

解决虚拟机问题