Создаём загрузочный USB диск с Windows из под Linux
В ubuntu уже есть приложение для создания образов дисков - Startup Disk Creator, но оно умеет создавать только загрузочные USB с Linux. Для создания загрузочного USB-диска с Windows из Linux, существует WinUSB, но она довольно давно не обновлялась, и честно говоря, у меня не заработала. Данный пост довольно подробный, и рассчитан преимущественно на людей, плохо знакомых с Linux.
Перед тем как я продолжу, следует указать что в Windows мире два метода загрузки:
- MBR, при котором в начале диска резервируется место, и располагается специальный загрузочный файл;
- EFI, при котором исполняемый файл загрузчика хранится в стандартном расположении на FAT32 файловой системе;
Если вы не знаете какой выбрать, то наиболее часто используемый вариант который работает без модификации файлов Windows - это msdos таблица разделов с fat32 файловой системой и загрузочным флагом.
Прежде всего USB-диск необходимо подготовить. В Linux наиболее простой и удобной для этих целей утилитой является gparted.
Ставим его если не установлен:
sudo apt-get install gparted
Подготовка USB диска
Выбираем нашу USB флэшку, отмонтируем её если она смонтирована:
 Отмонтирование USB диска в gparted 
Теперь необходимо пересоздать таблицу разделов, при этом выбрать тип
msdos. Заходим в меню Устройство (Device) и выбираем
Создать таблицу разделов (Create partition table):
 Gparted создание таблицы разделов 
После этого выбираем неразмеченную область, нажимаем правой кнопкой мыши по ней же и выбираем пункт меню "Новый". В появившемся окне выбираем файловую систему NTFS или FAT32. Если у вас какая-то нестандартная сборка в которой могут быть файлы больше 4 гигабайт, то файловая система должна быть определенно NTFS, в противном случае, можно выбрать FAT32, и, тогда, так же можно будет загрузиться с UEFI. Так же необходимо указать метку для USB-диска. Важно: метка должна быть не просто "Windows", а какой либо более уникальной. Если файловая система FAT32, то метка должна быть указана заглавными буквами.
 Создание нового раздела
Gparted 
Применяем все наши изменения:
 Применение изменений в Gparted 
Выходим из gparted.
Копирование файлов Windows на USB диск
Теперь необходимо смонтировать образ с Windows и скопировать данные с
него на наш подготовленный ранее usb диск. В большинстве современных
рабочих окружений это можно сделать из файлового менеджера. По
необходимому образу нажимаем правой кнопкой мыши, выбираем
Открыть с помощью и выбираем Disk Image Mounter:
 Монтирование образа с Windows в файлом менеджере
Thunar 
Если у вас нет такой утилиты, то можно смонтировать из командной строки:
sudo mount -o loop $HOME/Загрузки/Windows.iso /mnt/cdrom
Где $HOME/Загрузки/Windows.iso необходимо заменить на путь до образа с
Windows. Образ будет смонтирован в директорию /mnt/cdrom.
Делаем USB-диск загрузочным
Если создаем MBR загрузочный диск
Для создания MBR загрузочной записи будем использовать grub:
sudo grub-install --target=i386-pc --boot-directory="/media/$user/$drive/boot" /dev/sdX
Где:
- $user- имя текущего пользователя;
- $drive- название образа;
- /dev/sdX- расположение диска (в моем случае- /dev/sdb;
Если образ монтировали руками, то /media/$user/$drive/boot необходимо
заменить на /mnt/cdrom/boot.
В случае, если не было никаких ошибок, то в консоли должны увидеть
примерно следующее:
Installing for i386-pc platform.  
Installation finished. No error reported.
Теперь на USB-диске в директории boot/grub необходимо создать файл
grub.cfg с таким содержимым:
default=1  
timeout=15
color_normal=light-cyan/dark-gray
menu_color_normal=black/light-cyan
menu_color_highlight=white/black
menuentry "Start Windows Installation" {
    insmod ntfs
    insmod search_label
    search --no-floppy --set=root --label $USB_drive_label --hint hd0,msdos1
    ntldr /bootmgr
}
menuentry "Boot from the first hard drive" {
    insmod ntfs
    insmod chain
    insmod part_msdos
    insmod part_gpt
    set root=(hd1)
    chainloader +1
    boot
}
В листинге выше, $USB_drive_label необходимо заменить на метку,
которую мы присвоили диску на первом шаге. В данном случае
WINUSB2503.
Перезагружаемся, загружаемся с USB-диска и выбираем
Start Windows Installation.
Если создаем UEFI загрузочный диск
С UEFI все несколько проще. Следует обратить внимание, что данный способ
подходит только для Windows 7 x64 и выше.
После того, как все файлы скопировались, необходимо зайти в директорию
efi/boot. Если в ней присутствуют файлы bootx64.efi или
bootia32.efi то всё в порядке, можно пробовать загрузиться с диска.
Если нет ни одного из указанных выше файлов, то необходимо зайти в
директорию куда смонтирован образ Windows, открыть файл install.wim
архиватором (должен быть установлен 7z). В архиваторе открыть путь
./1/Windows/Boot/EFI, разархивировать файл bootmgfw.efi в директорию
efi/boot и переименовать его в bootx64.efi. Если этих файлов нет, то
скорее всего у вас 32 битный образ Windows. 32 битная Windows не
поддерживает загрузку с UEFI.
Полезные ссылки:
- Make a bootable Windows USB from Linux - содержит немного полезной информации;
- Grub2/Installing - документация Ubuntu;
- Installing GRUB using grub-install - документация GRUB 2.0;