There are subtle problems, we'd probably need details to really fix. Of course, you need to boot into Ubuntu in order to get the thing fixed, but your booter does not want to go there. You can get there booting from the USB?
When your computer boots, it goes straight to windows? You don't see a grub menu to choose the OS at all?
If yes, I have ideas. It may be you do need to follow the usual advice about starting Ubuntu and re-running the grub install, but the thing may be installed, but just not found.
I have encountered the problem you see in the following context. The hard disks are recognized at startup in an unexpected order. The boot process will use the first OS loader it finds. If your first found drive has Windoze, you get that.
Sometimes it happens that when you run the Linux install, it notices the drives in a different order. The one you think should be found and boot the grub menu actually is found second by the BIOS. The other drive has the old Windoze boot loader. For whatever reason, the Linux install sees the drives in different orders. If that's what is happening, your BIOS may allow you to alter the order of the drives that are found.
Also, in the OS setup you may have a way to prevent the Windows only drive from being seen as a bootable device. I'd check, anyway
Before we understood that was the problem, we actually swapped cables from motherboard to disk drives. When we want Windows to boot for maintenance, the technician has to go into the bios and reverse the boot order. If you think problem is like that, I can check those systems, get details.
Other ideas. It is possible the bootloader was not installed in the correct location. In the installer, do you remember deciding where to install the boot loader? You may have to designate which drive, or even a partition. If your drives are using the older Master Boot Record style to create partitions, then for sure the bootable thing needs to be set a active. If you have the newer style partitions (GPT), I don't think you have to mark a partition bootable (https://wiki.archlinux.org/index.php/partitioning).
Maybe we should check how your drives are laid out. I have one traditional SATA and one of the newer type SSD.
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 100G 0 loop
└─veracrypt1_0 253:1 0 100G 0 dm
└─veracrypt1 253:2 0 100G 0 dm /home/pauljohn/TrueMounted
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 214.9G 0 part /home/pauljohn/VM
└─sda2 8:2 0 538G 0 part /home/pauljohn/LinuxDownloads
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 500M 0 part /boot/efi
├─nvme0n1p2 259:2 0 3G 0 part
[snip]
The sda is the ordinary one. The one labeled NVMe is the SSD drive. That's where I have the boot record installed. If you also have that kind of ssd, the way to see the partitions is parted, like so:
$ sudo parted /dev/nvme0n1
GNU Parted 3.2
Using /dev/nvme0n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: NVMe Device (nvme)
Disk /dev/nvme0n1: 512GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 1049kB 525MB 524MB fat32 EFI system partition boot, esp
2 525MB 3747MB 3221MB fat32 Basic data partition msftdata
3 3747MB 98.1GB 94.4GB ext4 root
4 98.1GB 151GB 52.4GB ext4
5 151GB 178GB 27.1GB ext4
6 178GB 188GB 10.5GB ext4 opt
7 188GB 223GB 34.6GB linux-swap(v1)
8 223GB 512GB 289GB ext4 home
Note on partition 1, it has the boot attribute. I have no other
partitions with the boot attribute, there's no confusion. I suspect you have more than one, and it is finding the wrong one first.
Good luck, let us know what you try, but be explicit. Write it down as exactly as you can. The grub framework tries to make things automatic. That's great when it works. Less good otherwise.