war story: upgrading Win8.1 to Win10 on a triple-boot system

If you wish to ever have a free-as-in-beer Windows 10 upgrade, you have to do it before July 29th (according to my unreliable memory). Windows 10 is OK except for the continuous leakage of information to Microsoft. But even earlier Windows versions are being updated to spy too. The main advantage of Win10 over its predecessors is that it will be supported longer. A second advantage is that your license is recorded in the cloud so in future you can wipe Win10 and install it again without much difficulty. Windows 7 and on continually bombard you with update offers. Some even appear to be opt-out. Don't accept these offers. Download Win 10 once to a USB stick and install from there instead. That means that you will only have to download it once, even if the installation fails a few times or if you have several machines. To create a USB stick with the Win10 update, you need to use the "Media Creation Tool", an option wherever you can download Win 10. You can create a USB stick for64-bit, 32-bit, or both. Then it is just a matter of mounting the stick on the Windows non-10 system and running "setup". I've done this on several machines previously and it mostly worked (a previous war story described puzzling disk space issues). On my notebook, I attempted to upgrade 64-bit Windows 8.1 to Windows 10 from within Windows 8.1 using Win10 update from a USB stick. Salient points about this notebook: - partitioning / booting is MBR, not GPT / UEFI - all OSs are 64-bit - came with Win 7 - upgraded to Win 8 (free) and then Win 8.1 (free) (Thankfully I made recovery disks!) - it has Ubuntu and Fedora installed - booting is via Ubuntu's GRUB It did not work. The update process chugged for a while and then came up with this helpful message Something happened. We can't tell if your PC has enough space to continue installing windows 10 Isn't that a great message! It doesn't say why it cannot tell if there is enough space. It won't let me tell it (yes, it does have enough space). It just gives up. If you google for this message, you will find lots of random advice on this one. Probably because there are a lot of causes. I tried a few of the easier ones with no success. So I decided that perhaps Windows needed to own the boot record. I booted into the recovery system provided by the manufacturer. I pushed a couple of options (repair boot? I don't remember and there isn't a trace left). The result was an unbootable system grub only found enough of itself to report that there was a problem: none of its modules were found. I could not boot Windows, the Windows recovery partition, or either Linux. I then studied <https://peter.upfold.org.uk/blog/2013/02/28/restore-windows-8-bootloader/>. I booted a Win 8 recovery DVD that I'd made. - I tried "repair your computer" "advanced options" "Automatic Repair". Didn't work. Apparently it put diagnostics in C:\Windows\... but there was no such filesystem. - I tried "repair your computer" "advanced options" "Command Prompt". Set the "active partition" (as per first comment in that blog entry):
diskpart
list disk select disk # list partition select partition # active exit
bootsect.exe /nt60 C: BootRec.exe /FixMbr BootRec.exe /FixBoot
I don't really know what each step does, but it worked. I could boot into (only) Windows 8.1)
From Win 8.1, I clicked on "setup" from the mounted USB stick. All went uneventfully.
Now I will install Fedora 24 (replacing Fedor 20) and in the process re-install grub.

This is about partition table surgery. Dangerous! After I installed Fedora 24, I noticed that Ubuntu was missing. In fact, it was missing when I was initially configuring partitions for F24. I think that the Windows operations ate that partition table entry. Perhaps the Windows utilities don't believe in partitions "out of order". The ubuntu partition was the first in the extended partition but it had the last partition number. Luckily I had information about the sector allocations for Ubuntu. I fixed it using these steps: - booted the F24 live USB stick (changing the partition table using sfdisk doesn't seem to work if any partition is active so I could not use the installed F24) - "sudo swapoff -a" so that the swap partition on the HDD was not active - "sudo sfdisk --dump /dev/sda >sda.dump" label: dos label-id: 0xe3102a4b device: /dev/sda unit: sectors /dev/sda1 : start= 2048, size= 52428800, type=1c /dev/sda2 : start= 52430848, size= 204800000, type=7, bootable /dev/sda3 : start= 257230848, size= 40960000, type=83 /dev/sda4 : start= 298192894, size= 326948866, type=5 /dev/sda5 : start= 339154944, size= 32768000, type=82 /dev/sda6 : start= 371924992, size= 253216768, type=83 - "cp -p sda.dump sda.dump.bak" - added a new line to sda.dump (careful: size is in sectors not blocks) /dev/sda7 : start= 298192896, size= 40962048, type=83 - "sudo sfdisk /dev/sda <sda.dump" - "sudo sfdisk --dump /dev/sda >sda.dump2" - "cmp sda.dump sda.dump2": success! - Boot Fedora 24 from hdd - "grub2-mkconfig -o grub2.cfg.new". This will include a stanza for Ubuntu now that its partition has been restored. After inspecting, install grub2.cfg.new as /boot/grub2/grub.cfg - I have booted Ubuntu -- it all worked. The contents of the partition seem fine. False Starts (Don't try this): I tried to do this from the Fedora 24 installed on the HDD. The changes didn't take (and sfdisk gave warnings). There may be a way to get this to work but piling risk on risk is not worth it. I tried to reorder the partition numbers by editing the sda.dump file. I renamed 5-6 to be 6-7 and added the lost partition as 5. When I did this, sfdisk stole the first sector on the former sda5. Why? Perhaps for the logical partition table entry (they are a linked list of sectors). I gave up and just restored 7 the way it had been before it was attacked by Windows.
participants (1)
-
D. Hugh Redelmeier