Some findings related to "no cdrom found"

Jul 7, 2021
33
3
13
Hi everyone,

New to this community, the other day I decided to start playing with proxmox to see if I can move our company to proxmox.

Like others before me I ran into the "no cdrom found" error and I would like to share some of the insights I gained.

My initial attempts to boot were from a "Sandisk Extreme Portable SSD" and not from a "simple" USB disk (disk-on-key whatever you want to call it).
No matter what I tried (I tried different methods to get PVE on the disk-on-key, tried different USB2/3 ports) I could not get that to boot and it seems that the Proxmox 6.4 was actually unable to detect the device.

After switching to a "simple" disk-on-key (Sandisk Cruzer Blade) install ran without a hitch.

Today I retried this with Proxmox 7 and now the external SSD worked, this lead me to suspect that the buster/6.4 stack simply did not detect/handle certain USB devices properly.
I confirmed this theory by booting both stacks from the external SSD and running 'blkid' and 'ls /sys/block/' where under the 6.4 stack one less disk was detected.

Hopefully this information will help others :)

Also as a suggestion for the init script - maybe it should be possible to search a directory containing the pve-id thus allowing the use of multiboot disk-on-keys instead of being limited to the iso9660, mounting etc, there are an awful lot of assumptions made in the init script that make it very prone to breakage as far as my understanding goes.

It could be some loop that:
1. leverages blkid (available in the squashfs)
2. mounts the available blockdevices with whatever type they are
3. runs a find in the mounted fs for pve (possibly limited to a certain depth to make sure it is fast)
4. if pve found great mount properly & continue
5. else unmount & repeat for next blockdevice
(also *show detected blockdevices to user so they can see if their particular device is not supported/detected*)

Again HTH and excited to start trying out proxmox!
 
Hi,
Today I retried this with Proxmox 7 and now the external SSD worked, this lead me to suspect that the buster/6.4 stack simply did not detect/handle certain USB devices properly.
Yes, the modern USB Attached SCSI (UAS) protocol that USB 3.x (pen) drives nowadays start to use more and more was not loaded in the old installer, one could have worked around that but naturally ugly. The Proxmox VE 7.0 ISO loads the required module automatically and allows to use those modern drives just fine.

From the release notes:
Support ISOs backed by devices using USB Attached SCSI (UAS), which modern USB3 flash drives often do.
- https://pve.proxmox.com/wiki/Roadmap#Proxmox_VE_7.0

It could be some loop that:
1. leverages blkid (available in the squashfs)
2. mounts the available blockdevices with whatever type they are
3. runs a find in the mounted fs for pve (possibly limited to a certain depth to make sure it is fast)
4. if pve found great mount properly & continue
5. else unmount & repeat for next blockdevice
(also *show detected blockdevices to user so they can see if their particular device is not supported/detected*)
That's basically the way it is already done though. We use blkid, we scan and mount all block devices and we use the pre-generated ID check as security that we actually found the right ISO (there can be more than one attached on some blockdevices).
So thanks for the proposal, but that's how it happens since years already :)
 
  • Like
Reactions: Stoiko Ivanov
That's basically the way it is already done though. We use blkid, we scan and mount all block devices and we use the pre-generated ID check as security that we actually found the right ISO (there can be more than one attached on some blockdevices).
So thanks for the proposal, but that's how it happens since years already :)
I'm sorry, maybe I was not clear enough, and maybe I misunderstood.

But from reading the 6.4 init I understood that:
1. the script "assumes" that all block devices are iso9660 instead of allowing them to be formatted in any way
2. It only searches at a fixed path instead of using for instance "find -maxdepth=3 /mount/path -name .pve-cd-id.txt" this prevents the Proxmox installer from working with multisystem boot disks

I am referring here to the 6.4 init script lines 262 through 323, it could be that things were changed in 7.0.
 
But from reading the 6.4 init I understood that:
1. the script "assumes" that all block devices are iso9660 instead of allowing them to be formatted in any way
2. It only searches at a fixed path instead of using for instance "find -maxdepth=3 /mount/path -name .pve-cd-id.txt" this prevents the Proxmox installer from working with multisystem boot disks
Ah yes, that's way less than the whole points that you suggested first, which was a bit confusing to me, as basically all of them were already done.

And I figure that "awful lot of assumptions" are also just the two then too? :)
I.e., support some other FS - which should not be a hard requirement for creating a drive with multiple different ISOs on it, but I understand that most tooling insist on extracting and shuffle stuff around - personally not a big fan of those as it makes verifying integrity hard to impossible and places a lot of trust in that tool.
It sounds a bit to me that what you'd actually need for that is just doing the simple find first, and if such a file is found, and matches the expected ID, it would just short-cut the ISO search and continue straight there. As in such a multi boot "thingy" the mounting could be handled by the multiboot tool/script anyway?
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!