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.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
927229 Windows 2000 Resource Kit Tools for administrative tasks
Note: DMdiag.exe is included in the Windows Server 2003 support tool.
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 Sectorsmenu, 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 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.
- From a command prompt, type
diskpart, and then press ENTER.
- Type select disk number (where disk numberis 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.