Hallo,
bin auf die irrwitzige Idee gekommen über Weihnachten meinen Proxmox Server von 7.4.16 auf 8.3.2 heben zu wollen.
Gestartet bin ich mit der Aktualiserung aller VM's und Container. Das ist aber schon beim 2. Container schief gegangen
Glücklicherweise hatte ich direkt vor der Aktion von allen CT's und VM's Snapshots erstellt.
Vielleicht muss ich noch erwähnen, das ich einige Container mit Manjaro Linux verwende. Als ich die Container erstellt habe, gab es für einige Dinge keine Debian Pakete, so das ich diese hätte selbst erstellen müssen um eine konsitente Paketverwaltung zu bekommen. Da ich auf dem Deskop durchgängig Manjaro verwende, die Pakete dort vorhanden und funktionsfähig waren, wollte ich dann Manjo CT's. Die gab es aber nicht als Template. Also habe ich ArchLinux genommen und den CT dann kurzerhand auf Manjaro umgebaut. Bislang stellte das auch nie ein Problem dar.
Die Probleme die sich jetzt einstellten sind sowohl auf 7.4.16 (meine "Produktions-Maschine") als auch auf 8.3.2 (Testmaschine) in identischer Weise vorhanden.
Alle weiteren Ausführungen habe ich auf der Testmaschine durchgeführt.
# pveversion -v
Nach dem Update des Containers lief zunächst noch alles wunderbar. Nachdem ich den CT dann aber gestoppt hatte um ein Backup und einen neuerlichen Snapshot anzufertigen, ließ sich der CT nicht mehr starten. Es kam eine Fehlermeldung:
Dann noch mal von der Konsole
# pct start 100 --debug
Also habe ich mir erst mal die config angesehen:
# pct config 100
Gemäß der Debug-Ausgabe meckert Proxmox ja über den Inhalt von /etc/os-release. Also habe ich mir auch die angesehen:
# cat /etc/os-release
Ok, jetzt einen Rollback auf den letzten Snapshot. Interessanterweise meckert er auch hier eine "unknown" ID an, startet aber problemlos.
# pct start 100 --debug
Dann wieder aktualisiert, und gleiches Fehlerbild wie am Anfang.
Dann habe ich die /etc/os-release manipuliert und bei der ID "manjao" durch "archlinux" ersetzt.
Und siehe da, der CT startet wieder und läuft einwandfrei.
Bleibt meine Frage:
Warum startet der CT vor dem Update mit der Fehlermeldung, nach dem Update aber gar nicht. Und das bei unveränderter Proxmox Umgebung.
Warum muss in der CT config ein Betriebssystem stehen, wenn es doch scheinbar gar nicht relevant ist?
VG
Henning
bin auf die irrwitzige Idee gekommen über Weihnachten meinen Proxmox Server von 7.4.16 auf 8.3.2 heben zu wollen.
Gestartet bin ich mit der Aktualiserung aller VM's und Container. Das ist aber schon beim 2. Container schief gegangen

Glücklicherweise hatte ich direkt vor der Aktion von allen CT's und VM's Snapshots erstellt.
Vielleicht muss ich noch erwähnen, das ich einige Container mit Manjaro Linux verwende. Als ich die Container erstellt habe, gab es für einige Dinge keine Debian Pakete, so das ich diese hätte selbst erstellen müssen um eine konsitente Paketverwaltung zu bekommen. Da ich auf dem Deskop durchgängig Manjaro verwende, die Pakete dort vorhanden und funktionsfähig waren, wollte ich dann Manjo CT's. Die gab es aber nicht als Template. Also habe ich ArchLinux genommen und den CT dann kurzerhand auf Manjaro umgebaut. Bislang stellte das auch nie ein Problem dar.
Die Probleme die sich jetzt einstellten sind sowohl auf 7.4.16 (meine "Produktions-Maschine") als auch auf 8.3.2 (Testmaschine) in identischer Weise vorhanden.
Alle weiteren Ausführungen habe ich auf der Testmaschine durchgeführt.
# pveversion -v
Code:
proxmox-ve: 8.3.0 (running kernel: 6.8.12-2-pve)
pve-manager: 8.3.2 (running version: 8.3.2/3e76eec21c4a14a7)
proxmox-kernel-helper: 8.1.0
pve-kernel-5.15: 7.4-12
proxmox-kernel-6.8: 6.8.12-5
proxmox-kernel-6.8.12-5-pve-signed: 6.8.12-5
proxmox-kernel-6.8.12-2-pve-signed: 6.8.12-2
proxmox-kernel-6.8.4-2-pve-signed: 6.8.4-2
proxmox-kernel-6.5.13-6-pve-signed: 6.5.13-6
proxmox-kernel-6.5: 6.5.13-6
proxmox-kernel-6.5.13-5-pve-signed: 6.5.13-5
pve-kernel-5.15.149-1-pve: 5.15.149-1
ceph-fuse: 16.2.15+ds-0+deb12u1
corosync: 3.1.7-pve3
criu: 3.17.1-2
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx11
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libknet1: 1.28-pve1
libproxmox-acme-perl: 1.5.1
libproxmox-backup-qemu0: 1.4.1
libproxmox-rs-perl: 0.3.4
libpve-access-control: 8.2.0
libpve-apiclient-perl: 3.3.2
libpve-cluster-api-perl: 8.0.10
libpve-cluster-perl: 8.0.10
libpve-common-perl: 8.2.9
libpve-guest-common-perl: 5.1.6
libpve-http-server-perl: 5.1.2
libpve-network-perl: 0.10.0
libpve-rs-perl: 0.9.1
libpve-storage-perl: 8.3.3
libspice-server1: 0.15.1-1
lvm2: 2.03.16-2
lxc-pve: 6.0.0-1
lxcfs: 6.0.0-pve2
novnc-pve: 1.5.0-1
proxmox-backup-client: 3.3.2-1
proxmox-backup-file-restore: 3.3.2-2
proxmox-firewall: 0.6.0
proxmox-kernel-helper: 8.1.0
proxmox-mail-forward: 0.3.1
proxmox-mini-journalreader: 1.4.0
proxmox-widget-toolkit: 4.3.3
pve-cluster: 8.0.10
pve-container: 5.2.3
pve-docs: 8.3.1
pve-edk2-firmware: 4.2023.08-4
pve-esxi-import-tools: 0.7.2
pve-firewall: 5.1.0
pve-firmware: 3.14-2
pve-ha-manager: 4.0.6
pve-i18n: 3.3.2
pve-qemu-kvm: 9.0.2-4
pve-xtermjs: 5.3.0-3
qemu-server: 8.3.3
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.6-pve
Nach dem Update des Containers lief zunächst noch alles wunderbar. Nachdem ich den CT dann aber gestoppt hatte um ein Backup und einen neuerlichen Snapshot anzufertigen, ließ sich der CT nicht mehr starten. Es kam eine Fehlermeldung:
Code:
run_buffer: 571 Script exited with status 2
lxc_init: 845 Failed to run lxc.hook.pre-start for container "100"
__lxc_start: 2034 Failed to initialize container "100"
Dann noch mal von der Konsole
# pct start 100 --debug
Code:
run_buffer: 571 Script exited with status 2
lxc_init: 845 Failed to run lxc.hook.pre-start for container "100"
__lxc_start: 2034 Failed to initialize container "100"
d 0 hostid 100000 range 65536
INFO lsm - ../src/lxc/lsm/lsm.c:lsm_init_static:38 - Initialized LSM security driver AppArmor
INFO utils - ../src/lxc/utils.c:run_script_argv:587 - Executing script "/usr/share/lxc/hooks/lxc-pve-prestart-hook" for container "100", config section "lxc"
DEBUG utils - ../src/lxc/utils.c:run_buffer:560 - Script exec /usr/share/lxc/hooks/lxc-pve-prestart-hook 100 lxc pre-start produced output: unknown ID 'manjaro' in /etc/os-release file, trying fallback detection
DEBUG utils - ../src/lxc/utils.c:run_buffer:560 - Script exec /usr/share/lxc/hooks/lxc-pve-prestart-hook 100 lxc pre-start produced output: unable to detect OS distribution
ERROR utils - ../src/lxc/utils.c:run_buffer:571 - Script exited with status 2
ERROR start - ../src/lxc/start.c:lxc_init:845 - Failed to run lxc.hook.pre-start for container "100"
ERROR start - ../src/lxc/start.c:__lxc_start:2034 - Failed to initialize container "100"
INFO utils - ../src/lxc/utils.c:run_script_argv:587 - Executing script "/usr/share/lxcfs/lxc.reboot.hook" for container "100", config section "lxc"
startup for container '100' failed
Also habe ich mir erst mal die config angesehen:
# pct config 100
Code:
arch: amd64
cores: 2
features: fuse=1,nesting=1
hostname: CUPS
memory: 2048
net0: name=eth0,bridge=vmbr0,gw=192.168.200.1,hwaddr=02:EE:66:09:31:09,ip=192.168.200.217/24,type=veth
onboot: 1
ostype: archlinux
rootfs: local-btrfs:100/vm-100-disk-0.raw,size=8G
swap: 512
unprivileged: 1
Gemäß der Debug-Ausgabe meckert Proxmox ja über den Inhalt von /etc/os-release. Also habe ich mir auch die angesehen:
# cat /etc/os-release
Code:
NAME="Manjaro Linux"
PRETTY_NAME="Manjaro Linux"
ID=manjaro
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="32;1;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://forum.manjaro.org/"
BUG_REPORT_URL="https://docs.manjaro.org/reporting-bugs/"
PRIVACY_POLICY_URL="https://manjaro.org/privacy-policy/"
LOGO=manjarolinux
Ok, jetzt einen Rollback auf den letzten Snapshot. Interessanterweise meckert er auch hier eine "unknown" ID an, startet aber problemlos.
# pct start 100 --debug
Code:
INFO confile - ../src/lxc/confile.c:set_config_idmaps:2273 - Read uid map: type u nsid 0 hostid 100000 range 65536
INFO confile - ../src/lxc/confile.c:set_config_idmaps:2273 - Read uid map: type g nsid 0 hostid 100000 range 65536
INFO lsm - ../src/lxc/lsm/lsm.c:lsm_init_static:38 - Initialized LSM security driver AppArmor
INFO utils - ../src/lxc/utils.c:run_script_argv:587 - Executing script "/usr/share/lxc/hooks/lxc-pve-prestart-hook" for container "100", config section "lxc"
DEBUG utils - ../src/lxc/utils.c:run_buffer:560 - Script exec /usr/share/lxc/hooks/lxc-pve-prestart-hook 100 lxc pre-start produced output: unknown ID 'manjaro' in /etc/os-release file, trying fallback detection
INFO cgfsng - ../src/lxc/cgroups/cgfsng.c:unpriv_systemd_create_scope:1498 - Running privileged, not using a systemd unit
DEBUG seccomp - ../src/lxc/seccomp.c:parse_config_v2:664 - Host native arch is [3221225534]
INFO seccomp - ../src/lxc/seccomp.c:parse_config_v2:815 - Processing "reject_force_umount # comment this to allow umount -f; not recommended"
INFO seccomp - ../src/lxc/seccomp.c:do_resolve_add_rule:532 - Set seccomp rule to reject force umounts
...
Dann wieder aktualisiert, und gleiches Fehlerbild wie am Anfang.
Dann habe ich die /etc/os-release manipuliert und bei der ID "manjao" durch "archlinux" ersetzt.
Code:
NAME="Manjaro Linux"
PRETTY_NAME="Manjaro Linux"
ID=archlinux
ID_LIKE=arch
BUILD_ID=rolling
ANSI_COLOR="32;1;24;144;200"
HOME_URL="https://manjaro.org/"
DOCUMENTATION_URL="https://wiki.manjaro.org/"
SUPPORT_URL="https://forum.manjaro.org/"
BUG_REPORT_URL="https://docs.manjaro.org/reporting-bugs/"
PRIVACY_POLICY_URL="https://manjaro.org/privacy-policy/"
LOGO=manjarolinux
Und siehe da, der CT startet wieder und läuft einwandfrei.
Bleibt meine Frage:
Warum startet der CT vor dem Update mit der Fehlermeldung, nach dem Update aber gar nicht. Und das bei unveränderter Proxmox Umgebung.
Warum muss in der CT config ein Betriebssystem stehen, wenn es doch scheinbar gar nicht relevant ist?
VG
Henning