Brian_K wrote:
Any comments and experience welcomed.
I used a 40 GB GPT HD containing a 10 GB partition. The partition was seen in Ghost and could be used as a destination drive. ie I could write an image of the Win7 partition to the 10 GB GPT partition.
Ghost 15 could not create an image of the 10 GB partition and could not do a Copy Drive of the partition.
Hi, Brian. This is consistent with the Ghost 15 Documentation. My understanding is as follows:
Ghost 15 knows how to use a non-bootable GPT Partition as a Target Destination. Ghost also knows how to use a GPT Partition as the location for a Source file for an image Restore of an MBR-style 48-bit-LBA Partition. This implies Ghost 15 can write to a GPT-style Target Partition during a Backup - or read that GPT Source Partition's image file during a Restore - using the same kind of system calls Ghost would use to write/restore to/from a Network Share.
However, to Backup a GPT partition, Ghost must be able to build an *.sv2i file with a copy of the MBR, the 48-bit-LBA Partition Table data and the GPT data - when it backs up all the Partition Info for that Source Partition on a Hard Disk with a GPT as well. The problem is, Ghost knows absolutely nothing about what it needs to do to be able to read the needed GPT information from the source Hard Disk's Partition Table - and incorporate that info into the *.sv2i file. Thusly, even if Ghost were permitted to Back Up a GPT Partition - it would not be able to restore said Partition.
During a Restore of an MBR Partition to an empty Drive - the *sv2i file data is a critical component which allows the automatic "rebuilding" of the MBR-style 48-bit-LBA Partition info - onto the Target Hard Disk. However, if Ghost wanted to Restore a stored image of a GPT partition to an empty hard drive, Ghost would have to have a complete set of Partition Table data, containing the MBR, the 48-Bit-LBA Partition Table data and the GPT data - in order to perform said successful Restore of a GPT Partition. This requires the data in the image file's *.sv2i file to contain the GPT data as well. Without that GPT Partition info - Ghost is unable to create a GPT-style Target Partition Table during said Restore.
Note: The size of the partition is irrelevant. To restore a GPT Partition - on needs to restore the GPT. If the GPT is not restored as part of a Ghost Restore - a backed-up GPT Partition's data is useless. Consequently, Ghost 15 is set up to prohibit the backup of GPT Partitions in its present form.
Another wrinkle:
When overwriting an image to a Target Drive with an existing set of partitions - Ghost compares the info in the Source Image's *.sv2i file against the info it builds by examining the Partition Table on the Target Drive. If this data matches, Ghost will give you a "Green Light" automatically when you go to overwrite the Target Partition.
However, if the info in the Source Image's *.sv2i file does not match the info that Ghost builds by examining the Partition Table on the Target Drive - Ghost refuses to generate a "Green Light" for that automatically-enabled overwrite. This is quite correct.
In order to overwrite a Target Partition with a Source Image where the Partition signatures are mismatched - it is necessary to manually select the Source Image file and then also manually select the Target Partition on the Target Hard Disk. Ghost then knows you are instructing it to cross-match between the two Partitions - and assumes you know what you are doing. Thus - at the end of the manual selection process - Ghost will give you a "Green Light" and do the required translation to allow the overwrite to occur - even though the source and target signatures and Partition Tables mismatch.
The above process works fine when working with MBR-style 48-bit-LBA partition tables, because it is possible to source and target-match the Partition data - as well as translate when restoring an image sourced from one Hard Disk Partition to a different target Partition. With full information on both sets of geometries - Ghost can understand the required translation parameters between the Source partition-table-data in the *.sv2i file and the Target partition-table-data it builds from the Target Hard Disk - in order to Restore the image file's data to a Target partition on a different Hard Disk or a different partition on the same Hard disk.
However, when overwriting a GPT partition, it is necessary to be able to compare the GPT data in the *.sv2i file against the MBR, the 48-bit-LBA Partition Table and the GPT data read from the Target drive. Furthermore, because said GPT data does not exist in the Ghost 15 *.sv2i file in its current form - and Ghost 15 does not know how to translate a GPT Partition in an *.sv2i file into a valid GPT entry for the Target Partition - there is no way to perform the Restore.
There are several things which must be updated for Backup of GPT Partitions to be supported. First, Ghost must be recoded to be able to read GPT data and store said data into the *.sv2i file when backing up any Source Partition on a Hard Disk with GPT Partitions on it. Secondly, Ghost must be able to read existing GPT data (if it exists) on a Target Disk - compare the read data to the data in the new-style *.sv2i file - translate the Partition Table on the Target Disk into a form which is compatible with the both the Target Disk's geometry and the Source File's GPT data - create or modify the appropriate GPT parameters on the Target Disk - and then do the required MFT translation as part of the Restore of the selected Partition.
Once Ghost is updated to do the above (at minimum) Backup and Restore of GPT Partitions will be supported. However, there is a whole lot more to the process. Sanity checks on the GPT. Sanity checks on the size of a created GPT Partition on the Target Drive - to ensure the Target GPT Partition is large enough to hold the Source file's data. Bad sector handling on a GPT Partition - both during backup and restore. Verification of GPT data during Backup. Verification of GPT data during Restore. Sanity checks on the UEFI/GPT interfacing to ensure that however the stored GPT Partition is restored - the UEFI BIOS will be able to read the updated GPT that Ghost creates on the Target.
And that's just the stuff I can think of off the top of my head. I'm sure there's hairier stuff I've not thought about or come up with bulletproofing procedures for - such as mixed MBR with 48-bit-LBA Partition and GPT Source environments - and the translation between the two when restoring a 48-bit-LBA partition to a Target Hard Disk that's all-GPT. And what about tying the restore of a Windows OS Partition to its associated EFI System Partition, OEM Partition (if any) and MSR - including getting that stuff in the right order - as well as ensuring the rest of the GPT Partitions have no "stray" stuff interspersed between them - so spanning is not obstructed. IMO, the required sanity checks on that stuff are going to be rather formidable. 
See the following for more details on how GPT Architecture must be maintained when moving an OS between Hard Disks - as well as how the size of some of the GPT Partitions change automatically depending upon the Target Hard Disk's size.
http://msdn.microsoft.com/en-us/windows/hardware/gg463525
Logic for all this stuff will have to be built into a "GPT-aware" version of Ghost.
Hope this helps your understanding.