I'm having trouble installing Ubuntu 24.04 for a dual boot with Windows 10 using the manual install option with a DOS boot drive and a GPT storage drive through manual installation. My main questions are:
If I have a DOS boot drive, why am I getting an error saying I need a BIOS boot partition? Is it because my GPT storage partition (a different drive) is GPT?
How do I create a BIOS boot partition with fdisk or parted? I was unable to see a type corresponding to BIOS boot using the 'Try Ubuntu' terminal.
I'll start by saying that I use legacy BIOS boot.
There are many questions on this site about a BIOS boot partition. My install is failing at the following command.
Command: ['unshare', '--fork', '--pid', '--mount-proc=/target/proc', '--', 'chroot', '/target', 'grub-install', '/dev/sdc']
Exit code: 1
Then after this I get the famous BIOS boot stderr:
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
I'm trying to figure out what I'm doing wrong while I try to install Ubuntu alongside Windows 10. Here is my intended setup using manual installation.
I have two drives (that are relevant). /dev/sdb
sudo fdisk -l /dev/sdb
Disk /dev/sdb: 223.57 GiB, 240057409536 bytes, 468862128 sectors
Disk model: SanDisk SDSSDA24
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: dos
Disk identifier: 0x9014d81b
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 468835894 468833847 223.6G 7 HPFS/NTFS/exFAT
/dev/sdb2 * 468835895 468856831 20937 10.2M 83 Linux
and /dev/sdc
sudo fdisk -l /dev/sdc
Disk /dev/sdc: 931.51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: WDC WDS100T2B0A
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: 5F0874BA-BE01-4E83-9FED-DA5F7C6765C0
Device Start End Sectors Size Type
/dev/sdc1 2048 923647 921600 450M Windows recovery environment
/dev/sdc2 923648 1126399 202752 99M EFI System
/dev/sdc3 1126400 1159167 32768 16M Microsoft reserved
/dev/sdc4 1159168 1748725134 1747565967 833.3G Microsoft basic data
/dev/sdc5 1748725760 1953521663 204795904 97.7G Linux filesystem
For starters, looks are deceiving. Windows 10 is NOT installed on sdc, but it is installed on sdb (in the sdb1 partition). I used to have Windows 10 installed on sdc long ago (2021?), but due to an error I was forced to reinstall and I chose the smaller drive sdb.
After doing some reading, and following a guide or two, my plan was to set up sdc5 as storage to be used by Ubuntu, hence the 'Type' of Linux filesystem. However, I read somewhere that the Ubuntu bootloader (the dropdown menu in the image below) should be the same one where Windows is installed on so grub can work its magic. So then my plan was to set sdb as my bootloader.
Installation screenshot from the online instructions (not mine):

However when I set up the sdc5 as / and set sdb as my bootloader I get the error message above in the logs.
So then I need a BIOS boot partition, right? Well, my first question is: Why? sdc5 is not where the bootloader will be. And is it not a GPT file system, it is DOS file system. So then I wonder why I even would need a BIOS boot partition. Should I add it to sdc which is GPT? It even mentioned sdc in the initial command I posted above, NOT sdb.
This leads to my second question. How do I make a BIOS boot partition? I've read online and had no luck with fdisk (there doesn't appear to be a type option which matches BIOS boot), and parted (likewise). I tried gdisk which indeed there was an option but I was spooked by the all caps warning that it will delete the data on ALL partitions*.
So my second question is (rephrased): how do I create a BIOS boot partition if it is needed with something other than gdisk (it scares me, but I can be swayed)? Also I've been doing it in the 'Try Ubuntu' set up before the I initiate the installation. Is there a better way to create a BIOS boot? I couldn't figure out how to do it in Windows 10. I'm completely comfortable doing it in the command line, could WSL work?
I've seen the answer to this question: Do I need BIOS boot area
My understanding is that my sdb drive is a MBR type partition table, hence, it should not require a BIOS boot partition, but I am still getting the error as above.
This page: https://help.ubuntu.com/community/DiskSpace#BIOS-Boot_or_EFI_partition_.28required_on_GPT_disks.29
implies that no type is fine, but again, should it be on sdb or sdc? I've tried an unallocated partition
Should I just use the automatic installer alongside Windows and deal with setting up sdc5 later? I read somewhere that this is better.
Is this what I'm looking for:
sudo apt-get install grub-pc
sudo mkdir /mnt/root
sudo mount /dev/sdx3 /mnt/root
sudo grub-install --force --removable --no-floppy --boot-directory=/mnt/root/boot /dev/sdx
Again this still leaves the open question of sdb or sdc?
* I did this once already and it ruined my Windows 10 install :D And even then the Ubuntu install failed as above.