Thanks. In general, looks fine to me.
Some minor comments:
If there's a read error or non-bootable device, shouldn't it just revert to the original description?
What about "empty" for drives not ready? Drop that too?
I think we should be consistent here: Either be verbose and report "empty" / "read error" / "not-bootable" status in case we figure we can't boot from the drive for one of the listed reasons. Or be quiet and just report the volume label for bootable drives and nothing otherwise.
I've also toyed with the idea to use a higher default priority for non-bootable cdrom drives, so with multiple cdroms and no explicit boot order the bootable would be listed first and used by default. What do you think about this?
There's a nullTrailingSpace() function to remove trailing spaces.
Ah, good, I'll use that.