Installing Windows 10 without USB with ubuntu 18.04: this is not a bootable disk error

Installing Windows 10 without USB using Ubuntu, Step by Step

This step by step has been created from information provided by the OP, @Marcel Alexandru.

  • Backup the Target drive.

  • Create a 6GB NTFS partition on the hard drive and extract the Windows ISO to it.

  • Create a 20GB, or larger, NTFS partition on the hard drive for the Windows Installation.

  • Open Disks, (Gnome-Disks), and note Device, (/dev/sdx), and UUID of the Windows ISO extract partition.

  • For msdos partition table, copy the menuentry given in this question to /etc/grub.d/40-custom/*

  • Add ntldr /bootmgr as a line below chainloader +1

  • Edit menuentry, changing sda4 to sdax, msdos4 to msdosx (4 places), and 592C85254E2CD0B7 to UUID, (3 places), to suit step 4 above.

  • Run sudo update grub confirm that ntldr /bootmgr appears in grub.cfg.

  • Boot the computer into the newly created menuentry and install Windows into it's new partition.

  • Reinstall Ubuntu if desired, the GRUB bootloader will have been replaced with the Windows bootloader.

*Note from the OP: You don't have to reinstall Ubuntu to fix the grub loader. You can boot in the Ubuntu Live USB, open a terminal and open Boot Repair using the boot-repair command. If it's not available you can install it using the following commands:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair && boot-repair

For more information about repairing your Grub follow this link: https://help.ubuntu.com/community/Boot-Repair.

*For gpt partition table, copy the following menuentry to /etc/grub.d/40-custom/:

menuentry 'Windows Recovery Environment (on /dev/sdc1)' --class windows --class os $menuentry_id_option 'osprober-chain-5642BC722509341F' {
    insmod part_gpt
    insmod ntfs
    set root='hd0,gpt1'
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  5642BC722509341F
    else
      search --no-floppy --fs-uuid --set=root 5642BC722509341F
    fi
    drivemap -s (hd0) ${root}
    chainloader +1
    ntldr /bootmgr
}

This method can also be adjusted to make a Windows installer USB or to add a Windows installer to a multiboot USB.

Limitations

Windows 10 has limitations with respect to partition tables and boot modes.

I was able to install Legacy mode Windows to a drive with a MSDOS partition table.

I was able to install UEFI mode Windows to a drive with a GPT partition table.

I was not able to install Legacy mode Windows to a drive with a GPT partition table.

I was not able to install UEFI mode Windows to a drive with a GPT partition table and Legacy mode Ubuntu.

There may be workarounds that are outside the scope of this answer.