Migration from 8.4 to 9.1 issue: Failed to get cgroup support status

pongo

New Member
Apr 18, 2025
2
0
1
Hello,
I upgraded my VE 8.4 installation to 9.1 using apt dist-upgrade.
Before starting I used pve8to9 --full to check if it was all ok: only VM.Monitor warning.

After upgraded and reboot, I run pve8to9 --full again, and I received this warning:
Code:
WARN: Failed to get cgroup support status for CT 1016 - Could not construct path to systemd binary: /proc/187574/root, /usr/lib/systemd/systemd at /usr/share/perl5/PVE/LXC/Setup/Base.pm line 612.

for every LXC running.

Code:
root@z820:~# pveversion
pve-manager/9.1.6/71482d1833ded40a (running kernel: 6.17.13-1-pve)

Code:
root@z820:~# dpkg -l | grep systemd
ii  dbus-user-session                    1.16.2-2                              amd64        simple interprocess messaging system (systemd --user integration)
ii  libnss-systemd:amd64                 257.9-1~deb13u1                       amd64        nss module providing dynamic user and group name resolution
ii  libpam-systemd:amd64                 257.9-1~deb13u1                       amd64        system and service manager - PAM module
ii  libsystemd-shared:amd64              257.9-1~deb13u1                       amd64        systemd shared private library
ii  libsystemd0:amd64                    257.9-1~deb13u1                       amd64        systemd utility library
ii  proxmox-mini-journalreader           1.6                                   amd64        Minimal systemd Journal Reader
ii  python3-systemd                      235-1+b6                              amd64        Python 3 bindings for systemd
ii  systemd                              257.9-1~deb13u1                       amd64        system and service manager
ii  systemd-boot-efi:amd64               257.9-1~deb13u1                       amd64        simple UEFI boot manager - EFI binaries
ii  systemd-boot-tools                   257.9-1~deb13u1                       amd64        simple UEFI boot manager - tools
ii  systemd-cryptsetup                   257.9-1~deb13u1                       amd64        Provides cryptsetup, integritysetup and veritysetup utilities
ii  systemd-sysv                         257.9-1~deb13u1                       amd64        system and service manager - SysV compatibility symlinks

Code:
root@z820:~# ls -l /proc/187574/root /usr/lib/systemd/systemd /proc/187574/root/usr/lib/systemd/systemd
lrwxrwxrwx 1 100000 100000      0 Mar  2 11:54 /proc/187574/root -> /
-rwxr-xr-x 1 100000 100000  92544 Jun 26  2025 /proc/187574/root/usr/lib/systemd/systemd
-rwxr-xr-x 1 root   root   133504 Sep  3 20:38 /usr/lib/systemd/systemd

Container is Debian 12 (do I need to upgrade to 13?).

Code:
root@z820:~# ldd /proc/187574/root/usr/lib/systemd/systemd
        linux-vdso.so.1 (0x000074dfae91f000)
        libsystemd-core-252.so => not found
        libsystemd-shared-252.so => not found
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x000074dfae6ff000)
        /lib64/ld-linux-x86-64.so.2 (0x000074dfae921000)
root@z820:~# ldd /usr/lib/systemd/systemd
        linux-vdso.so.1 (0x00007ac1862ed000)
        libsystemd-core-257.so => /usr/lib/x86_64-linux-gnu/systemd/libsystemd-core-257.so (0x00007ac18606b000)
        libsystemd-shared-257.so => /usr/lib/x86_64-linux-gnu/systemd/libsystemd-shared-257.so (0x00007ac185c2d000)
        libapparmor.so.1 => /lib/x86_64-linux-gnu/libapparmor.so.1 (0x00007ac185c0b000)
        libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ac185bd7000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ac1859e2000)
        libaudit.so.1 => /lib/x86_64-linux-gnu/libaudit.so.1 (0x00007ac1859a9000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ac1858b9000)
        libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007ac18583d000)
        libseccomp.so.2 => /lib/x86_64-linux-gnu/libseccomp.so.2 (0x00007ac18580f000)
        libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007ac185804000)
        libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007ac1857a2000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007ac185796000)
        libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007ac18575a000)
        libcrypto.so.3 => /lib/x86_64-linux-gnu/libcrypto.so.3 (0x00007ac185122000)
        libpam.so.0 => /lib/x86_64-linux-gnu/libpam.so.0 (0x00007ac185110000)
        /lib64/ld-linux-x86-64.so.2 (0x00007ac1862ef000)
        libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007ac185061000)
        libcap-ng.so.0 => /lib/x86_64-linux-gnu/libcap-ng.so.0 (0x00007ac185057000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ac185037000)
        libzstd.so.1 => /lib/x86_64-linux-gnu/libzstd.so.1 (0x00007ac184f6d000)
Code:
root@z820:~# ps -ef | grep 187574
100000    187574  187550  0 11:54 ?        00:00:00 /sbin/init
100000    187754  187574  0 11:54 ?        00:00:00 /lib/systemd/systemd-journald
100998    187830  187574  0 11:54 ?        00:00:00 /lib/systemd/systemd-networkd
100000    187847  187574  0 11:54 ?        00:00:00 /usr/sbin/cron -f
100102    187850  187574  0 11:54 ?        00:00:00 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only
100000    187854  187574  0 11:54 ?        00:00:00 /lib/systemd/systemd-logind
100000    187905  187574  0 11:54 pts/0    00:00:00 /sbin/agetty -o -p -- \u --noclear --keep-baud - 115200,38400,9600 linux
100000    187906  187574  0 11:54 pts/1    00:00:00 /sbin/agetty -o -p -- \u --noclear - linux
100000    187907  187574  0 11:54 pts/2    00:00:00 /sbin/agetty -o -p -- \u --noclear - linux
100000    187908  187574  0 11:54 ?        00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
100000    188145  187574  0 11:54 ?        00:00:00 /usr/lib/postfix/sbin/master -w

File /usr/share/perl5/PVE/LXC/Setup/Base.pm around line 612
Perl:
# tries to guess the systemd (major) version based on the
# libsystemd-shared<version>.so linked with /sbin/init
sub get_systemd_version {
    my ($self, $init) = @_;

    my $binary = abs_path($self->{rootdir} . $init);
    if ($binary =~ /(^\Q$self->{rootdir}\E.*)/) {
        $binary = $1; # untainted
    } else {
        die "Could not construct path to systemd binary: $self->{rootdir}, $init";
    }

    my $version = undef;
    PVE::Tools::run_command(
        ['objdump', '-p', $binary],
        outfunc => sub {
            my $line = shift;
            if ($line =~ /libsystemd-shared-(\d+)(?:[-_.][a-zA-Z0-9]+)*\.so:?$/) {
                $version = $1;
            }
        },
        errmsg => "objdump on $init failed",
    );

    return $version;
}

The issue occurs on line if ($binary =~ /(^\Q$self->{rootdir}\E.*)/) { but I don't know excalty the meaning

I cannot find any reference online for this warning.

Can someone help me, please?