Создание загрузочного диска Windows 7 в Ubuntu Linux

В сегодняшней статье мы будем создавать загрузочный USB-stick с установочным дистрибутивом операционной системы Windows в операционной системе Linux. Лично у меня такая необходимость возникает периодически и сейчас пришло время сделать подробную инструкцию по всем аспектам этого процесса, так как там есть несколько подводных камней, описания обхода которых в интернете найти довольно сложно, а некоторые советы с форумов, мягко говоря, бессмысленные.

 
 
Логотип GITA-DEV

Автор: Черноусов Антон aka Gita-Dev
Опубликовано: 27 Фев 2018 (последние правки 3 месяца)

apt-get aptitude dev install tar ubuntu

В сегодняшней статье мы будем создавать загрузочный USB-stick с установочным дистрибутивом операционной системы Windows в операционной системе Linux. Лично у меня такая необходимость возникает периодически и сейчас пришло время сделать подробную инструкцию по всем аспектам этого процесса, так как там есть несколько подводных камней, описания обхода которых в интернете найти довольно сложно, а некоторые советы с форумов, мягко говоря, бессмысленные.

Как я понимаю, основная проблема заключается в том, что при создании USB-диска с дистрибутивом OS Windows необходимо использовать файловую систему NTFS, так как в образе установочного диска присутствует файл /sources/install.wim объемом около 7 GB записать, который на раздел FAT32 не представляется возможным. А использовать разделы EXT для этих нужд, по естественным причинам, мы тоже не можем и, поэтому, основная наша задача переразбить на USB-накопитель в режим один раздел NTFS (Windows не очень хорошо работает с несколькими разделами на USB-накопителе).

Для подготовки USB-диска начинающим администраторам Linux я рекомендую использовать графическую утилиту gparted, а для работы с NTFS-разделами используется утилита ntfs-3g. Набор ПО, естественно, мы установим используя штатный пакетный менеджер Ubuntu:

# apt-get install gparted
# apt-get install ntfs-3g

Теоретически, можно сразу запускать графическую утилиту работы с диском и размечать диск в режиме один раздел NTFS, но я бы рекомендовал вам инициализировать USB-накопитель, удалив информацию о текущей разметке забив нулями первые 10-15 мб. Это не обязательно, но я несколько раз сталкивался с тем, что usb-накопитель отображал странную схему разметки и переразбивка при помощи gparted не давала особого результата.

Итак, прежде всего необходимо определить имя устройства, которое было назначено вашему USB-брелку. Для вывода информации о всех блочных устройствах хранения данных выполните в консоли команду:

# fdisk -l

После того, как вы определились с именем диска, обнулим информацию о текущей разметке устройства (не перепутайте имя диска, это необратимая и очень деструктивная операция). В качестве имени устройства получателя используется центральное имя устройства, а не раздела:

# dd bs=1024 count=10240 if=/dev/zero of=/dev/sdd

После обнуления заголовка диска вы можете запустить графическую утилиту gparted и разметить диск:

# gparted

Обратите внимание, что диск не инициализирован и необходимо создать таблицу разделов msdos.

Создание раздела MSDOS

Перейдите в меню "Устройство -> Создать таблицу разделов" и выберите тип таблицы msdos:

Создание раздела удалит все данные

Как вы,наверное, поняли: интерфейс программы напоминает старую утилиту PartitionMagic и, я думаю, проблем с созданием разметки не возникнет. Создайте один раздел типа NTFS объемом в весь свободный объем диска, для принятия изменений используется значок "галочка" на панели кнопок или меню "Правка -> Выполнить все операции".

Создание раздела NTFS

Для распаковки и записи любых ISO-образов в Linux наиболее просто использовать утилиту Unetbootin - она обладает простым графическим интерфейсом и распаковка ISO-образов Windows - это, скорее, побочная ее возможность, а основным ее назначением является запись распространенных дистрибутивов Linux на USB-накопители.

Устанавливаем Unetbootin:

# add-apt-repository ppa:gezakovacs/ppa
# apt-get update
# apt-get install unetbootin

Дополнительно для работы unetobootin требуется установить пакет extlinux:

# aptitude install extlinux

В современных версиях Unetbootin имеется ошибка с определением файловых систем NTFS, эта ошибка все еще не исправлена, но есть метод обхода с принудительным указанием раздела для установки и типа установки:

# unetbootin installtype=USB targetdrive=/dev/sdb1

Запустив утилиту с указанными выше параметрами, вы принудительно указываете нужный для установки раздел (в противном случае выбор нужного диска будет недоступен). Выберите образ диска для распаковки нажмите кнопку OK.

Установка образа диска Windows

После распаковки и записи загрузчика опять запустите gparted и обязательно установите boot-флаг на раздел при помощи gparted, в противном случае, вы получите ошибку "Missing Operating System".

Установка загрузочного флага

Собственно, на этом и все. Диск можно извлечь и с него можно загрузиться.

Похожие статьи

Как сделать из Windows 10 (или Windows 7) терминальный сервер с поддержкой RemoteAPP

Как сделать из Windows 10 (или Windows 7) терминальный сервер с поддержкой RemoteAPP

Сразу скажу, что я не одобряю пиратство, а все о чем сейчас пойдет речь относится именно к нарушению лицензионного соглашения, но раз вы спрашивали, то я расскажу как сделать из Windows 7 и Windows 10 почти полноценный терминальный сервер с поддержкой RemoteAPP.


Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Настройка OS Windows для работы в UTC time (проблема с локальным временем виртуальной машины в системе виртуализации KVM)

Ничего против Windows не имею и считаю, что для каждой задачи требуется свой инструмент, но некоторые легаси-вещи там тянутся из из совсем уже глубины веков и я сейчас говорю не про поддержку кодировки UTF-8, сейчас с этим дела обстоят немного лучше, а про часы системы которые все еще не в UTC. И это кстати сказать порождает некоторые нетривиальные баги при виртуализации ОС Windows в KVM.


Отзывы и комментарии