Возможно, эта информация будет кому-то полезна.
Вчера возникла необходимость установить Windows 10 на ноутбук. У меня на всех машинах только Linux.
Обычно я делал это так: Как создать загрузочную флешку на Линукс? (комментарий)
Но, как справедливо заметили в ответах, в общем случае это работать не обязано, т.к. поддержка NTFS в UEFI зависит от конкретной машины и не гарантируется. До вчерашнего дня мне везло и все машины, куда я устанавливал Windows, спопойно читали загрузчик с NTFS раздела.
В качестве обходного пути я решил создать на флешке один FAT раздел и закинуть на него каталог \efi
из iso образа Windows 10 в надежде, что дальше установка пойдет со второго NTFS раздела. Этого не произошло, загрузчик падает с ошибкой.
Вторым очевидным решением было закинуть NTFS драйвер и shell для UEFI на FAT раздел, загрузиться в shell, загрузить драйвер NTFS, а затем выполнить bootmgr с NTFS раздела.
(uefi shell)$ load FS0:\efi\ntfs_x64.efi
(uefi shell)$ map -r
(uefi shell)$ FS1:\efi\boot\bootx64.efi
После этого установщик Windows успешно запустился. Но после создания раздела и попытки выбрать его для установки, установщик безапеляционно выдавал «windows cannot be installed to this disk». Понятия не имею, с чем связана эта ошибка.
Последний способ, который я опробовал, оказался рабочим. В двух словай: нужно создать большой FAT раздел на флешке и скопировать в него содержимое iso образа, попутно пережав самый большой файл \sources\install.wim
, чтобы его размер стал меньше 4GB.
mkdir -p /{mnt,tmp}/iso
mount -o loop Win10_21H1_English_x64.iso /mnt/iso
cp -r /mnt/iso/sources/install.wim /tmp
wimlib-imagex optimize /tmp/install.wim --solid
mkdir /mnt/usb
mount /dev/sda1 /mnt/usb
rsync -av --progress /mnt/iso /mnt/usb --exclude /mnt/iso/sources/install.wim
cp /tmp/install.wim /mnt/usb
umount /mnt/usb
Загрузочная флешка готова, установка прошла успешно.