We help IT Professionals succeed at work.

Dynamic Volume not recognised after OS upgrade (W2K -> XP Pro). How to recover data?

BabyNSX
BabyNSX asked
on
4,725 Views
Last Modified: 2012-06-08
I have a PC running W2K pro. It contains a 40GB disk (Drive C:) and a 180GB disk (Drive D:). I upgraded the PC to XP Pro, backing up all my data from the C: drive onto the 180GB disk first. I formatted the 40GB disk and installed XP. No problems so far.
When I booted it, the OS cannot see the other disk. In Disk Management it says Disk 1 - Dynamic - Unreadable.

I didn't eve know it was a dynamic disk, and I didn't do anything to it during the upgrade. I tried using the disk in a W2k server and it says the same thing (Disk 1 - Dynamic - Unreadable).

I need to get the data off this disk (about 100GB of stuff). Saw a couple of similar threads but they didn't contain enough specific info on how to fix this.
Why was this disk dynamic anyway? I didn't select an option to make it dynamic when I formatted it originally. And how do I get the data?

Comment
Watch Question

Pete LongTechnical Architect
CERTIFIED EXPERT
Distinguished Expert 2019

Commented:
Hi BabyNSX,
To resolve this issue, you must first use the Diskmap.exe utility or the Dmdiag.exe utility in verbose mode to confirm that invalid system IDs are causing this problem.

Note: To start the Dmdiag.exe utility in verbose mode, type dmdiag -v at a command prompt.

These utilities are available in the Windows 2000 Resource Kit that is located on the following Microsoft Web site:
www.microsoft.com/windows2000/techinfo/reskit/tools/

Note: By default, DMdiag.exe is installed on Windows Server 2003.

Both utilities output MBR information that contains the system ID or partition type in hexadecimal format. The following sections contain examples of output from these utilities.
Example 1: Output from the Diskmap Command
If you run the diskmap /d1 command from a command prompt, you receive the following output.

Note: Some of the data from the output has been removed.
MBR:
         Starting               Ending       System    Relative    Total
  Cylinder Head Sector  Cylinder Head Sector   ID      Sector      Sectors
*        0    1    1         509  254   63     0x0B          63    8193087
       510    0    1         891  254   63     0x42     8193150    6136830
       892    0    1        1006  254   63     0x42    14329980    1847475
      1007    0    1        1023  254   63     0x0F    16177456    1590435
                        
In this example, there is a mix of 0x0B (FAT32), 0x42 (dynamic), and 0x0F (extended-LBA) partition types. The partition table entry that causes the issue that is described in this article is the 0x0B (FAT32) partition.
Example 2: Output from Dmdiag Command
If you run the dmdiag -v command from a command prompt, you receive the following output.

Note: Some of the data from the output has been removed.
---------- Partition Table Info Disk 1 ----------

       Starting        Partition     Hidden       Total  Partition    Partition
 Offset (bytes)   Length (bytes)    Sectors     Sectors     Number   Type (HEX)

         32,256    4,194,860,544         63   8,193,087          0         0x42
  4,194,892,800    3,142,056,960  8,193,150   6,136,830          1         0x42
  7,336,949,760      945,907,200 14,329,980   1,847,475          2         0x42
  8,282,857,472      814,302,720 16,177,456   1,590,435          3         0x0F
  8,282,889,728      814,269,952         63   1,590,371          4         0x07
              0                0          0           0          5         0x00
              0                0          0           0          6         0x00
              0                0          0           0          7         0x00
                        
In this example, there are several 0x42 (dynamic) partition types and an 0x0F (extended-LBA) partition type in the MBR. However, the extended partition includes an 0x07 (NTFS) partition table entry in the EBR, which causes the issue that is described in this article.

You can use Dskprobe.exe to make sure that all of the partition table types are either supported or are of type 0x42 (which indicates a dynamic volume). You can also use the clean command with Dskprobe.exe or Diskpart.exe to remove all partitions on the disk.

To use Dskprobe.exe to change the System-ID value to type 0x42:
Log on to the computer as an administrator, and then start Dskprobe.exe.
Click physical drive on the Drives menu, and then double-click the physical drive that you want to repair.
Click to clear the read-only check box for handle zero, click set active, and then click OK.
Click Read on the Sectors menu, click Read to read sector-0 for one sector.

The partition tables in the MBR appear. The partition table is a 64-byte data structure that is located in the same sector as the MBR at cylinder 0, side 0, sector 1 or physical sector 0 of the physical disk that is using Dskprobe.exe. The partition table conforms to a standard layout that is independent of the operating system. Each partition table entry is 16 bytes long, which makes a maximum of four partitions available. Each entry contains Cylinder, Head, Sector (CHS), and System-ID (XX) information. Each entry starts at a predetermined offset from the beginning of the sector. The following data is an example of the partition table in hexadecimal format:
   000001A0: .....
   000001B0: 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 80 01
   000001C0: 01 00 XX 10 7D ED 3D 00 - 00 00 D9 D0 07 00 00 00
   000001D0: 00 00 XX 00 00 00 00 00 - 00 00 00 00 00 00 00 00
   000001E0: 00 00 XX 00 00 00 00 00 - 00 00 00 00 00 00 00 00
   000001F0: 00 00 XX 00 00 00 00 00 - 00 00 00 00 00 00 55 AA

   Partition-1 starts at 0x01BE - SYSTEM-ID Byte is at 0x01C2
   Partition-2 starts at 0x01CE - SYSTEM-ID Byte is at 0x01D2
   Partition-3 starts at 0x01DE - SYSTEM-ID Byte is at 0x01E2
   Partition-4 starts at 0x01EE - SYSTEM-ID Byte is at 0x01F2
                              
Find the partition table entry whose system ID byte is not one of the supported types, and then change it back to "0x42".

Note: If a logical drive in an extended partition is not one of the supported types, you must browse to the EBR to change this entry.

The following list describes the supported types:
Value: 0x05
File system: Extended partition (which holds the logical drives).
Value: 0x0F
File system: Same as 0x05 and uses Logical Block Address Int 0x13 extensions.
Value: 0x12
File system: Compaq OEM partition.
Value: 0xFE
File system: IBM OEM Partition.

Note: If you use this partition, you must either apply hotfix Q280724 or apply Windows 2000 Service Pack 3 (SP3).
Value: 0xDE
File system: Dell OEM Partition.
Value: 0x42
File system: LDM Dynamic Disk Partition.
After you manually change the System ID byte to 0x42, click Write on the Sectors menu, and then press Write It to save the changes.
Quit Dskprobe.exe, shut down the computer, and then restart it.
Log on as an administrator, start Disk Management, and then confirm that the disk that appeared as "Dynamic Unreadable" is online.
Revert the disk to a basic disk.
Use the following procedure to use the Diskpart.exe utility to clean the disk.

Note: If you use Windows XP or Windows Server 2003, the Diskpart.exe utility is already installed. If you are using Windows 2000, install the Diskpart.exe utility for Windows 2000. To download the Diskpart.exe utility, visit the following Microsoft Web site:
www.microsoft.com/windows2000/techinfo/reskit/tools/

From a command prompt, type diskpart, and then press ENTER.
Type select disk number (where disk number is the physical disk number that you want to clean), and then press ENTER.
Type clean, and then press ENTER.
Type exit, and then press ENTER.
The disk becomes a basic disk that contains unallocated space. You must allow Disk Management to write a new disk signature before you can use this disk.
MORE INFORMATION
For additional information about this issue, click the article numbers below to view the articles in the Microsoft Knowledge Base:
236086 System/Boot Disk Listed as Dynamic Unreadable in Disk Management

280724 Stop 0x0000007B Generated Converting Basic Disk to Dynamic



PeteL
Short answer:

To work around this problem, use a disk editing tool (such as DiskProbe) and save a copy of the master boot record (sector-0 of the physical disk) to a floppy disk, and then change the incorrect system or boot partition system-ID back to a type 0x42.

Next run Regedt32 and ensure the following three services have a Start value of zero:
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesDmboot Start:REG_DWORD:0

HKEY_LOCAL_MACHINESystemCurrentControlSetServicesDmio Start:REG_DWORD:0

HKEY_LOCAL_MACHINESystemCurrentControlSetServicesDmload Start:REG_DWORD:0

After you make these manual repairs, if the computer starts successfully, the dynamic disk should be recognized and associated volumes should become accessible again.

Further checks:
Check that partition/boot signature 0x55AA is correct.  
Check size of the volume as indicated by partition table.
Check that C/H/S addresses match their corresponding LBA addresses.
Check filesystem type indicated by partition table (0x07 means NTFS, 0x42 is an indication of a dynamic volume).

Author

Commented:
I ran Diskmap /d1 and got this result:

Cylinders  HeadsPerCylinder SectorsPerHead BytesPerSector MediaType
    16709               255             63            512      12
TrackSize = 32256, CylinderSize = 8225280, DiskSize = 137436203520 (131069M

Signature = 0x48bdb97d
     StartingOffset    PartitionLength StartingSector PartitionNumber
              32256       137436171264             63               1
       137436203520        47846453760      268430085               2

MBR:
         Starting               Ending       System    Relative    Total
  Cylinder Head Sector  Cylinder Head Sector   ID      Sector      Sectors
         0    1    1        1023  254   63     0x42          63  268430022
      1023    0    1        1023  254   63     0x42   268430085   93450105
         0    0    0           0    0    0     0x00           0          0
         0    0    0           0    0    0     0x00           0          0


The partition type is 0x42 already by the looks of things.
Using Diskprobe and reading sector 0 of disk 1 gives me a load of Hex but it's not obvious where to make the chnage ???

Did you check these?

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Dmboot Start:REG_DWORD:0

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Dmio Start:REG_DWORD:0

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Dmload Start:REG_DWORD:0


Note: If the system will not boot after making the changes, you can use the Microsoft Windows NT Resource Kit Disksave.exe utility to restore the original master boot record (MBR) sector that you saved before making the change.

Author

Commented:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Dmboot Start:REG_DWORD:4

is the only one not at Zero
This article relate to a reinstallation of 2000 but I believe it applies in this case and that reg value should be changed to 0

Use disksave to back out if it doesn't work

http://support.microsoft.com/?kbid=236086

Commented:
I had this problem at one point and here is exactly what I had to do.

1.) Used a recovery software trial program to make sure the data was still good (it was named IRecover).

2.) Using diskprobe I changed the partition type from 0x42 to 0x07 to change it to a basic disk.

3.) I checked the system volume information to make sure the number of sectors matched the maximum number of sectors of the disk (this was way off) and reset it to the correct numbers.

4.)I then rebooted the computer and everything seemed to work good. At max, I lost about 2% of my data (which probably had to do with setting the number of sectors reported in diskprobe).

I had no luck with any of the MS articles on this when I did it. It took a lot of experimenting and changing things to figure out what was doing it. FIRST SUGGESTION: BACKUP a copy of your mbr BEFORE you start playing around with it because you will have to reload it a few times probably while playing with it. ALSO realize that you can lose your data using these methods so be extremely careful what you do. We cannot take any responsibility if you lose any data. If you do not want to attempt to losing data please use a recover software on the drive (IRecover appears to be good). good luck and hope something helps!

guidway

Author

Commented:
guidway

please elaboate on the steps you took to do the following:

> 2.) Using diskprobe I changed the partition type from 0x42 to 0x07 to change it to a basic disk.

> 3.) I checked the system volume information to make sure the number of sectors matched the maximum number of sectors of the disk (this was way off) and reset it to the correct numbers.

thanks
Commented:
This problem has been solved!
(Unlock this solution with a 7-day Free Trial)
UNLOCK SOLUTION

Commented:
glad you got the problem fixed. I had to go out of town and didn't notice your response until today. nice work! :0)

guidway
I'm glad BabyNSX's back up, I have no problem with refunding the points.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions