Ubuntu 24 converted image runs but mender-client not running and device not recognized

I converted a Ubuntu 24 image and copied it onto the target device.
With using part-uuids for the partitions it finally boots correctly now on the device.
However, it is not recognized in the mender web ui under devices. It seems, the mender-client service is not running nor available. There is a /lib/systemd/system/mender-client.service.wants directory.

Any help is appreciated. Thanks.

PS: I’m using the trial, if that matters.

1 Like

Hi @grasshopper,

Thanks for reaching out! The trial or not should matter here - in fact it’s helpful, because then we can rule out problems with self-hosted instances.

Can you please check which version of the Mender Client is installed? For 3.x and earlier, the main binary is called mender, on 4.0 and later it has been split in mender-auth and mender-update. So the systemd units are also called mender-client, respectively mender-authd and mender-updated. What is the state of those?

And last for now, which board and version of mender-convert did you use?

Greets,
Josef

Thanks for the quick reply.

mender-auth: command not found

mender-update: command not found

Unit mender-client.service could not be found.

mender-authd.service
     Loaded: masked (Reason: Unit mender-authd.service is masked.)
     Active: inactive (dead)

mender-updated.service
     Loaded: masked (Reason: Unit mender-updated.service is masked.)
     Active: inactive (dead)

The version for mender-convert: 4.2.2 (at least that was the branch)

So I guess the mender client version would be >=4.0

The board: https://www.kontron.com/en/products/d3641-s-uatx/p157724

Just to be sure: Using mender-convert already integrates the client into the image, right? Because I did not explicitly install the mender client onto the device.

Thanks!

I assume unmasking and enabling the services is not the solution because it should work out of the box, i.e. menderized os image, right? If there is anything I could have missed when creating the image or I could try out or if there is information I could provide, please let me know, I would appreciate it.

Thanks!

1 Like

I am having the same problem with the same OS and same version of mender-convert. @grasshopper were you able to solve it?

@JamesTann no, I have not unfortunately.

@TheYoctoJester
Here are the specific steps I have taken:

  1. Created a bootable usb drive with Ubuntu 24.04
  2. Installed Ubuntu 24.04 on a separate USB drive
  3. dd the complete drive to ubuntu24_golden_image.img
  4. Run mender-convert on ubuntu24_golden_image.img:
    Since I was not successful in setting the partition names correctly, I used the exact partuuids. I adapted the generic_x86-64_hdd_config for that. However, since I still encountered issues, I changed some config attributes in the mender_convert_config file itself since the config overwrite did not seem to work as expected. I will just attach the files I used, please see below.
	MENDER_ARTIFACT_NAME=release-1 ./docker-mender-convert \            
    --disk-image input/ubuntu24_golden_image.img \
    --config configs/generic_x86-64_hdd_config_custom \
    --overlay input/rootfs_overlay_demo/
  1. Conversion did not have errors. dd the mender-image.img of deploy/ onto the empty nvme SSD of the target system.
  2. Ubuntu 24.04 boots without issues on the target system. After the login, I check whether the two mender-client services are running which was not the case.

mender_convert_config.yml (10.5 KB)
generic_x86-64_hdd_config_custom.yml (2.0 KB)

Thanks!

@grasshopper wow I was also trying to go from an SSD to an NVME! I too struggled with the partitions but eventually ended up just buying a second NVME and cloning with that so that I didn’t have to change anything. I also have no errors with convert but end up with the same issue as you: no mender-client installed in the converted image…

FWIW everything else seems correct, i.e. mender-convert created 2 root partitions and a data partition.

@TheYoctoJester @grasshopper Not sure if this is helpful, but I just ran another conversion today and see this in the output:

[INFO] [mender-convert-modify] Using boot partition device in fstab: /dev/sda1
[INFO] [mender-convert-modify] Using data partition device in fstab: /dev/sda4
[INFO] [mender-convert-modify] Installing Mender client and related files
[INFO] [mender-convert-modify] Installing Mender Auth and Mender Update version latest
[INFO] [mender-convert-modify] Successfully downloaded mender-auth_4.0.2-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Installing dependencies for /mender-convert/work/deb-packages/mender-auth_4.0.2-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Successfully downloaded mender-update_4.0.2-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Installing dependencies for /mender-convert/work/deb-packages/mender-update_4.0.2-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Installing Mender Flash version latest
[INFO] [mender-convert-modify] Successfully downloaded mender-flash_1.0.0-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Installing Mender Setup version latest
[INFO] [mender-convert-modify] Successfully downloaded mender-setup_1.0.0-1+debian+buster_amd64.deb
[INFO] [mender-convert-modify] Installing Mender Snapshot version latest
[INFO] [mender-convert-modify] Successfully downloaded mender-snapshot_1.0.0-1+debian+buster_amd64.deb

Everything seems correct to me? But the converted image still does not appear to have the mender client installed.

I retried all the steps I did now with Ubuntu 22.04.5 LTS (Jammy Jellyfish) and the result was that the mender-client.service existed and was active when booting the system, so this is good. Also I was able to deploy a test artifact via the hosted.mender UI. I am a bit confused that the mender-client.service was running rather than the mender-authd and mender-updated because these two were at least labeled as inactive when I did the first try with Ubuntu 24. So, how is the mender client version determined? I used the same script and configs for mender-convert.

From the mender_convert_config file:

# Valid values are "auto" (default), "latest", "master" or a specific version
# If set to "auto" then the Mender Client 4.0 or later will be installed unless
# the distribution is Ubuntu jammy or older or Debian bullseye or older;
# the latest Mender 3.x client will be installed in those cases.
# If set to "latest", it will install the latest version of the Mender Client
# from the 4.x series.

This answers my question.
My mender --version produces 3.5.3