Так как толковую информацию на эту тему найти сложновато, попытаюсь донести её сам.
Для начала стоит сказать, что есть компьютеры с
BIOS, а есть с
UEFI, и процесс загрузки с диска в этих двух типах прошивок очень разный. Не буду вдаваться в детали, опишу лишь вкратце применительно к флешкам.
Чтобы флешка стала загрузочной в BIOS,
нужно разместить код загрузчика в первых её 446 секторах (подробности
здесь).
В случае же с UEFI достаточно
отформатировать флешку в FAT32 и разместить загрузчик в файле \efi\boot\bootx64.efi
- он подастся на выполнение автоматически (подробно процесс описан
здесь).
margadon13 писал(а): - и наконец простым монтированием образа в созданную папку /media/iso с последующим переносом файлов образа на
флешку (флешка была подготовлена в GParted [NTFS, флаг boot]).
Здесь Вы были близки к истине: если компьютер друга с UEFI, то всё бы загрузилось, если бы Вы отформатировали
не в NTFS, а в FAT32. Файл
\efi\boot\bootx64.efi
, о котором я упоминал выше, в образе Windows имеется.
Однако! Если там BIOS, то всё намного сложнее. Процесс загрузки Windows таков, что в первых 446 секторах
диска (эта область называется
bootstrap code area, см.
здесь) хранится код, который ищет активный (с флагом
boot
) раздел, и выполняет код, содержащийся в первых 512 секторах этого
раздела (см.
VBR). Этот код, в свою очередь, запускает на выполнение уже полноценный загрузчик, который, начиная с Windows Vista, называется
bootmgr. Он, собственно, и начинает загрузку ядра Windows.
Итак, для создания загрузочной флешки с Windows, которая будет работать
и в BIOS, и в UEFI, нужно проделать следующие шаги:
- Инициализировать на флешке таблицу разделов MBR.
- Создать раздел максимального размера.
- Задать ему тип с кодом
0xC
(W95 FAT32 (LBA)
) (если пользуетесь GParted - то не важно, он делает это автоматически при выборе файловой системы).
- Сделать его активным (задать флаг
boot
).
- Отформатировать в FAT32.
- Скопировать все файлы с образа Windows на флешку.
- Записать первый загрузчик в MBR (первые 446 секторов диска).
- Записать второй загрузчик в VBR (первые 512 секторов раздела).
Первые пять шагов легко проделываются через GParted, не требуя от пользователя каких-то особых познаний. Скопировать файлы тоже несложно. А вот с последними двумя этапами придётся заморочиться. Для начала нужно где-то достать код этих загрузчиков. Чтобы сильно не париться, я выложу его
в архиве во вложении к этому посту, но под спойлером укажу, как можно достать его самому.
Код первого загрузчика записывается в MBR автоматически при создании таблицы разделов
из-под Винды.
Сохранить его в файл можно командой:
Код: Выделить всё
sudo dd if=/dev/sdX of=mbr.bin bs=446 count=1
Где
/dev/sdX
- устройство, соответствующее флешке.
Второй загрузчик можно записать с помощью программы
bootsect.exe
, которая идёт с образом Windows в директории
\boot
:
Где
X:
- буква флешки. Параметр
/nt60
указывает, что нужно установить загрузчик Windows NT версии 6.0 (что соответствует номеру версии Windows Vista и подходит также для более новых версий).
Чтобы сохранить в файл:
Код: Выделить всё
sudo dd if=/dev/sdX1 of=vbr.bin bs=512 count=1
Обратите внимание, что не
sdX
, а именно
sdX1
, то есть первый (и единственный) раздел флешки.
Записать код этих двух загрузчиков на флешку можно командами:
Код: Выделить всё
sudo dd if=mbr.bin of=/dev/sdX
sudo dd if=vbr.bin of=/dev/sdX1
Где:
-
mbr.bin
и vbr.bin
- файлы из прикреплённого архива либо полученные вручную с использованием инструкции под спойлером.
-
/dev/sdX
- устройство, соответствующее флешке.
-
/dev/sdX1
- первый (и единственный) раздел этого устройства.
Если инструкции выполнены без ошибок, то всё должно заработать. Если нет - возможно, я где-то накосячил. В любом случае, спрашивайте, если что-то непонятно, буду рад помочь.