openwrt 排坑 qemu-img使用 img文件转vmdk

本文介绍了在openwrt环境中,使用qemu-img工具将img文件转换为vmdk文件时遇到的问题及解决方法。通过分析故障原因,找到正确参数配置,成功完成了文件转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在我的上一篇博文里,我获取vmdk文件的方式为下载现成的,当时没空研究失败原因,今天整理了一下,解决了生成vmdk文件失败的故障

故障

故障 1

sudo apt-get install qemu-img失败
在上一篇博文里我排查了所有故障,最终找到原因,这个工具已经整合进入 qemu里了
直接下载qemu即可
解决方案
sudo apt-get install qemu

故障 2

qemu-img convert -f raw openwrt.img -O vmdk openwrt.vmdk失败
这个问题我特别观察了一下这个工具的使用方法:

convert [-c] [-p] [-q] [-n] [-f fmt] [-t cache] [-O output_fmt] [-o options]
[-s snapshot_id_or_name] [-l snapshot_param] [-S sparse_size]
filename [filename2 […]] output_filename

如图
其中-f后面跟上 准备被转换的文件格式,-O后面跟上希望转换成的文件格式
因此:
解决方案

qemu-img convert -f raw -O vmdk openwrt.img openwrt.vmdk
生成了,撒花
在这里插入图片描述

结语

环境在变,很多资料会变的过时,因此想要具体的解决问题,最重要的还是参考问题本身。|ू・ω・` )

### OpenWRT img 文件下载、制作与使用 #### 下载 OpenWRT 镜像文件 OpenWRT 的镜像文件可以从其官方站点获取。通常情况下,这些镜像会被放置在特定的目标架构目录下。例如,对于 x86 架构的设备,可以访问 `downloads.openwrt.org` 并选择适合目标硬件版本的分支和固件类型[^1]。 如果需要自定义配置或构建支持 UEFI 启动的镜像,则可以通过源码编译的方式完成。这一步骤可能涉及设置交叉编译环境以及调整默认配置选项[^2]。 #### 制作 OpenWRT 镜像 为了创建一个可引导的 OpenWRT 系统映像,可以采用多种方法: 1. **通过 QEMU 工具生成虚拟磁盘** 如果希望模拟真实硬件环境测试新构建好的系统,QEMU 是一种常用工具。它允许用户快速建立一块指定大小的虚拟硬盘并将其格式化成所需分区表形式(如 GPT 或 MBR)。以下是具体操作流程中的关键部分: 安装必要的组件: ```bash sudo apt-get install qemu-utils ``` 接着运行如下命令来初始化一个新的 VMDK 文件实例: ```bash qemu-img create -f vmdk openwrt-disk.vmdk 4G ``` 此处指定了最终产物为名为 `openwrt-disk.vmdk` 的四千兆字节容量存储单元。 2. **利用 IMG 文件部署至实际介质** 当仅拥有 `.img` 形式的二进制数据而非 ISO 映像时,可以直接借助 dd 命令或者其他图形界面程序写入物理驱动器上。然而,在某些场景里也可能期望把此类静态快照化为动态扩展型容器以便于调试用途——这就需要用到前述提到过的 nbd 设备绑定技术了[^3]。 #### 使用 OpenWRT 镜像 一旦成功准备好了包含完整操作系统结构在内的镜像文档之后,便可以根据实际情况决定如何加载它们进入目标平台之中去执行业务逻辑功能啦! 比如在一个 VMware Workstation Pro 中导入由上述过程产生的 hdd-virtual-format 结果作为主启动序列优先级最高的装置;与此同时保留原有的常规工作区不变继续正常运作不受干扰影响。 ```python # 示例 Python 脚本展示如何调用外部 shell 实现自动化处理任务的一部分片段 import subprocess def prepare_disk(image_path, size="4G"): result = subprocess.run(["qemu-img", "create", "-f", "vmdk", image_path, size], capture_output=True) if result.returncode != 0: raise Exception(f"Failed to create disk {image_path}: {result.stderr.decode('utf-8')}") prepare_disk("/path/to/new_openwrt_image.vmdk") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值