从现有的SD卡创建一个可引导的图像(这样Mender就可以转换它)



我们正在进行一个小项目,为此我们需要一种稳定的方式来通过空中远程更新我们的设备(我们使用的是Raspberry PI 4(。我们决定使用门德。

我能够创建一个可启动的门德图像从官方的rasbian图像。在那之后,我决定首先在SD卡上安装官方的raspbian图像,进行所有必要的重大更改(安装所有必要的软件包,添加我们项目的第一个版本,…(,并创建SD卡的图像。

所以。。。。结果并不顺利。我能够制作SD卡的副本,并且我能够创建一个精确的副本并在另一台设备上运行它。但门德无法将其识别为可引导图像,因此无法转换

我使用以下命令创建图像文件:

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卡转换为可引导映像,包括可引导分区和所有内容?

如果你想做这样的事情,一定要先看看官方教程。

事实证明我用错了论据。要制作可引导的图像,您可以使用:

dd if=<DEVICE> of=golden-image-1.img bs=1M conv=fdatasync

来源:https://docs.mender.io/2.1/artifacts/debian-family

最新更新