Rasberry pi 32-bit OS bullseye fails to boot (image via mender-convert)

I using this config in mender-convert:

# https://docs.mender.io/operating-system-updates-debian-family/variables


source configs/raspberrypi/uboot/include/raspberrypi4_config 

MENDER_CLIENT_VERSION=5.0.1  # needs tweaking of MENDER_APT_REPO_URL below!!!
MENDER_STORAGE_URL="https://downloads.mender.io"
MENDER_APT_REPO_URL="${MENDER_STORAGE_URL}/repos/debian"       

DEPLOY_IMAGE_NAME=roper-rpi-image-raspberrypi4-mender

MENDER_COMPRESS_DISK_IMAGE="lzma"
MENDER_ARTIFACT_COMPRESSION="lzma"

MENDER_STORAGE_TOTAL_SIZE_MB="6500"
MENDER_BOOT_PART_SIZE_MB="256"
IMAGE_ROOTFS_SIZE="-1"
IMAGE_ROOTFS_EXTRA_SPACE="0"
IMAGE_OVERHEAD_FACTOR="1.0"
MENDER_DATA_PART_SIZE_MB="128"
MENDER_DATA_PART_GROWFS="y"

MENDER_ENABLE_SYSTEMD="n"

I wrote the image to the micro SD-card.
The booting fails. It is in an endless loop, trying again and again

I see

mount: /boot: can't find in /etc/fstab.
EXT4-fs (mmcblk0p2): re-mounted. Quota mode: none.
sed: can't read /boot/cmdline.txt: No such file or directory
sed: can't read /boot/cmdline.txt: No such file or directory
grep: /boot/cmdline.txt: No such file or directory
mount: /boot: mount point not mounted or bad option.
cat: /sys/block/loop0//partition: No such file or directory

I’m converting the image with the newest mender-convert (version 5.1.0).

Do I need to add this to my config? →
MENDER_BOOT_PART_MOUNT_LOCATION="/boot"

Hi @user706,

Yes, depending on if you’re using bullseye and earlier or bookworm and later, different settings are required. This was a breaking change that Raspberry Pi OS bookworm introduced. You can see the correlated includes at mender-convert/configs/raspberrypi/uboot/debian/raspberrypi4_bullseye_32bit_config at master · mendersoftware/mender-convert · GitHub and mender-convert/configs/raspberrypi/uboot/debian/raspberrypi4_bookworm_32bit_config at master · mendersoftware/mender-convert · GitHub.

Your configuration should therefore either include mender-convert/configs/raspberrypi/include/pre_bookworm_config at master · mendersoftware/mender-convert · GitHub, or mender-convert/configs/raspberrypi/uboot/include/bookworm_config at master · mendersoftware/mender-convert · GitHub.

This adjusts the /boot mount path and if necessary a few other things.

Greetz,
Josef

Thanks!! Yes (I just realized it myself. )

Conversion is running. Keeping my fingers crossed.

By the way, above in the config you can see

MENDER_CLIENT_VERSION=5.0.1

When I was using lastest and got client 5.0.3, I was running into this issue:

mender-update install file.mender resulted in

Is it true that for raspberry pi OS bullseye 32-bits, I need MENDER_CLIENT_VERSION=5.0.1 and that higher versions are only for 64 bit???

I can boot…

BUT: mender-grow-data.service failed!

● mender-grow-data.service - Mender service to grow data partition size
     Loaded: loaded (/etc/systemd/system/mender-grow-data.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2026-01-09 11:03:50 CET; 3h 51min ago
    Process: 234 ExecStart=/sbin/parted --fix --script /dev/mmcblk0 resizepart 4 100% (code=exited, status=1/FAILURE)
   Main PID: 234 (code=exited, status=1/FAILURE)
        CPU: 21ms

Jan 09 11:03:50 raspberrypi systemd[1]: Starting Mender service to grow data partition size...
Jan 09 11:03:50 raspberrypi parted[234]: /sbin/parted: unrecognized option '--fix'
Jan 09 11:03:50 raspberrypi parted[234]: Usage: /sbin/parted [-hlmsv] [-a<align>] [DEVICE [COMMAND [PARAMETERS]]...]
Jan 09 11:03:50 raspberrypi systemd[1]: mender-grow-data.service: Main process exited, code=exited, status=1/FAILURE
Jan 09 11:03:50 raspberrypi systemd[1]: mender-grow-data.service: Failed with result 'exit-code'.
Jan 09 11:03:50 raspberrypi systemd[1]: Failed to start Mender service to grow data partition size.

debian bullseye has an old parted that does not yet support the --fix flag.

Bug is here: mender-grow-data.service

--fix got added in this commit: fix: systemd_common_config: add --fix option to parted call · mendersoftware/mender-convert@ef68160 · GitHub

Perhaps better to have code like this:

ExecStart=/bin/sh -c "/sbin/parted --fix --script $(disk_get_device_base "${MENDER_STORAGE_DEVICE_BASE}") resizepart ${MENDER_DATA_PART_NUMBER} 100% >/dev/null 2>&1  ||   /sbin/parted --script $(disk_get_device_base "${MENDER_STORAGE_DEVICE_BASE}") resizepart ${MENDER_DATA_PART_NUMBER} 100%"