Создаём загрузочный 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 флэшку, отмонтируем её если она смонтирована:

Теперь необходимо пересоздать таблицу разделов, при этом выбрать тип msdos. Заходим в меню Устройство (Device) и выбираем Создать таблицу разделов (Create partition table):

После этого выбираем неразмеченную область, нажимаем правой кнопкой мыши по ней же и выбираем пункт меню "Новый". В появившемся окне выбираем файловую систему NTFS или FAT32. Если у вас какая-то нестандартная сборка в которой могут быть файлы больше 4 гигабайт, то файловая система должна быть определенно NTFS, в противном случае, можно выбрать FAT32, и, тогда, так же можно будет загрузиться с UEFI. Так же необходимо указать метку для USB-диска. Важно: метка должна быть не просто "Windows", а какой либо более уникальной. Если файловая система FAT32, то метка должна быть указана заглавными буквами.

Применяем все наши изменения:

Выходим из gparted.

Копирование файлов Windows на USB диск

Теперь необходимо смонтировать образ с Windows и скопировать данные с него на наш подготовленный ранее usb диск. В большинстве современных рабочих окружений это можно сделать из файлового менеджера. По необходимому образу нажимаем правой кнопкой мыши, выбираем Открыть с помощью и выбираем Disk Image Mounter:

Если у вас нет такой утилиты, то можно смонтировать из командной строки:

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.

Полезные ссылки:


Понравилась статья? Поделись с друзьями!




Комментарии на этом сайте требуют включенного Javascript в вашем браузере. Вероятно, ваш браузер не поддерживает Javascript, или он был отключен по каким-то причинам. Если вы хотите прокомментировать пост, или просто почитать комментарии, то пожалуйста, включите Javascript или попробуйте открыть эту страницу другим браузером.