This is likely a hardware incompatibility issue. One thing that can help in some such cases is to add
nomodeset to the kernel options. You do this from the GRUB screen (the one with the boot menu you mentioned) by using the arrow keys to select the option you want to use and then, rather than press Enter, press the
E key. You can then edit the options. (The screen has prompts at the bottom for how to perform some common actions.)
If this doesn't help, I recommend you post more identifying information about your hardware, such as the laptop's exact model number and/or all the chipsets and other hardware components that make it up.
Edit: Since you say that booting in legacy mode works, I suggest you do the following:
- Install Ubuntu in legacy mode.
- Install my rEFInd boot manager. Installing it in Windows is preferable to installing it in Ubuntu; but installing it in Ubuntu will be easier, if you find the Windows installation instructions too intimidating.
- Edit the
refind.conf file: Locate the
scanfor line, uncomment it, and add
hdbios to the list of options.
- Reconfigure the firmware to boot in EFI mode.
At this point, when you boot, you should see a rEFInd menu with a Windows option, one or more Linux options (which will probably be non-functional), and a gray generic icon. The generic boot option will probably launch GRUB in BIOS mode, which will then launch Ubuntu. If the Linux boot option(s) actually work, you can remove the
hdbios option from the
scanfor line in
refind.conf; but if not, you can remove them by commenting out the
scan_all_linux_kernels option instead.