Спустя 1.5 недели гугления, экспериментов у меня всё получилось.
Распишу полный ман, как сделать dual-boot в особо тяжелых ситуациях.
1 ) Устанавливаем винду
2 ) Запускаемся с LiveCD. Монтируем /dev/sda1 в /mnt
sudo mount /dev/sda1 /mnt
3 ) Бекапим раздел загрузки винды. А после размонтируем раздел.
4 ) Пишем в терминале следующие команды (если у вас linux не смог определить UEFI и не установлен grub-efi)
sudo apt-get install -fy
sudo dpkg --configure -a
sudo apt-get purge -y --force-yes grub-common
Подтверждаем удаление grub-common
sudo apt-get install -y --force-yes grub-efi
5 ) Устанавливаем
boot-reapir и делаем recommended repair.
6 ) Снова монтируем /dev/sda1 в /mnt и бекапим результат (на всякий случай).
7 ) Заходим в бекап раздела загрузки винды. Находим файл /EFI/Boot/bootx64.efi и меняем ему имя (win_bootx64.efi как пример)
8 ) Переходим в /mnt/EFI/Boot/ и вставляем win_bootx64.efi
9 ) Перезагружаемся и должен запуститься линукс
10) пишем в терминале sudo blkid и узнаем UUID /dev/sda1
11)
sudo vim /etc/grub.d/40_custom
Вписываем следующее:
menuentry "Windows" {
insmod part_gpt
insmod fat
insmod search_fs_uuid
insmod chain
search --fs-uuid --set=root UUID (от /dev/sda1)
chainloader /EFI/Boot/win_bootx64.efi
}
12) Делаем
sudo update-grub
13) Пробуем загрузить винду
14) Если всё работает круто, бекапим раздел загрузки, сохраняем в надежном месте и забываемся до следующей переустановки винды или линухи.