Ubuntu and Windows 10 Dual Boot Setup Instructions
Machine learning is an aspect of my collaborative artwork (e.g. Worries Bash), and most of this kind of work is done on Linux. Setting up a dual boot machine with Windows 10 and Ubuntu Linux is really hard, but I did finally get it to work. Windows 10 has a way to run Linux right from Windows, but unfortunately this doesn’t give Linux access to 3D acceleration video graphics cards aka GPUs, making dual boot a necessity in my case.
I primarily followed instructions on hackernoon and itsfoss. These were decent but confusing. The main problems were 1) UEFI vs. BIOS incompatibilities, as well as 2) creating the proper partitions for Ubuntu. I figured I’d take another stab at instructing folks who need this, so hopefully this helps someone!
1..Backup your Windows computer fully. This totally saved me. I’m talking about a full image of the entire computer.
2. Create a Windows Bootable flash drive to restore Windows and your backup using the Microsoft Tool Here.
3. Disable Fast Startup
(Using Search, Open Power Options) Power Options > System Settings > Choose what the power buttons do and uncheck the Turn on fast startup box.
4. Disable Secure Boot
Go to your Setup during startup (holding F2 on my machine) and disable Secure Boot (alternatively, use those same hackernoon instructions on disabling secure boot).
5. Create “Free Space” for Ubuntu. This is the Total amount of Space that you want to allocate to Ubuntu
a. Using Search, Open “Create and Format Hard Disk Partitions”
b. Select the Partition from where you want to allocate space. My computer has two hard drives in it, C (where Windows 10 is installed) and D (a data drive). At first I tried to shrink the main, largest C partition (there were 4 partitions on C drive due to Windows, and a few megs of unallocated space). The larger main partition was about 226 GB, whereas the other partitions were significantly smaller and were created by Windows 10 for it’s Windows machinations. At first, I couldn’t shrink this main partition enough for Ubuntu Linux, which I decided needed 100GB of space.
Why 100GB? Well I saw one recommendation that Ubuntu should get 50GB. However I have 32 GB of RAM on my machine, and apparently Ubuntu also wants a swap file partition at double the RAM size. So that’s 64GB for swap file, and so I figured I’d gave it another ~46GB. Luckily I had another drive in my machine which I could shrink by 100GB no problem. If you don’t and need to shrink your main drive’s larger partition but are unable to, use this article which explains how to disable 3 different things before shrinking (it worked for me, but I still decided to use my other drive for Linux). The three different things are disabling hybernation (was already off for me anyway), disabling pagefile, and disabling system protection.
c. Anyway, back to shrinking the partition. Right-click the partition of the drive you want to shrink, and select “Shrink Partition”.
d. You would see Unallocated Space (Ubuntu will call it “free space” later).
6. Create the Ubuntu Installer.
a. Download the desired Image of Ubuntu from here or an older image from here.
b. You will need a Memory Stick USB Drive of ≥4GB.
c. If you’re using Windows, download the Rufus app, and plug in your Memory Stick USB Drive that will be your Ubuntu installer before you launch Rufus (also Rufus will totally erase your USB stick). Select the drive in the Device top drop down menu in the Rufus window. For Boot selection, click on the all caps SELECT word (to the right of Boot selection) and browse to and select the downloaded Ubuntu image. Now it’s time to decide on the Partition scheme and Target system.
NOTE: This is where I went really wrong the first time. By default, Rufus shows Partition scheme of MBR and a Target system of “BIOS or UEFI”. This is wicked confusing for several reasons. In my case, as is maybe the case with most newish computers, Windows 10 was already installed as UEFI, not BIOS. My first attempt at dual boot failed because I left Target system as “BIOS or UEFI”, which made my Ubuntu USB installer drive be BIOS style. I was able to install Ubuntu but I could never go back to Windows, forcing me to do a full restore of my system image and try the whole process again. It’s critical to make a full restore image as written in step 1!
The second time through, I read somewhere that if your Windows is already UEFI, you need to make your Ubuntu installer also UEFI. This is not an option in Target system dropdown in Rufus until you select GPT Partition scheme. This will cause Target system dropdown to automatically select “UEFI (non CSM)”.
d. In Rufus, after you set Partition scheme to GPT (and you see Target system update to “UEFI (non CSM)” you can just click START in the bottom of the window and wait until it shows READY in green, at which point your USB Ubuntu installation stick is ready for action.
e. Now you will restart your machine and as it’s starting hit F12 (or whatever it is on your machine) for Boot options. It will take you to a blue selection screen. NOTE: There are two options to boot from USB, the first under the Legacy heading and the second under UEFI heading. It’s the second, UEFI selection that is the correct one in this case. Otherwise you will get a yelly message and booting from the USB stick won’t work.
f. Select the second USB1 — UEFI OS one by arrowing down and hitting Enter. You should then boot into Ubuntu from the USB stick. I recommend connecting to the Internet (but not sure it matters).
7. Installing Ubuntu
a. Clicking Install Ubuntu from the desktop. I didn’t select ‘Download blah blah while installing’ nor ‘Install third party blah blah’.
b. For Installation Type select Something else
c. Now comes the fun part of setting up the partitions, and I needed to create three of them. Select the “free space” in the list, in my case it was like 107232 megabytes (~100GB, although the numbers never fully translated to the exact GB/MB equivalents across Linux and Windows for me). Click the little plus “+” in the bottom left. In the drop down, choose swap, type of new partition is logical and location is beginning of this space for all of the partitions I made. Size the partition to twice your RAM, in my case it was 65536 MB to get 64GB (I converted the numbers here).
d. Now create the boot loader partition. In the list arrow down/select that same “free space” as before (it will be smaller, with the swap partition space subtracted from it). Hit the little “+” plus icon again. Size it at 300MB, selecting EFI Boot loader or whatever from the “Use as” dropdown (and logical and beginning of this space radio buttons).
e. Finally create the last partition. Again select the same “free space” as before. Hit the little “+” plus icon. Leave the size as is because it’s whatever is remaining. Select logical and beginning of this space. From the Use as dropdown, select Ext4 journaling file system. Mount point should be selected as “/”.
f. Finally, make sure the main hard drive you’ve just partitioned is selected in the last “Device for boot loader installation” drop down. Click Install Now and enter in your name and whatnot.
g. And finally finally, your machine will eventually boot into Ubuntu. Just hit and hold F12 (or whatever your boot options key is) during startup to get that mythical blue screen where you can select Windows boot manager or “ubuntu” and boot into either. Hallelujah!