(1) I see you recovered from a disaster before. Nice going,
(a) What do you use to make and restore a full disk backup?
(b) Can you backup all of disk 2 & restore it (if necessary)?
(c) Did you mean to say you wrote your own BCD (not GPT)?
(d) Are you prepared to do a clean install, if things get even worse?
(2) It would be nicest to have EFI be the first partition on disk 2. But that would take a 3rd-party tool to accomplish. You'd have to create 100 MB of unallocated space at the beginning of the disk by shifting the others rightward by that amount. Well,
you'd...
Partition ### Type Size Offset
------------- ------------ ------- ---------
Partition 1 Reserved 16 MB 1024 KB
Partition 2 Primary 464 GB 18 MB
Partition 3 Recovery 844 MB 464 GB
Partition 4 Reserved 554 MB 465 GB
(a) Delete that 2nd MSR (of 554 MB) to create that much unallocated space.
(b) Shift the remaining 3 partitions rightward by 100 MB.
(c) Shift the Recovery partition all the way rightward (over the remaining 454 MB).
(d) Extend the Primary partition (C:) to claim that 454 MB.
If you do that first, the following will need adjusting.
(3) Well, here is what I come up with...
DiskPart <<<Enter DiskPart
Select Disk 2 <<<Focus on disk 2
Select Part 4 <<<Focus on partition 4 of disk 2
Delete Partition Override <<<Delete partition 4 (that 2nd MSR is now gone)
Create Partition EFI Size=100 <<<Create an EFI partition of 100 MB
Format Quick FS=FAT32 Label="ESP" <<<Format EFI, & name it "ESP" (EFI System Partition)
Assign Letter=S <<<Give EFI the letter S
Exit <<<Exit DiskPart
BCDBoot C:\Windows /s S: /f UEFI <<<That copies boot files from C: to S: (EFI),
& it generates a new BCD.
DiskPart <<<Enter DiskPart
List Vol <<<Show the volumes & letters
Select Vol=S <<<Select the volume of letter S (EFI)
Remove Letter=S <<<Remove the letter from it
Exit <<<Exit DiskPart
Now see whether the computer will reboot. If so, hopefully it has used the new EFI to do so (instead of the System Reserved). I know that BCDBoot command has filled EFI with boot files. But I don't know for sure the system has been told to use it instead
of the other. Does BCDEdit now work...?...
Windows Boot Manager
identifier {bootmgr}
device partition=\Device\HarddiskVolume1 <<<Yours should say HardDiskVolume6
path \EFI\Microsoft\Boot\bootmgfw.efi
Then -- for you if all went well -- I calculate the Windows Boot Manager device should say ...6. That is because EFI is the 6th partition counting one each on disks 0 & 1 (presuming there is no hidden partition on them) & counting the 3 that precede EFI
on disk 2. The HardDiskVolume number can also be seen in MSInfo32 (type into search) in the boot device: "Boot Device \Device\HarddiskVolume1".
If that looks good, then it is time to delete the System Reserved partition...
DiskPart
Select Disk 4
List Part <<<List the partitions, & check whether partition 1 is indeed
the 100 MB System Reserved partition.
Select Part 1 <<<Or whatever partition number it is.
Delete Partition Override
Exit
But it might refuse to delete because it is still a system partition. In that case, try it in the recovery environment. That is...
- Shift+Restart for the recovery environment.
- Click "Troubleshoot > Advanced Options > Command Prompt".
- Do the delete in DiskPart.
- Close the Command Prompt.
- Click "Continue" to return to Windows.
Notes:
(a) "Create Partition EFI Size=100" will create EFI in the 1st unallocated space of 100 MB on disk 2 that it comes across. That will be the unallocated space created by deleting the MSR partition at the end of the disk because it is the only unallocated
space available. Then still 454 MB will be left unallocated at the very end of disk 2.
(b) I would have wanted to do a reboot before the BCDBoot command just to be sure the full system knows EFI has been created & has the letter S. But I just don't know whether the computer would hang because EFI is as yet half-baked. Would it just be ignored
in favor of the System Reserved on disk 4? I don't know.