Коротко — получить корректный установочный ISO из загрузочной USB‑флешки нужно не «скопировать файл .iso», а собрать ISO из файлов на флешке, добавив правильные загрузочные образы и каталог El Torito для BIOS и UEFI. Ниже — проверенный рабочий порядок (варианты для Linux и Windows), какие программы и точные команды использовать.
Основная идея
- Считать (монтировать) обе(ю) раздел(а) флешки: ESP (FAT32, \EFI\BOOT\bootx64.efi) и раздел с остальными файлами Windows (обычно NTFS с \boot\etfsboot.com и инсталляционными файлами).
- Скопировать всё содержимое в рабочую папку.
- Сделать маленький FAT‑образ (efi.img), в который поместить папку \EFI\BOOT.
- Собрать ISO с одновременной поддержкой BIOS (etfsboot.com) и UEFI (efi.img) — с учётом UDF/файлов >4 ГБ.
Вариант A — Linux (рекомендуется, если есть)
Требуется: root, xorriso (или genisoimage+xorriso), mkfs.vfat, dd, rsync или cp.
1) Найти устройство и разделы
sudo fdisk -l
или
lsblk -f
Допустим: /dev/sdX1 = ESP (FAT32), /dev/sdX2 = NTFS с файлами.
2) Смонтировать (только для чтения)
sudo mkdir -p /mnt/esp /mnt/win
sudo mount -o ro /dev/sdX1 /mnt/esp
sudo mount -o ro /dev/sdX2 /mnt/win
3) Скопировать файлы в рабочую папку
mkdir /tmp/win_iso_src
# копируем корень (сохраняя атрибуты)
rsync -aH --exclude=efi.img /mnt/win/ /tmp/win_iso_src/
4) Сделать FAT‑образ efi.img и поместить в него папку EFI
dd if=/dev/zero of=/tmp/efi.img bs=1M count=16 # размер 16 MB (можно 8–32 MB)
mkfs.vfat -F32 /tmp/efi.img
sudo mkdir /mnt/efi_img
sudo mount -o loop /tmp/efi.img /mnt/efi_img
sudo cp -a /mnt/esp/EFI /mnt/efi_img/ # важна папка EFI\BOOT\bootx64.efi
sync
sudo umount /mnt/efi_img
5) Собрать ISO с поддержкой BIOS+UEFI
Пример с xorriso (в одной строке):
xorriso -as mkisofs \
-udf -iso-level 3 -o ~/win7_uefi.iso \
-b "boot/etfsboot.com" -no-emul-boot -boot-load-size 8 -boot-info-table \
-eltorito-alt-boot -e efi.img -no-emul-boot \
-A "WIN7_UEFI" \
/tmp/win_iso_src
Пояснения:
- -b указывает BIOS boot image (обычно boot/etfsboot.com в корне).
- -e указывает EFI образ (наш /tmp/efi.img).
- -udf / -iso-level 3 — для поддержки больших файлов (install.wim >4ГБ рекомендую UDF).
- Результат ~/win7_uefi.iso можно протестировать в QEMU/VirtualBox с UEFI.
Вариант B — Windows (если работаете в Windows)
Требуется: Windows ADK (oscdimg.exe), инструмент для создания/монтирования виртуального диска (ImDisk или OSFMount), средство для чтения EFI‑раздела (через Disk Management / diskpart присвоить букву), плюс обычный Проводник.
1) Присвойте букву EFI‑разделу (если скрыт)
diskpart
list disk
select disk N
list partition
select partition M # тот, который FAT32 ~100–300MB
assign letter=V
exit
2) Скопируйте содержимое разделов в одну папку (например C:\iso_src):
- скопируйте все файлы с основного раздела флешки (NTFS) в C:\iso_src
- скопируйте папку V:\EFI\BOOT в C:\efi_copy
3) Создайте efi.img:
- с помощью ImDisk создайте виртуальный файл диска размером, скажем, 16 MB, форматируйте его в FAT32 и скопируйте в корень папку EFI\BOOT. Затем используйте ImDisk/OSFMount чтобы «экспортировать» содержимое в raw‑файл (efi.img). (В ImDisk есть опция создания файла‑образа; после форматирования командой diskpart или Проводником скопируйте файлы и просто отключите — файл и будет efi.img.)
4) Соберите ISO с oscdimg
Пример (команда oscdimg из Windows ADK):
oscdimg -n -m -o -u2 -udf -bootdata:2#p0,e,b"boot\etfsboot.com"#pEF,e,b"efi.img" C:\iso_src C:\win7_uefi.iso
Пояснения:
- -u2 и -udf — для UDF (большие файлы).
- -bootdata:2#p0,e,b"boot\etfsboot.com"#pEF,e,b"efi.img" — делает двойной загрузочный образ (BIOS + UEFI).
- C:\iso_src — папка с файлами Windows, C:\win7_uefi.iso — выходной ISO.
Альтернативы и короткие советы
- Если хотите просто «сделать побитовую копию» флешки, можно использовать Win32 Disk Imager или ImageUSB → .img. Но .img — это не всегда корректный ISO для записи на DVD/монтирования как Windows установщик; такой raw‑образ проще записать обратно на USB или использовать в виртуалке.
- Rufus не создаёт ISO из USB (он только пишет ISO на USB).
- Для проверки ISO используйте QEMU (qemu-system-x86_64 -bios OVMF.fd -cdrom win7_uefi.iso) или VirtualBox с включённым UEFI/EFI.
- Если install.wim >4 GB, при использовании genisoimage/ mkisofs может возникнуть проблема — используйте Xorriso/oscdimg с UDF, либо разбейте WIM (dism /Split-Image).
- Всегда монтируйте разделы в режиме «только для чтения», чтобы не повредить оригинал.
Если хотите — могу:
- Написать точный набор команд для вашего случая, если вы пришлёте вывод lsblk/fdisk (чтобы знать, какие разделы и пути), либо
- Подготовить пошаговую инструкцию под Windows с использованием конкретных бесплатных утилит (ImDisk + ADK).