vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Discussions related to using VirtualBox on Windows hosts.
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Post by mdjurfeldt »


ModEdit; related ticket: #17431: vmdk stops working when upgrading 5.1.30 -> 5.2.4 (Error ID: DrvVD_DISKFULL)
When upgrading to version 5.2 (all versions up to and including 5.2.18, my virtual disk has stopped working. The machine is paused at startup and yields the error message below (Error ID: DrvVD_DISKFULL). If I resume the machine, it seems to run sluggishly and never boots.

Here's a log from an attempt to start using version 5.2.4 and my vmdk file (which uses the raw disk). Note that this file has worked perfectly for many versions of VirtualBox up until and including 5.1.30.

Also, if I downgrade to 5.1.30 again, my virtual machine with its ram disk works again.

If I go into settings in VirtualBox manager and look at "Storage", it says:
Virtual Size: 476.94 GB Actual Size: 1.86 TB
which I find strange...

Here's the error message I get when trying to start the machine using 5.2 versions:
An error has occurred during virtual machine execution! The error details are shown below. You may try to correct the error and resume the virtual machine execution.

Host system reported disk full. VM execution is suspended. You can resume after freeing some space.

Error ID: DrvVD_DISKFULL Severity: Non-Fatal Error
Last edited by socratis on 5. Oct 2018, 07:30, edited 2 times in total.
Reason: Added ticket related information.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mpack »

I don't particularly care to read a log online, and for the wrong version too.

Please post a VM log for the 5.2.18 version. With the VM fully shut down, right click and "Show Log" in the GUI, save "VBox.log" (no other file) to a zip, and attach the zip here.

I'll tell you this much: I'm already 99% that you get disk full errors only when the host partition is full.
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

OK, here's the log. However, there's 11 GB of free space on the host disk. At the point where the error is reported, there's still 11 GB available.

Is there some new functionality in the 5.2 series which requires a lot more disk space than 5.1.30? Could it be that it tries to reserve a huge amount of space and fails?

Attaching the log.
Attachments
Linux-2018-10-04-12-10-55.zip
Log for 5.2.18
(33.3 KiB) Downloaded 21 times
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

Note that in my case, I use a vmdk raw disk which gives the VM the entire host disk, i.e. *outside* the host file system.

Could it be that there's a buggy check for disk space that looks at the amount of space the VM uses (the entire host disk) and checks whether this amount of space exists *inside* the host filesystem (which is only one of the partitions---zeroed out in the vmdk).
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mpack »

No, such a bug could not exist. Only dynamic media formats change size, which is the only time a host disk space check occurs. Also, describing a physical host drive using the descriptor for a dynamic disk format would be a pretty catastrophic user error.

I'll stop there, since I have a policy of not helping people use the raw disk feature. Raw disk access is an experts only feature - those qualified to use shouldn't need my help.
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

Well, I think that I have sufficient competence to use the raw disk feature and that what we see here is likely to be a Virtualbox bug.

So, I throw out the question anyway: Any idea what could be wrong here? Attaching my vmdk file.
Attachments
disk0.zip
My vmdk
(540 Bytes) Downloaded 24 times
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

I freed up some space and still get the disk full error with 23.9 GB free space. I also lowered the amount of memory in the VM to 4 GB.

Note also that the VM does run with 5.1.30...

I have reported this as a Virtualbox bug ages ago with no real response. Any idea how to get the attention of the developers?
socratis
Site Moderator
Posts: 27330
Joined: 22. Oct 2010, 11:03
Primary OS: Mac OS X other
VBox Version: PUEL
Guest OSses: Win(*>98), Linux*, OSX>10.5
Location: Greece

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by socratis »

mdjurfeldt wrote:I have reported this as a Virtualbox bug ages ago with no real response.
Putting that sentence in perspective:
  • Reported = Ticket #17431. Information about the ticket added to the first post and the thread title.
  • Ages ago = 9 months ago, on 2018-01-08.
  • No real response = Well... actually you got a response, but you hadn't enabled e-mail notifications... ;)
mdjurfeldt wrote:Note that this file has worked perfectly for many versions of VirtualBox up until and including 5.1.30.
And what if it was a bug that was fixed? "It used to work" is often a sign of regression, but sometimes it's a sign of a hole that's been fixed.
mdjurfeldt wrote:I use a vmdk raw disk which gives the VM the entire host disk
That's really dangerous and completely reckless IMHO. I believe I mentioned that in the ticket as well...
mdjurfeldt wrote:i.e. *outside* the host file system.
What does that even mean?
Do NOT send me Personal Messages (PMs) for troubleshooting, they are simply deleted.
Do NOT reply with the "QUOTE" button, please use the "POST REPLY", at the bottom of the form.
If you obfuscate any information requested, I will obfuscate my response. These are virtual UUIDs, not real ones.
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

socratis wrote:• No real response = Well... actually you got a response, but you hadn't enabled e-mail notifications... ;)
Not trying to shift blame or anything, but you saw that I rather quickly responded to you 9 months ago? Just pointing this out if you happened to miss my response. Thank you for responding now! :)
socratis wrote:
mdjurfeldt wrote:Note that this file has worked perfectly for many versions of VirtualBox up until and including 5.1.30.
And what if it was a bug that was fixed? "It used to work" is often a sign of regression, but sometimes it's a sign of a hole that's been fixed.
Well, if that's the case then we should be able to find something that I do wrong. But I do get a disk full error message when the disk clearly is not full...
socratis wrote:
mdjurfeldt wrote:I use a vmdk raw disk which gives the VM the entire host disk
That's really dangerous and completely reckless IMHO. I believe I mentioned that in the ticket as well...
The way I have set it up it shouldn't really be any more dangerous than giving access to a single partition. In order to protect regions of the disk which shouldn't be accessed I have them either marked as ZERO regions in the vmdk file or mapped to a file.
socratis wrote:
mdjurfeldt wrote:i.e. *outside* the host file system.
What does that even mean?
The host file system resides in partition 3. The VM operates on the entire disk (including partition 3, although it is zeroed out in the vmdk). Since the VM accesses regions outside of parition 3, I consider that outside of the host file system.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mpack »

mdjurfeldt wrote:I consider that outside of the host file system.
It isn't. The host loads a driver which manages the entire disk, including the partition map. For each mounted partition it has a child object which manages that filesystem. If your VM is treating the entire disk as its private property then it's a disaster waiting to happen. If you don't believe me then just run the partition manager inside the VM. Make a backup of the host drive first.

I'm surprised that a Windows host even allows this. I thought Win7 (*) stopped allowing write access to drives opened at sector level. To get past that you either have to write a kernel level driver, or disable all protections on the drive.

(*) IIRC, Vista brought in the prohibition. Win7 provided ways to get around it.
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL)

Post by mdjurfeldt »

Full quote deleted: the original text is right above this.

Did you see my previous reponse to socratis in the same text? Also, please read and understand my VMDK file, which is accessible in ticket #17431.

The host doesn't have any other partition mounted than its own, and the VM has the host partition blanked out and its partition table in a file in the host filesystem.

Thus, a partition manager, or any kind of code, inside the VM can't do a thing either to the disk partition table or to the host file system. I also claim that my setup is *exactly* as secure as any kind of use of the raw disk access feature.
Last edited by mpack on 5. Oct 2018, 17:01, edited 1 time in total.
Reason: Delete unnecessary full quote.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Post by mpack »

I've looked at the descriptor posted above, so ok, I see what you've done.

The only questions that spring to mind are:
  1. Why so many source extents when they appear to be contiguous? No error here, I'm simply curious.
  2. Can you quote the number of sectors on drive "\\.\PhysicalDrive0"? I.e. have you checked that you aren't oveflowing the LBA count on this drive?
  3. The last VMDK extent seems to define an upper partition map. Why? Is this an GPT partitioned drive?
  4. Again on that last extent, it's a file (not a disk access), but you configure a humungous offset into that file as if it was a disk access. It implies a suspiciously and unnecessarily large file if it only contains a 17KB partition table at the upper end. Is this extent correctly defined?
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Post by mdjurfeldt »

There's an important update in the ticket now: 17431#comment:10.
mpack
Site Moderator
Posts: 39156
Joined: 4. Sep 2008, 17:09
Primary OS: MS Windows 10
VBox Version: PUEL
Guest OSses: Mostly XP

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Post by mpack »

Comment #10 in ticket wrote: I can now report that I have found a "solution" to this problem.
...
So, I guess you can close this ticket.
IMHO you could be more honest in that post on the ticket. This was user error, there is no mystery.

The "fourth argument in the extent" is a source offset, not a destination offset. The extent definition consists of a size in sectors, file (or device) name of the source, and source offset (in sectors). The destination offset is always immediately following the end of the previous extent, so that is not part of the definition. The main purpose of the source offset is when talking to a raw disk, allowing you to select a partition there instead of the whole disk. This information is available in the VMDK spec published by VMWare, guesswork is not required. Besides which the purpose of the field is very obvious.

So, what you seem to be saying in the ticket was that you had a bug in your manually crafted VMDK descriptor: you specified an illegal file offset for the final extent. If the current version of VirtualBox now gives you an error for this and previous versions didn't: well it was the previous versions which got that wrong.

You mentioned on the ticket that changing the offset to 63 fixes the problem. In other words it prevents the addressing error. However it also means that the guest is accepting random data in that location on the drive, which means that you didn't need to a address a file at all. You could replace it with a ZERO extent and I'd bet the guest would still boot.
mdjurfeldt wrote:Well, I think that I have sufficient competence to use the raw disk feature and that what we see here is likely to be a Virtualbox bug.
'nuff said. :roll:
mdjurfeldt
Posts: 20
Joined: 3. Feb 2016, 16:46

Re: vmdk stops working when upgrading 5.1.30 -> 5.2.18 (Error ID: DrvVD_DISKFULL) (#17431)

Post by mdjurfeldt »

mpack,

Just FYI:

Unfortunately, I read your response from Oct 5 first after writing the "problem solved" entry in the ticket (in fact, I saw it first now). I thank you for that response, where you actually tried to help me.

Otherwise, as you say, enough said.
Post Reply