找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 2173|回复: 1

[openwrt(x86)] 无法打开虚拟机openwrt的电源。对象类型需要托管的I/O

[复制链接]
发表于 2024-10-22 11:29 | 显示全部楼层 |阅读模式

# VMware ESXi 虚拟机磁盘格式不兼容问题详细解决步骤

## 问题描述
在 VMware ESXi 中启动虚拟机时出现错误提示:
> “无法打开虚拟机的电源。对象类型需要托管的 I/O”。  
通常,这个问题是由于虚拟磁盘(VMDK)文件格式不兼容或有损坏导致的。以下步骤将帮助你修复和转换磁盘格式,以解决该问题。

## 解决方案步骤

### 1. 关闭虚拟机
   - 在开始之前,确保虚拟机已经**完全关闭**(Power Off)。这是为了避免在操作过程中数据不一致或文件损坏。

### 2. 连接到 ESXi 主机
   - 使用 **SSH** 连接到你的 ESXi 主机。可以通过以下步骤在 ESXi Web 界面中启用 SSH 服务(如果还未启用):
     1. 登录到 ESXi Web 界面。
     2. 在左侧菜单中选择 **主机**(Host),然后进入 **管理**(Manage)。
     3. 在 **服务**(Services)中找到 **SSH**,点击 **启动**(Start)。

### 3. 检查原始 VMDK 文件的完整性
   - 通过 SSH 连接后,使用以下命令检查 VMDK 文件的完整性:
     ```bash
     vmkfstools -x check /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
     ```
   - 如果命令输出提示 **“Disk needs repair”**,则需要执行修复操作。

### 4. 修复 VMDK 文件
   - 如果上一步确认磁盘需要修复,请执行以下命令进行修复:
     ```bash
     vmkfstools -x repair /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
     ```
   - 成功修复后,虚拟机应能正常启动,但为了确保后续操作(如迁移)不再出现问题,我们还需要进一步转换磁盘格式。

### 5. 转换磁盘格式为 Thin(薄格式)
   - 使用以下命令将 VMDK 文件转换为兼容的 **Thin(薄格式)**:
     ```bash
     vmkfstools -i /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk /vmfs/volumes/datastore_path/your_vm/your_disk-thin.vmdk -d thin
     ```
   - **说明**:
     - `/vmfs/volumes/datastore_path/your_vm/your_disk.vmdk` 是原始 VMDK 文件路径。
     - `/vmfs/volumes/datastore_path/your_vm/your_disk-thin.vmdk` 是转换后新生成的 VMDK 文件路径(确保新文件名称不同,以避免覆盖原文件)。
     - `-d thin` 指定转换为 **Thin** 格式,适合 vSAN 存储环境。

### 6. 更新虚拟机配置文件(.vmx 文件)
   - 使用以下命令编辑虚拟机的 `.vmx` 配置文件:
     ```bash
     vi /vmfs/volumes/datastore_path/your_vm/your_vm.vmx
     ```
   - 找到与磁盘相关的行(如 `scsi0:0.fileName` 或 `ide0:0.fileName`),并将其更新为新的 VMDK 文件路径:
     ```plaintext
     scsi0:0.fileName = "your_disk-thin.vmdk"
     ```
   - 保存并退出编辑器。

### 7. 重新注册虚拟机(如有需要)
   - 如果编辑 `.vmx` 文件后虚拟机在 ESXi 中未正常显示,可以通过以下步骤重新注册:
     1. 在 ESXi Web 界面中,选择虚拟机并将其从注册列表中移除(不要删除文件)。
     2. 通过 **数据存储浏览器**(Datastore Browser)找到虚拟机的 `.vmx` 文件,右键选择 **“注册虚拟机”**(Register VM)。

### 8. 启动虚拟机并测试
   - 在确认配置文件指向新的 VMDK 文件后,启动虚拟机。
   - 确保虚拟机能够正常启动,并测试以下功能:
     - 迁移(如 vMotion)
     - 快照(Snapshot)
     - 其他相关操作(如备份)

### 9. 删除旧的 VMDK 文件(可选)
   - 如果新的 VMDK 文件正常工作,你可以删除旧的文件以节省存储空间:
     ```bash
     rm /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
     ```
   - **注意**:在确认新文件完全正常工作后再删除旧文件,以避免数据丢失。

## 总结
通过上述步骤,你可以成功将 VMDK 文件转换为兼容的格式,并确保虚拟机的稳定运行和后续操作的兼容性。这种方法可以彻底解决由于磁盘格式不兼容引起的问题。

---

希望这篇指南能帮助其他遇到相同问题的朋友成功解决!如果有任何问题或进一步的疑问,欢迎在评论区留言讨论。


只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
 楼主| 发表于 2024-10-22 11:32 | 显示全部楼层
解决方案步骤
1. 关闭虚拟机
在开始之前,确保虚拟机已经完全关闭(Power Off)。这是为了避免在操作过程中数据不一致或文件损坏。
2. 连接到 ESXi 主机
使用 SSH 连接到你的 ESXi 主机。可以通过以下步骤在 ESXi Web 界面中启用 SSH 服务(如果还未启用):
登录到 ESXi Web 界面。
在左侧菜单中选择 主机(Host),然后进入 管理(Manage)。
在 服务(Services)中找到 SSH,点击 启动(Start)。
3. 检查原始 VMDK 文件的完整性
通过 SSH 连接后,使用以下命令检查 VMDK 文件的完整性:
bash
复制代码
vmkfstools -x check /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
如果命令输出提示 “Disk needs repair”,则需要执行修复操作。
4. 修复 VMDK 文件
如果上一步确认磁盘需要修复,请执行以下命令进行修复:
bash
复制代码
vmkfstools -x repair /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
成功修复后,虚拟机应能正常启动,但为了确保后续操作(如迁移)不再出现问题,我们还需要进一步转换磁盘格式。
5. 转换磁盘格式为 Thin(薄格式)
使用以下命令将 VMDK 文件转换为兼容的 Thin(薄格式):
bash
复制代码
vmkfstools -i /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk /vmfs/volumes/datastore_path/your_vm/your_disk-thin.vmdk -d thin
说明:
/vmfs/volumes/datastore_path/your_vm/your_disk.vmdk 是原始 VMDK 文件路径。
/vmfs/volumes/datastore_path/your_vm/your_disk-thin.vmdk 是转换后新生成的 VMDK 文件路径(确保新文件名称不同,以避免覆盖原文件)。
-d thin 指定转换为 Thin 格式,适合 vSAN 存储环境。
6. 更新虚拟机配置文件(.vmx 文件)
使用以下命令编辑虚拟机的 .vmx 配置文件:
bash
复制代码
vi /vmfs/volumes/datastore_path/your_vm/your_vm.vmx
找到与磁盘相关的行(如 scsi0:0.fileName 或 ide0:0.fileName),并将其更新为新的 VMDK 文件路径:
plaintext
复制代码
scsi0:0.fileName = "your_disk-thin.vmdk"
保存并退出编辑器。
7. 重新注册虚拟机(如有需要)
如果编辑 .vmx 文件后虚拟机在 ESXi 中未正常显示,可以通过以下步骤重新注册:
在 ESXi Web 界面中,选择虚拟机并将其从注册列表中移除(不要删除文件)。
通过 数据存储浏览器(Datastore Browser)找到虚拟机的 .vmx 文件,右键选择 “注册虚拟机”(Register VM)。
8. 启动虚拟机并测试
在确认配置文件指向新的 VMDK 文件后,启动虚拟机。
确保虚拟机能够正常启动,并测试以下功能:
迁移(如 vMotion)
快照(Snapshot)
其他相关操作(如备份)
9. 删除旧的 VMDK 文件(可选)
如果新的 VMDK 文件正常工作,你可以删除旧的文件以节省存储空间:
bash
复制代码
rm /vmfs/volumes/datastore_path/your_vm/your_disk.vmdk
注意:在确认新文件完全正常工作后再删除旧文件,以避免数据丢失。
总结
通过上述步骤,你可以成功将 VMDK 文件转换为兼容的格式,并确保虚拟机的稳定运行和后续操作的兼容性。这种方法可以彻底解决由于磁盘格式不兼容引起的问题。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /2 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2026-8-23 23:06

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 电话:13506125623

快速回复 返回顶部 返回列表