在某些场景中,例如错误修改 fstab 或文件系统错误需要执行 fsck,虚拟机可能无法正常启动。在这种情况下,您可以利用救援模式来修复根文件系统(rootfs)或从系统中检索数据。
在左侧导航栏中,单击 虚拟化管理 > 虚拟机镜像。
选择平台提供的 来源 为 镜像仓库,并将 操作系统 选择为 CentOS 或 Ubuntu。然后单击右侧的 ⋮ > 更新。
复制并保存 镜像地址。本文档以 192.168.1.1:11443/3rdparty/vmdisks/centos:7.9
为例。
单击 取消。
访问 Container Platform。
在左侧导航栏中,单击 虚拟化 > 虚拟机。
单击需要修复的虚拟机右侧的 ⋮ > 停止,将虚拟机 停止 或 强制停止。
单击虚拟机右侧的 ⋮ > 更新。
切换至 YAML 并修改以下字段。
在 spec.template.spec.domain.devices.disks
字段下增加以下内容。增加 bootOrder 参数可以控制虚拟机启动时的磁盘优先级;bootOrder 数值越小表示优先级越高。
注意:如果原 spec.template.spec.domain.devices.disks
字段中已有 bootOrder: 1
,请增大原数值,以确保新增的 bootOrder 值小于原值。
修改后的 YAML 示例:
在 spec.template.spec.volumes
字段下增加以下内容。
注意:请用在 获取镜像地址 中获取的镜像地址替换下述 image
字段的镜像地址。
修改后的 YAML 示例:
单击 更新。
注意:修改 YAML 文件后,请勿切换至 表单,直接单击 更新 即可。
单击虚拟机右侧的 ⋮ > 启动。
使用原密码或密钥登录虚拟机,输入 df -h /
命令,发现 rootfs 文件系统已被替换。您可以使用与挂载相关的命令进行挂载,或使用 fsck 相关命令检查和修复原文件系统。
完成后关闭虚拟机。
按照 修改虚拟机 YAML 文件 的步骤,将虚拟机 YAML 文件恢复至原始状态,此时虚拟机应能正常启动。