PDA

View Full Version : Dual Booting Windows 10 and Ubuntu on separate drives



lambs2
May 6th, 2020, 12:22 AM
Hi there, please help!

I just built a new PC and wanted to dual boot Windows 10 Education and Ubuntu on two separate discs: Windows (SSD 500GB for gaming), Ubuntu (HDD 1TB for programming). First, I installed Windows on SSD. Then, I installed Ubuntu on HDD. Following the information online (link at the bottom), I changed the following in my BIOS UEFI settings (Motherboard: ASUS ROG STRIX B450F Gaming) after inserting USB Flashdrive with Ubuntu installation media:


Disabled fast boot
Attempted to disable secure boot (but no option was available, only a drop down menu with ‘Windows OS’ or ‘other OS’ so I left it unchanged as ‘other OS’
Set CSM to ‘UEFI only’ as my Windows mode was set to ‘UEFI’
Changed the boot order to: (1) UEFI Kingston USB Flashdrive (2) Kingston USB Flashdrive (3) UEFI Windows Boot (4) SSD Samsung EVO 860 500GB
Changed the Boot Option BBS to: (1) HDD Western Digital 1TB (2) SSD Samsung EVO 860 500GB


After booting into Ubuntu installation, I selected


‘Something else’ where I had dev/sda (SSD) with Windows partitions on it and sdb (HDD) with 1TB free space.
Following the partioning scheme I found on the link (listed at the bottom) for an isolated dual boot, I manually partitioned the HDD drive for Ubuntu as:



/dev/sdb1 > / (ext4)
/dev/sdb2 > swap
/dev/sdb3 > efi
/dev/sdb4 > /home (ext4)

Everything works fine. GRUB menu pops up to choose which OS I want to boot into. Both OS seem to function properly. However, the HDD that I installed Ubuntu on is no longer detected in my BIOS/UEFI menu. Instead, it shows as installed on SSD (where Windows was installed) as:


Ubuntu SSD 500GB
Windows SSD 500GB

Also, I can no longer see the Boot Option BBS menu and when going to Ubuntu > Settings > About, it states the disk capacity is 1.5TB, which is incorrect as the SSD (Windows) has 500GB and the HDD (Ubuntu) should have 1TB. So, I'm not sure if it's a real issue but


Why did Ubuntu install it’s boot loader onto the SSD when it was specified to install on the HDD (/dev/sdb3)?
Should I have not created the efi partition?
How do I fix this to install Ubuntu on a separate drive safely without affecting my current Windows 10 OS on the SSD?

Ideally I would've liked the 1TB HDD split in half for shared storage as: SSD (500GB: Windows) and HDD (500GB: Linux | 500GB: shared space between both OS), however when adding the first partition table during the Ubuntu installation, it wiped the previous partition on the HDD (500GB Allocated | 500GB Free Space) to 1TB Free Space and I just let it be as I was already in installation and thought I could shrink it later.

Would REALLY appreciate some proper help.

Additional information:
Link I used as a guide (top voted answer): https://askubuntu.com/questions/726972/dual-boot-windows-10-and-linux-ubuntu-on-separate-hard-drives (https://askubuntu.com/questions/726972/dual-boot-windows-10-and-linux-ubuntu-on-separate-hard-drives)

And here's the results of running sudo fdisk -l on Ubuntu terminal:

Disk /dev/loop0: 142.94 MiB, 149856256 bytes, 292688 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop1: 93.94 MiB, 98484224 bytes, 192352 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop2: 54.97 MiB, 57614336 bytes, 112528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop3: 54.97 MiB, 57618432 bytes, 112536 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop4: 57.32 MiB, 60096512 bytes, 117376 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop5: 160.16 MiB, 167931904 bytes, 327992 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop6: 240.82 MiB, 252493824 bytes, 493152 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop7: 49.8 MiB, 52203520 bytes, 101960 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/sda: 465.78 GiB, 500107862016 bytes, 976773168 sectors
Disk model: Samsung SSD 860
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 495EB8EA-XXX-XXX-XXXX-XXXXXXXXXXXX



Device
Start
End
Sectors
Size
Type


/dev/sda1
2048
1085439
1083392
529M
Windows recovery environment


/dev/sda2
1085440
1288191
202752
99M
EFI System


/dev/sda3
1288192
1320950
32768
16M
Microsoft reserved


/dev/sda4
1320960
976771071
975450112
465.1G
Microsoft basic data


Disk /dev/sdb: 931.53GiB, 1000204886016 bytes, 195352168 sectors
Disk model: WDC WD10EZEX-60W
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 75F94AAD-XXX-XXX-XXXX-XXXXXXXXXXXX



Device
Start
End
Sectors
Size
Type


/dev/sdb1
2048
58593279
58591232
28G
Linux filesystem


/dev/sdb2
58593280
107421695
48828416
23.3G
Linux swap


/dev/sdb3
107421696
108691455
1269760
620M
EFI System


/dev/sdb4
108691456
976771071
1844832256
879.7G
Linux filesystem


Disk /dev/loop8: 62.9 MiB, 65105920 bytes, 127160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop9: 242.43 MiB, 254193664 bytes, 496472 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/loop10: 27.9 MiB, 28405760 bytes, 55480 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Thanks!

yancek
May 6th, 2020, 12:50 AM
The Ubuntu EFI installer defaults to installing the EFI boot files to the first drive which in your case was sda2 where the windows EFI files are. Some people see this as a "feature" others as a "bug". If you had physically dis-connected the windows SSD or disabled it in the BIOS (if possible?) then Ubuntu would have put the EFI files on sdb3 which is the EFI partition on the Ubuntu drive.

You could try booting Ubuntu and mounting sda2 and looking for an ubuntu directory there to see if this is what happened. Also check sdb3 to see if any files are there. If your ubuntu efi files are on sda2 and sdb3 is empty you could try copying the ubuntu directory and contents from sda2 to sdb3 and running update-grub.

lambs2
May 6th, 2020, 02:38 AM
Thank you for your response! I didn't know it defaulted to install on the first drive regardless of whether you changed the Boot Order Priority options. A lot of the resources online say you shouldn't nor have to unplug any hard drive SATA power cables but seems as though that's not the case.

I ran $ findmnt command in terminal and didn't see sdb3 anywhere but found:

/boot/efi /dev/sda2 vfat rw, relatie, fmask=0077

which contains the Windows EFI as well.
So how do you go about accessing and copying the contents over? Will I need to delete any content after copying? And is there another way of doing this? I just really don't want it to affect my Windows 10 OS as it's an Education version and you get only get a one time use product key.

oldfred
May 6th, 2020, 04:19 AM
It is only the Ubuntu Ubiquity installer that chooses to install grub to first drive.
I have installed other distributions just to see how grub installs & works and they installed to my sdb's ESP without issue.

I regularly install a test install of Ubuntu to sdb drive. But only have main working install on sda, now NVMe drive and my sdb became sda.

You can just copy /EFI/ubuntu & /EFI/Boot from sda's ESP to sdb's ESP. Edit fstab to change mount of efi partition to sdb's ESP, so updates are to sdb. And then delete UEFI boot entry as it uses GUID of sda's ESP to know where to look and and new UEFI boot entry using efibootmgr.

Usually easier just to totally reinstall grub, but have to change fstab as it uses that to know where to install with default settings.
Or use Boot-Repair.

Please add to this bug report. I posted work around, but unless many complain (more heat) it will not be fixed. And bug is really old as related to the other much older bugs.

Posted work around to manually unmount & mount correct ESP during install #23 & #26
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1396379
Ubuntu Installer uses wrong bootloader location for USB/sdb UEFI installs
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1173457
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1229488
https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1229488

I typically have to manually mount any other ESP or use Disks to mount it.
I also have to change mount of ESP from 0077 to defaults like they used with 14.04. It probably is 0077 for security reasons and I may change back and then have to use live installer or another install that mounts my other ESP to edit it.

#14.04 fstab entry defaults
UUID=FD76-E33D /boot/efi vfat defaults 0 1
#16.04 fstab entry umask=0077
UUID=68CD-3368 /boot/efi vfat umask=0077 0 1

yaminb
May 6th, 2020, 02:44 PM
Yep, I did pretty much your same install recently.
This 'feature' of Ubuntu confused the hell out of me. Even Windows let's you choose the drive you want to install to.

In my case, I manually created the partitions for Ubuntu on the drive I wanted and told it to use those drives.

I also created an EFI boot partition on each drive.

Windows Drive has it's own EFI boot partition that windows uses (I installed windows first)
I manually created the Ubuntu partitions in the installer and had it use it's use it's own EFI boot partition on it's own drive.

I generally use the old school BIOS boot order to choose which drive to boot to.

Unless you have a lot of personal data, just reinstall everything. I don't think the Windows key would be impacted as your hardware is still the same. I've never had that issue with windows unless the hardware changes (motherboard...)