Paragon PM 11 FAT32 Format Problem

Discussion in 'Paragon Partition Manager Product Line' started by otlaolap, Nov 1, 2011.

Thread Status:
Not open for further replies.
  1. otlaolap
    Offline

    otlaolap Registered Member

    I have Paragon Partition Manager 11 Free (very nice, thanks) on my Windows XP SP3 machine, and use FAT32 for historical reasons. But the FAT32 partitions created by PM 11 are not considered valid by GRUB, and I think PM 11 may not be initializing a couple of fields in the FAT32 header in Sector 0 properly. The partitions work fine in Windows, but they are not seen by the GRUB boot loader.

    In particular, according to a Microsoft article http://technet.microsoft.com/en-us/library/cc776720%28WS.10%29.aspx, the FAT32 header in Sector 0 of the partition has at offset Hex 1C the number of sectors before the boot sector (sector 0 of the partition), and this is the absolute number of sectors on the disk before this boot sector. Often PM 11 is putting the number 3F (hex) in this field, no matter where on the disk the partition is located. Hex 18 (two bytes) is sectors per track, and Hex 1A (two bytes) is number of heads. PM is making these fields 32768 (decimal) and 2 (decimal) respectively. If I change these filelds to 63 and 255, corresponding to the reported geometry of the disk, and of I change the field at Hex 1C to be the absolute starting sector reported by the PM 11 overview screen, then the partition is detectable by GRUB.

    These fields are filled in by other formatting software in the manner corresponding to the changes I mention above.

    Can someone truly knowledgable comment before I risk changing my production partions so that I can read them and boot them from GRUB?
  2. Mech_An
    Offline

    Mech_An Registered Member

    GRUB should be able to work with partitions aligned to cylinder. Maybe you need to re-init GRUB to make it work with FAT32 partition with offset 3F.
    I suppose in your case GRUB simply fails to find FAT32 partition with the start 1C
  3. otlaolap
    Offline

    otlaolap Registered Member

    I think possibly I need to be clearer because I have been misunderstood.

    The FAT32 header in sector 0 of a FAT32 partition has a field at offset 1C in the header. This four-byte field states where on the physical drive the first sector of the partition is -- the absolute sector number on the physical drive of the first sector of the partition. So if a FAT32 partition starts at sector number (hex) AA12800, for example, then in sector 0 of that partition at offset 1C you must have the number AA12800. This is the sector where the partition starts, and Paragon is not placing the correct number there. It often places the number "63" decimal, which in old days of cylinder-head-sector alignment was conventionally the sector on which the first partition on a physical drive would start, but it is not the sector where my example partition above begins. And, just for a simple exercise in logic, not all the FAT32 partitions on a single drive can start at sector 63, yet that is what is claimed in the headers placed after formatting with PM 11.

    And the numbers Paragon places for heads and sectors-per-track to not agree with the numbers reported by the drive.

    The absolute sector number at offset 1C in sector 0 of a partition seems to be correct on the first partition on a physical drive (it is hex 800 on one drive with a primary first partition and hex 1800 on another drive with a lotgical parition inside an extended partion on that drive) (both these agree with the starting sector repored by the partition manager) but is not correct for subsequent partiitons on the drives.

    [edit -- added the below later]

    I put this to the test in a different way. Using Paragon Backup and Recovery 2011 Free (very nice again and thanks again), I backed up one of these partitions that I think is formatted incorrectly. Then I restored that backup into two different locations -- a completely different location on the drive, and back to the original location. In both cases the three fields at hex 18, 1A, and 1C were updated with correct values: 18 (sectors per track) became 63 (decimal); 1A (heads) became 255 (decimal); and 1C became the absolute starting sector of the partition on the physical drive (and agreed with the number reported by Partition Manager in its disk map).

    So I think this is a FAT32 formatting bug in Partition Manager.
    Last edited: Nov 1, 2011
Thread Status:
Not open for further replies.