Hello,
On Fri, 11 May 2007 14:42:50 +0200
"Dmitry A. Kuminov" <[EMAIL PROTECTED]> wrote:
> Hello, Matt!
>
> Matt Cheddar wrote:
>
> > I've had this problem before and it has just happened again (using
> > Ubuntu Feisty). The problem came about after i deleted an .iso from
> > my hard drive that i had finished with, but i had forgotten it was
> > still mounted to a VM. So in VirtualBox i removed the .iso in the
> > CD/DVD section, assuming this would unmount it from any VMs still
> > using it, but the VM is still marked as inaccessible with the "Could
> > not find a registered CD/DVD image with UUID ..." message.
>
> Thanks for your feedback! It really clarifies some important details,
> but not all.
>
> 1. You said "in VirtualBox i removed the .iso in the CD/DVD section". Do
> you mean that you opened the Virtual Disk Manager, selected the
> unaccessible .iso there and pressed the Remove button? It's not possible
> because the Remove button should stay disabled if the .iso is mounted to
> some VM(s).
Yes this is what i did. For some reason the remove button was not disabled!
>
> 2. You also say that "the VM is still marked as inaccessible". Does it
> mean that it was already marked inaccessible before you tried to remove
> the problematic .iso in VDM?
To be honest i cannot remember what it was marked as before. I can remember the
VM wouldn't start and that's when i remembered i had earlier deleted the .iso i
was using with that VM. Then i went to the virtual disk manager and removed the
.iso. At this point it was definitely marked as inaccessible but whether it was
marked as that before, i'm afraid i don't remember.
>
> On the other hand, I know one 100% way to reproduce the behavior you
> experienced: if you manually edit the VirtualBox.xml file and remove an
> entry corresponding to the given .iso, you'll end up with exactly the
> same situation (which is quite expected, because it assumes that if you
> manually edit .xml you become fully responsible to maintain its
> consistency).
>
> If the above (manual .xml editing) is not the case, then please provide
> more feedback. In particular a 100% way to reproduce would be ideal.
I had definitely not edited the .xml at this point. The only editing was done
as a last attempt to remove the mounted .iso.
>
> > Starting
> > the VM with VBoxSDL gives the less helpful error:
> >
> > Could not open VirtualBox session! Error info: The object
> > functonality is limited (component Machine).
> >
> > I also tried modifyvm with -dvd none on the VM but that gives:
> >
> > [!] FAILED calling virtualBox->OpenSession(session, uuid) at line 3011!
> > [!] Primary RC = 0x8000FFFF
> > [!] Full error info present: true, basic error info present: true
> > [!] Result Code = 0x8000FFFF
> > [!] Text = The object functonality is limited
> > [!] Component =
> > Machine, Interface: IMachine, {fd443ec1-0009-4f5b-9282-d72760a66916}
> > [!] Callee = IVirtualBox, {e1d95593-f579-4f47-b489-0b67181014e1}
>
> All this means the same: the consistency of either the machine .xml or
> the VirtualBox.xml is broken (i.e. a syntax error in the VM .xml, or it
> is syntactically valid but refers to a media that is not enumerated in
> VirtualBox.xml, etc.). It should be not possible to bring VirtualBox to
> such a condition using normal GUI or any other frontend operation. If it
> is possible, it's a bug.
The only operation i had performed outside the GUI was deleting the .iso from
my hard disk. After this the VM wouldn't start so i removed the mounted .iso
through the virtual disk manager and you have the errors i got from this point
onwards.
>
> > Another thing i tried was adding the .iso again in VirtualBox, but
> > the UUID does not match up with the one that VirtualBox is saying is
> > not registered. I do not know if the UUID is a function of its path
> > but that is the only thing that differs between it being mounted now
> > and it being mounted earlier (before deleting it from the hard drive
> > i backed it up and MD5ed it so i know this is an exact copy of the
> > previously working .iso).
>
> UUID for .iso images is randomly generated when they are registered, so
> every time you register a (even the same) image file, it gets a new
> UUID. As opposed, hard disk images (.vdi) store UUIDs inside, so
> registering the same image twice will give you the same UUID.
Ok that would explain why i couldn't convince it the .iso was mounted again.
Thanks for clearing that up :-) I wonder if some option to choose the UUID
would help. Perhaps that isn't necessary though when whatever caused the
problem in the first place is tracked down.
>
> > Rather forgetfully i cannot remember in
> > which folder the .iso was previously located so copying it back to
> > the same folder is not feasible, assuming that would affect the UUID
> > in any case.
>
> No, it doesn't affect it.
Thanks.
>
> > When this same problem happened before i used clonevdi to clone it
> > which worked fine but unfortunately this is a large VM and i do not
> > quite have enough free space left to try that on this occasion.
> >
> > So finally i edited the VM's .xml file and changed the DVD part
> > (removing the UUID of the mounted .iso) to:
> >
> > <DVDDrive passthrough="false"/>
>
> passhtrough is unrelated here. Once you went to editing the VM .xml by
> hand, you could instead simply remove the <Image> element from within
> the <DVDDrive> element to get rid of the problem completely. I.e.,
> suppose, you have
>
> <DVDDrive passthrough="false">
> <Image uuid="{9a736681-040b-418f-b79e-750b70c52086}"/>
> </DVDDrive>
>
> and VirtualBox marks the VM as inaccessible and says "Could not find a
> registered CD/DVD image with UUID
> {9a736681-040b-418f-b79e-750b70c52088}.". In this case it's enough to
> make the above excerpt look like that:
>
> <DVDDrive passthrough="false"/>
>
> in order to effectively "unmount" an .iso that makes problems. Then, you
> can open VM settings and mount a proper .iso again.
Thanks. The .xml looked like your first example above and the UUID matched the
previously removed .iso. I guess that confirms that somehow i did remove a
mounted .iso through VirtualBox. I copied the <DVDDrive passthrough="false"/>
line from a working VM and after this it worked.
>
> > Why didn't removing the .iso from within VirtualBox automatically
> > unmount it from all VMs?
>
> It should be not possible to remove the .iso if it is mounted. If it is,
> please report as a bug with steps necessary to reproduce :)
I think this is where the problem originates then. Somehow i did remove a
mounted (but deleted from my hard disk) .iso. I will have a try at reproducing
it later (chances are it'll work fine!).
>
> > Why couldn't i start the VM even when the
> > .iso was not found (but with it unmounted of course)?
>
> Because it wasn't just that the .iso was not found -- the integrity of
> the VM .xml was broken (it couldn't resolve UUID to a file name which
> should normally never happen).
But if i have moved or deleted the .iso like in this case then surely it can
happen and it doesn't seem unreasonable (in my limited knowledge!) that in this
case the .iso is unmounted when the VM is started (perhaps with a message box
explaining the UUID is not found and confirming the user would like to do this).
>
> > Why didn't
> > modifyvm work as expected?
>
> It worked as expected. When inegrity of a VM is broken it is placed to a
> special "limited functionality" state seen as "inaccessible" in the GUI.
> This is done to 1) prevent the whole VirtualBox application from being
> unusable in case of a failure with a single VM, and 2) give you an
> opportunity to manually fix the problem and then try to reload the VM
> again w/o restarting the whole VirtualBox server, or, alternatively let
> you unregister the failed VM if you don't want to deal with it.
Ok i think i've been taking a different attitude over mounted .iso's. I've been
considering them just like a disk or a cd drive that i can remove and still
start the VM, just as if i did so with a real machine. It seems that the
attitude i should take is that a mounted .iso is an integral part of a VM and
must in no way be touched outside the provided interface.
The problem with this, at least for me, is that i keep my .iso's on a separate
partition and use them with various different operating systems and with
various software and something must click in my head that once mounted they
effectively belong to VirtualBox. I do not instantly think 'i must check with
VirtualBox that i can delete this .iso' before doing so - although perhaps i
should :-)
>
> > Why did the VBoxSDL error not match the
> > VirtualBox error?
>
> Because the current version of VBoxSDL/VBoxManage can only notice that
> the VM is "inaccessible", but they cannot retrieve the detailed
> description reason of limited functionality as GUI does.
Fair enough!
>
> > Why did the UUID appear different when i mounted
> > the same .iso?
>
> Because we are not presently aware of any way to embed custom UUIDs to
> an arbitrary .iso file especially when it is read-only for some reason.
Ok! Maybe a CRC of the first xxx k would be enough. I doubt many people have
enough .iso's to generate a collision but anyway that doesn't matter.
>
> > Sorry for all the questions but i hope this at least explains the
> > problem i faced and possibly a workaround solution for anyone else in
> > the same boat :-)
>
> No need to sorry, your questions are very clear, and therefore it's
> rather easy to answer them.
>
Thank you for your help,
Matt
_______________________________________________
vbox-users mailing list
[email protected]
http://vbox.innotek.de/mailman/listinfo/vbox-users