Error booting VMDK raw disk, but not from VHD created from the same physical drive

0

I have an unusual problem with a virtual machine. I have a multiboot (Windows XP and Linux From Scratch) installation in a secondary physical drive, and I created a .vmdk that points to that drive to be used directly (raw disk). I took a snapshot of the initial state of the VM right after creating it. I managed to boot both operating systems in the drive and everything worked OK. Then I decided to delete the snapshot, as I no longer needed it. When I restarted the machine, it no longer booted XP. There is no problem with the bootloader, as LFS still boots OK, and XP loads the drivers and shows the Windows logo, but after a few seconds it throws the following error:

UNMOUNTABLE_BOOT_VOLUME STOP: 0x000000ED (0x8679D900, 0xC0000015, 0x00000000, 0x00000000)

Here comes the strange part: I created a .vhd file of the windows partition with disk2vhd, to try solutions in the virtual drive, before attempting them in the physical disk. I attached this .vhd to the same VM, and XP booted perfectly! It went all the way to the desktop and works just fine. Tried again with the physical drive (through the .vmdk file), and got the same error as before.

Context:

Host: Windows 10 Pro (2004)

VirtualBox (6.1) - always run as Administrator to get direct access to the physical disk.

Guests: Windows XP and Linux From Scratch 7.10. vmdk pointing to physical drive. Initial bootloader from windows, with Grub taking over when selecting LFS.

I've tried using chkdsk from the recovery console (booting from the XP installation disk), from Hiren's Boot CD 15.2, and from Windows 10 directly to the physical drive. Also tried ntfsfix from LFS. None of this worked.

Does anyone have an idea of what could be causing this? I'd like to avoid V2P, as it seems too risky.

I hope the description makes sense. If not please let me know.

Thanks in advance.

EDIT:

I've tried the ideas posted by rfmodulator.

  1. The partition couldn't be mounted in linux. I got the following error:

The disk contains an unclean file system (0, 0). Metadata kept in Windows cache, refused to mount. Failed to mount '/dev/sda1': Operation not permitted. The NTFS partition is in an unsafe state. Please resume and shut down Windows fully (no hibernation or fast restarting), or mount the volume read-only with the 'ro' mount option.

Since I can't load XP, I can't try sutting it down again.
Tried both ntfs and ntfs-3g.
Mounting it with '-o force' produced the same output.

  1. No ntbtlog.txt, or bootlog.txt is created during XP boot when selecting the "Enable boot log" option (through F8).

  2. A new VM with the vmdk file attached took a little bit longer to boot, but ended up showing the same error:

UNMOUNTABLE_BOOT_VOLUME
...
STOP: 0x000000ED (0x8679D900, 0xC0000015, 0x00000000, 0x00000000)

The volume is accessible from Windows 10. I can read and write to it.

I don't really know how disk2vhd works, but I thought that maybe when the .vhd is created with it some sort or rearranging of the files is done to leave out the blank space and "condense" the volume to a single file, so I defragmented the physical drive, but nothing changed when booting from the .vmdk.

I also thought about permissions, but I don't think there is nothing to change there, as everything worked before deleting the snapshot.

boot
windows-xp
virtualbox
vhd
vmdk
asked on Super User Sep 11, 2020 by Pertrecho • edited Sep 13, 2020 by Ahmed Ashour

1 Answer

0

OK, I've found a partial solution, thanks to this post in VirtualBox forums. For some reason when the disk is online in Windows 10, virtualbox can't write to the NTFS partition in it (but has no problems with ext4). So, by marking it as offline from the disk manager, I was able to boot XP in the VM. It works notably slower, but it works.

The problem is that I can't access the disk simultaneously from W10 and XP, as it must be online for the former and offline for the latter. Also, when putting it online again, it marks it as readonly, and I need to clear that attribute with diskpart.

Does anyone have an idea of how to keep the disk online, but with write permissions from VirtualBox?

answered on Super User Sep 12, 2020 by Pertrecho • edited Sep 14, 2020 by Pertrecho

User contributions licensed under CC BY-SA 3.0