25 使用 bmaptool 烧写镜像
要快速方便地将镜像烧写到可启动设备,可以使用集成在 OpenEmbedded 构建系统 中的 bmaptool。这是一个通用工具,先创建文件的块映射(bmap),再利用映射 复制文件。与 dd 或 cp 等传统工具相比,bmaptool 能更快地复制或烧写 原始系统镜像等大文件。
备注
如果使用 Ubuntu 或 Debian 发行版,可通过以下命令安装
bmaptool软件包。之后无需指定PATH即可使用,即使是 root 账户也一样:$ sudo apt install bmaptool
如果无法安装
bmaptool软件包,则需要先构建 bmaptool。使用以下命令:$ bitbake bmaptool-native -caddto_recipe_sysroot
下面演示如何烧写 Wic 镜像。虽然示例使用 Wic 镜像,但 bmaptool 可以烧写 任何类型的镜像。操作步骤如下:
更新镜像类型: 构建镜像之前,需要在镜像配方、发行版 configuration file 或 build/conf/local.conf 文件中设置 IMAGE_FSTYPES:
IMAGE_FSTYPES += "wic wic.bmap"
获取镜像: 可以使用已经按上述 IMAGE_FSTYPES 设置预先构建好的 镜像,也可以执行以下命令构建镜像:
$ bitbake image
烧写设备: 根据具体配置使用 bmaptool 将镜像烧写到设备。 以下命令假定镜像位于 Build Directory 的
deploy/images/区域:如果安装了 bmaptool 软件包,可以直接运行:
$ sudo bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
如果通过 BitBake 构建了 bmaptool,则运行:
$ sudo chmod a+w /dev/sdX # get write access to the media, needed only once after booting $ oe-run-native bmaptool-native bmaptool copy build-directory/tmp/deploy/images/machine/image.wic /dev/sdX
要查看 bmaptool 命令的帮助,运行:
$ bmaptool --help
备注
较早的 Ubuntu 和 Debian 版本曾提供名为 bmap-tools 的软件包。仍然
可以使用此名称安装,它现在是一个过渡包,仅用于确保向后兼容并使旧版本
安装平滑升级。