我们正在开发一个小项目,我们需要一种稳定的方式来远程更新我们的设备(我们使用的是 Raspberry PI 4)。我们决定使用 Mender。
我能够从官方 raspbian 映像创建一个可启动的 Mender 映像。之后我决定首先在 SD 卡上安装官方 raspbian 映像,进行所有必要的重大更改(安装所有必需的包,添加我们项目的第一个版本,...)并创建 SD 卡的映像。
所以......这并不顺利。我能够制作 SD 卡的副本,并且能够创建精确的副本并在另一台设备上运行它。但 Mender 无法将其识别为可引导映像,因此无法对其进行转换。
我使用以下命令创建图像文件:
sudo dd if=/dev/sda2 of=/project/input/custom.img
尝试将图像转换为有效的 Mender 图像后,出现以下错误:
2020-03-09 08:03:22 [INFO] [mender-convert-extract] Using configuration file: configs/mender_convert_config
2020-03-09 08:03:22 [INFO] [mender-convert-extract] Using configuration file: configs/raspberrypi4_config
partx: input/custom.img: failed to read partition table
2020-03-09 08:03:22 [INFO] [mender-convert-extract] Validating disk image
2020-03-09 08:03:22 [FATAL] [mender-convert-extract] Sorry, but could not find any valid partitions for: input/custom.img
由于它无法验证图像,我认为我尝试将图像转换为版本的方式没有问题,而是我创建 SD 卡副本的方式。我使用以下教程将图像转换为 Mender 版本:
https://hub.mender.io/t/raspberry-pi-4-model-b-raspbian/1312
所以我的问题:
如何将 SD 卡转换为可引导映像,包括可引导分区和所有内容?