Correct me if I'm wrong, userdata is parsed through /var/lib/cloud/instance/datasource?
ls /var/lib/cloud/instance/
datasource handlers/ network-config.json obj.pkl scripts/ sem/
cat /var/lib/cloud/instance/datasource
DataSourceNoCloud: DataSourceNoCloud [seed=/dev/sr0]
cat /dev/sr0
CD001LINUX cidata
/" GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993 E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM 2025082515473400202508251547340000000000000000002025082515473400 CD0/"SPRRPX$AATF/"/"/"C/"RRPX$AATF/"/"/"66/"
META_DATA.;1RRNMmeta-dataPX$TF/"/"/"ii/"NETWORK_CONFIG.;1RRNMnetwork-configPX$TF/"/"//"
USER_DATA.;1RRNMuser-dataPX$TF/"/"/"/"VENDOR_DATA.;1RRNMvendor-dataPX$TF/"/"/"ER
TRRIP_1991ATHE ROCK RIDGE INTERCHANGE PROTOCOL PROVIDES SUPPORT FOR POSIX FILE SYSTEM SEMANTICSPLEASE CONTACT DISC PUBLISHER FOR SPECIFICATION SOURCE. SEE PUBLISHER IDENTIFIER IN PRIMARY VOLUME DESCRIPTOR FOR CONTACT INFORMATION.instance-id: 22bd2bcc9dbc5666ac3464a9710ea837b57afef9
version: 1
config:
- type: nameserver
address:
- '8.8.8.8'
search:
- 'local'
#cloud-config
hostname: testcloudinitbug
manage_etc_hosts: true
fqdn: testcloudinitbug
chpasswd:
expire: False
users:
- default
package_upgrade: true
---
As requested, output of systemctl list-dependencies --reverse cloud-init-network.service dkms.service sysinit.target:
cloud-init-network.service
● ├─cloud-config.target
● │ └─cloud-config.service
○ └─cloud-init.target
● └─multi-user.target
● └─graphical.target
dkms.service
● └─multi-user.target
● └─graphical.target
sysinit.target
○ ├─apt-daily-upgrade.service
● ├─apt-daily-upgrade.timer
○ ├─apt-daily.service
● ├─apt-daily.timer
○ ├─apt-listchanges.service
● ├─apt-listchanges.timer
● ├─cloud-config.service
○ ├─cloud-final.service
○ ├─cloud-init-hotplugd.service
● ├─cron.service
● ├─dbus.service
● ├─dbus.socket
● ├─dkms.service
○ ├─dpkg-db-backup.service
● ├─dpkg-db-backup.timer
○ ├─e2scrub_all.service
● ├─e2scrub_all.timer
○ ├─e2scrub_reap.service
○ ├─fstrim.service
● ├─fstrim.timer
○ ├─getty-static.service
● ├─getty@tty1.service
○ ├─grub-common.service
○ ├─logrotate.service
● ├─logrotate.timer
○ ├─man-db.service
● ├─man-db.timer
● ├─qemu-guest-agent.service
○ ├─rc-local.service
● ├─ssh.service
○ ├─sshd-keygen.service
● ├─sshd-unix-local.socket
● ├─sshd-vsock.socket
○ ├─sshd@sshd-keygen.service
○ ├─systemd-ask-password-wall.service
○ ├─systemd-hostnamed.service
● ├─systemd-hostnamed.socket
● ├─systemd-logind.service
○ ├─systemd-pcrphase.service
● ├─systemd-tmpfiles-clean.timer
● ├─systemd-user-sessions.service
● ├─user-runtime-dir@1001.service
● ├─user@1001.service
● ├─basic.target
○ │ ├─initrd.target
● │ └─multi-user.target
● │ └─graphical.target
○ └─rescue.target
---
additionally if it helps, the preseed:
choose-mirror-bin mirror/http/proxy string
d-i apt-setup/use_mirror boolean true
d-i base-installer/kernel/override-image string linux-server
d-i clock-setup/utc boolean true
d-i clock-setup/utc-auto boolean true
d-i finish-install/reboot_in_progress note
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i keymap select us
d-i mirror/country string manual
d-i mirror/http/directory string /debian
d-i mirror/http/hostname string
httpredir.debian.orgd-i mirror/http/proxy string
d-i partman-auto-lvm/guided_size string max
d-i partman-auto/choose_recipe select atomic
d-i partman-auto/method string lvm
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-lvm/device_remove_lvm boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman/confirm_write_new_label boolean true
d-i passwd/root-login boolean false
d-i passwd/root-password-again password testpassword
d-i passwd/root-password password testpassword
d-i passwd/user-fullname string packer
d-i passwd/user-uid string 1000
d-i passwd/user-password password testpassword
d-i passwd/user-password-again password testpassword
d-i passwd/username string packer
d-i pkgsel/include string sudo bzip2 wget curl dkms net-tools rsync qemu-guest-agent cloud-init
d-i pkgsel/install-language-support boolean false
d-i pkgsel/update-policy select none
d-i pkgsel/upgrade select full-upgrade
d-i time/zone string UTC
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
d-i netcfg/hostname string debian
d-i preseed/late_command string \
sed -i '/^deb cdrom:/s/^/#/' /target/etc/apt/sources.list; \
mkdir -p /target/root/.ssh; \
echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQClqqLdYN8LJ5kI7c/j+Uu3jt5vCOjUmbbY4hxK9P6VULCgQpJEtutr6LHwoOJ4awZDm2I/qnjr3umSplrqAOUslj5lGyJDcLw+obr4bKJGy7dRIZF1xNKDBLFypQW9dQ0alNZVVFdWS4qmbpujlrhzseNJ2Gb20Bxxw4scDCYlCqqs9AbgeAVa1Vlw8xKvXxTBC5gL6qinBbNn3E63IuYyqihyB1VzBg9vQPE9hYQtlqg8rBpqdaHyAEyDf5FVDvctS3VlqyuXBT3VizjU08s5e6w8cJbMUIMMVqh1I1qbn1T255s2VdrUE5G7q0fY/yXxyyz+6S1XskPOofBxO5sbGxXkTCpHa0/32gSGRGquDPLWp/e0VHrhx32bGVsLLD5sFZCdIvfu8mMGnoDFnmq28ayUKMyXdB0PcV/qfvBZsCyBnTYX4paq3mQae7nZ55MwGwFtrE0eBjixDkIocO5BLUQgdPt3afKrHXn0hCg/ReWfl+7bhvtyOKJj6v8N938= packer' > /target/root/.ssh/authorized_keys;
apt-cdrom-setup apt-setup/cdrom/set-first boolean false
apt-mirror-setup apt-setup/use_mirror boolean true
popularity-contest popularity-contest/participate boolean false
tasksel tasksel/first multiselect standard, ssh-server
I also have a post script installing a few additional packages after the system first boots (connecting via ssh):
#!/bin/bash
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y psmisc \
ca-certificates \
git \
lsb-release \
net-tools \
python3 \
parted
echo "" > /root/.ssh/authorized_keys
deluser --remove-home packer
The system then shuts down and saves to an image in proxmox. I then experience the issue when booting up any cloned VM for the first time.