Proxmox cloud-init drive shows as cdrom — that’s normal. The cloud-init ISO gets attached as a CD-ROM so the guest can read it once and then it’s gone. But if the drive changes bus or storage after you’ve set it up, that’s a different problem. Here’s how to tell which one you’re dealing with.

What the cloud-init CD-ROM should look like
When you add a cloud-init drive to a VM, Proxmox creates a small ISO on the storage you pick and attaches it as a CD-ROM. In the VM’s hardware tab it shows as a CD/DVD drive with the cloud-init icon. The bus is usually IDE or SATA, depending on the VM’s machine type. That’s expected. It’s not a bug. The drive is there so cloud-init can inject user-data, meta-data, and network config on first boot. After that, it’s just a leftover device unless you regenerate the image.
When it’s actually broken
The forum thread that ranks for this keyword mixes up two things: the normal cloud-init CD-ROM and a real remap. A real remap happens when the drive’s bus or storage changes without you doing it. Maybe you moved the VM to another node, restored from a backup, or edited the config by hand. Then the drive might show as a different bus (like SCSI instead of IDE) or point to a storage that doesn’t exist. That’s the broken case. The VM might still boot, but cloud-init won’t run because the drive isn’t where the guest expects it.

How to check
First, look at the VM’s config. Run this on the Proxmox host:
qm config <vmid>
Find the line that starts with ide2 or sata0 or whatever bus the cloud-init drive is on. It should look something like:
ide2: local-lvm:vm-100-cloudinit,media=cdrom
That’s the expected output. The storage is local-lvm, the file is vm-100-cloudinit, and media=cdrom is set. If the storage is missing or the file name is wrong, that’s your problem.
Second, check the VM’s hardware tab in the web UI. The cloud-init drive should be listed as a CD/DVD drive with the cloud-init icon. If it shows as a hard disk or the icon is missing, the drive got remapped. You can fix that by removing the drive and re-adding it. In the web UI, select the drive and click Remove. Then go to the Cloud-Init tab, set your options, and click Regenerate Image. That recreates the drive with the correct bus and storage.
Third, if the VM was moved between nodes, the storage might not be available on the new node. Check the storage list on the new node. If the storage is missing, you need to either add it or move the cloud-init drive to a storage that exists. You can do that from the web UI by editing the drive and changing the storage.
What I’d do
If the drive shows as a CD-ROM and the VM boots fine, leave it alone. It’s supposed to be there. If the drive changed bus or storage, just remove it and regenerate it. That’s faster than trying to fix the config by hand. And if you’re using snippets for cloud-init, make sure the storage for snippets is available on all nodes. I wrote about that in Proxmox snippets feature.
One more thing: if you’re seeing the cloud-init drive as a CD-ROM and the VM won’t boot, check the boot order. The CD-ROM might be trying to boot before the disk. In the VM’s options, set the boot order to disk first, then CD-ROM. That’s a common gotcha.