The in-place upgrade is already very stable and robust, but with some tips, you can improve the robustness even more.
Tips and tricks for smooth in-place upgrade from 7, 8.1, or 10 to 10
Integrating cumulative updates into install sources
During the Insider Preview phase, several tens of thousands of different configurations will be tested, but there will still remain some minor hiccups in the very first ISO/WIM released directly at GA (typically this version is something like 10.0.14393.0). If you have a .0 image or with a low one digit number at the end, you should integrate yourself into the latest cumulative update. Do not wait four months until the declaration of CBB and auto-update of sources.
Upgrading your install.wim is very easy. Download the latest cumulative update from Windows Update Catalog. Unpack the ISO and mount the included install.wim to a temporary folder. Add the .MSU file with DISM.exe, commit the changes, and unmount the WIM file. To reduce unnecessary growth of the WIM file, start over each time with the original WIM.
Updating graphics driver
Update the installed graphics card driver of your down-level OS before attempting an in-place upgrade, especially if your driver is from before July 2015. Also update your SD card driver, as we've faced installations freezing several times during the first boot phase when initializing the SD card device. If there is still a problem in the 30% to 60% first boot phase, try to detach unnecessary hardware during the upgrade.
Looking at Setupact.log and Setupapi.dev.log
Setupact.log and Setupapi.dev.log are perhaps the two most important log files that are used during update/setup failure troubleshooting. Here are the locations these files will be typically located at, depending on the deployment phase:
- Down-level (Setupact.log): Used for troubleshooting rollbacks and down-level failures
Location: $Windows.~BTSourcesPanther
- Rollback (Setupact.log): Used to troubleshoot rollback and and uninstall failures
Location: $Windows.~BTSourcesRollback
- Windeploy and OOBE (Setupact.log): Used to troubleshoot failures during OOBE
Location: $Windows.~BTSourcesPantherUnattendGC
- Pre-initialization (Setupact.log): Used to troubleshoot pre-launch failures
Location: Windows
- Upgrade Complete (Setupact.log): Used for post-upgrade investigations
Location: WindowsPanther
Using Windows Upgrade Analytics aka Windows Upgrade Readiness
During private and public preview the service was named Windows Upgrade Analytics. With its release to productive state it was renamed to Windows Upgrade Readiness. This new service is available to enterprise environments that makes use of the telemetry feature of Windows. While some view telemetry as a spying or data collection problem, Microsoft shows that they are using the data to improve Windows while at the same time helping organizations upgrade to Windows 10. The analytics features will work on Windows 7 and preceding hosts and allow the enterprise to gauge what hardware needs to be replaced before making the move to Windows 10. A detailed write-up of the service offered can be found in this article: https://docs.microsoft.com/en-us/windows/deployment/upgrade/manage-windows-upgrades-with-upgrade-readiness.