I have a small Lenovo (ThinkPad X100e) running 32-bit Windows 7 Home edition. I wantd to add dual-boot, then upgrade to Windows 10 to test that it won't erase my Ubuntu partition.
I first tried just running a bootable Ubuntu 16.04 LTS (long term stable) USB, and it got me into Ubuntu install, but when I got to the partitioning step the computer said okay, then shut down, and it never seemed to install. I suspected I might need to partition first. I pre-emptively went ahead on shrinking the Windows partition before repartitioning, following these steps as in my previous post just adjusting steps by looking in Windows 7 places for the settings. System protection was already off and I skipped CHKDSK because Windows ran it on its own after my failed original Ubuntu automatic repartitioning attempts. My computer also insisted on rebooting between steps 4 and 5. Disk cleanup (step 5) took less than 20 minutes. Disk shrinking was maybe less than an hour.
I also realized during the Windows shrinking that I was trying to install 64-bit Ubuntu (the main file that downloads) onto a 32-bit computer. I downloaded 32-bit from a mirror (there didn't seem to be an easy link on the main Ubuntu site, had to look around for it in their site) and made a new bootable USB. I tried again. At the partitioning step, I got a scary looking message about whether I wanted to continue with automatic partitioning (it said it will change and format some things). I answered continue, and then I went on with set up. That worked and I now have Ubuntu 16.04 LTS dual booting with Windows 7.
This went a lot faster than with my last dual-boot setup. I think this was because I had Windows 7, an older laptop, and a bit more experience, and probably mostly because I cared less about whether I ruined my Windows set up. This older computer also didn't have weird boot settings that the newer one did (secure boot), nor did it have Windows 8 hibernation and fast shutdown/startup to worry about. I also did not want to set up a shared data partition on this laptop so that did not take up any time. So I did less prep, and it still turned out okay. Your results may vary.
Now, the Windows 10 upgrade over the dual-boot system. I ended up not having enough space on my Windows partition because I had some duplicate users and all their data. I uninstalled a few large programs that I didn't use any more and then removed the two duplicate users and their data (be careful with this! I was very sure I did not need those user profiles). After following the various on-screen prompts, I eventually got a message that I had to log into my administrator account. I did so, waited for the download again, and then the Windows 10 upgrade just... failed, every time, even though I was booting back into Windows 7 and not Ubuntu. With the error code, I found that I should be rebooting into the system recovery partition. I did that and sure enough, it worked! The install crashed once because my laptop overheated, but that's my laptop's problem. I set it on an air vent in the house and the AC kept it cool enough to restore Windows 7 (Windows did this on its own). I then started the Windows 10 upgrade again and it finished the install. I missed a few reboots and it booted into Ubuntu, but in those instances I just rebooted and watched to select the Windows system recovery partition and it resumed where it had left off. Windows 10 did not erase my programs or apps, so I am pleased with how this went and might even try it on my main working computer now.