Как создать загрузочный образ Windows 10 в Debian?

Как создать загрузочный образ Windows 10 в Debian?

Псевдокод, изначально разработанный для файла ISO Windows 7, но примененный для Windows 8 в темеКак создать загрузочный образ Windows 8 iso в Linux?но это не работает с Windows 10 iso

# https://rwmj.wordpress.com/2010/11/04/customizing-a-windows-7-install-iso/
# https://unix.stackexchange.com/a/312477/16920
$ dd if=../en_windows_10_x64_dvd.iso \
    of=boot.img bs=2048 count=8 skip=734

$ mkisofs -o ../new-win.iso -b boot.img -no-emul-boot -c BOOT.CAT \
    -iso-level 2 -udf \
    -J -l -D -N -joliet-long -relaxed-filenames .

Неудачный вывод при запуске на образе Windows 10

dd if=/home/masi/Downloads/en_windows_10_multiple_editions_version_1511_x64_dvd.iso of=/home/masi/Downloads/boot.img bs=2048 count=8 skip=734
8+0 records in
8+0 records out
16384 bytes (16 kB) copied, 0.000392973 s, 41.7 MB/s 

Некоторые из следующих полей были изменены для файла iso, используемого вdd

  • bs=2048
  • count=8
  • skip=734

Как узнать, какие значения полей можно использовать для образа Windows 10 iso?

ОС: Debian 8.5 64 бит
Аппаратное обеспечение: Asus Zenbook UX303UA
Ядро Linux: 4.6 с обратными портами
Связанные темы:Как создать загрузочный образ Windows 7 iso в Linux?,Настройка установочного ISO-образа Windows 7
Мотивация: Мне нужна Windows 10 для использования двустороннего сканера Canon P-150, но при запуске Windows я получаю ошибку0xC0000428потому что обновление Windows снова что-то сломало, а я использую Windows очень редко; и у меня не осталось запасной Windows, чтобы создать загрузочный носитель

решение1

Я попробовал решение для Win7, описанное Microsoft, на машине с Windows:

https://www.microsoft.com/en-us/download/windows-usb-dvd-download-tool

и получил

ошибка 0x80080005

поэтому перешел на Debian Stretch 9, чтобы попытаться создать загрузочный USB-диск Windows 10, используя ISO-образ колледжа/школы e5.onthehub.com.

Использование ddabsolute не работает для Windows 10. Это работает только для ОС Linux. Используйте:

dd if=my-linux-os.iso of=/dev/sdX bs=4M

Примечание: Никогда не пытайтесь записывать туда /dev/sdX1, где это необходимо X={a,b,c or d}, и всегда проверяйте, не перезаписываете ли вы жесткий диск, что обычно происходит /dev/sdaили /dev/sdb!

Для Windows 10 можно использовать WoeUSB, но не из репозиториев apt/yum. Эти устарели, по крайней мере для Debian 9. Поэтому вместо этого используйте:

git clone https://github.com/slacka/WoeUSB.git

Затем следуйте инструкциям в конце:

https://github.com/slacka/WoeUSB

Сначала у вас должны быть установлены все необходимые программы, такие как gparted и т. д.

Я также обнаружил в конце процесса, что мне нужно запустить woeusb с sudo. Так что вы просто используете:

sudo woeusb --device local/of/my/windows-10-image.iso /dev/sdX

и эй, вуаля, он просто блестяще работает. В моем случае был мой жесткий диск /dev/sdaи мой USB-накопитель, /dev/sdbпоэтому я записал ISO на него /dev/sdb(опять же будьте осторожны, вы не хотите случайно перезаписать свою ОС). Затем я установил его на материнскую плату MSI военного класса с подключенным жестким диском на 2 ТБ без опций быстрой загрузки в BIOS, и он просто работает. Сначала я включил абсолютно все опции UEFI, чтобы привести его в правильное состояние.

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

решение2

У меня это сработало даже с устаревшей загрузкой/загрузкой CSM (Ubuntu 16.04, Windows 10 версии 1511 32 бит; вы также можете использовать genisoimage вместо mkisofs, mkisofs — это просто символическая ссылка):

mkisofs \
  -no-emul-boot \
  -b boot/etfsboot.com \
  -boot-load-seg 0x07C0 \
  -boot-load-size 8 \
  -iso-level 2 \
  -udf \
  -joliet \
  -D \
  -N \
  -relaxed-filenames \
  -o win10-1511-32bit-mod1.iso \
  files/

(одна длинная строка, в bash с обратными косыми чертами в конце для продолжения строки)

где files/находится подкаталог, содержащий извлеченное содержимое ISO-образа Windows 10.

Ключевым моментом, по-видимому, является etfsboot.comподкаталог boot/ISO-образа Windows 10.

Я могу загрузить записанный диск с помощью legacy/CSM без каких-либо проблем.

Я пробовал только с версией 1511 win10. Если вы попробуете с другими версиями, пожалуйста, оставьте комментарий.

решение3

Если вы собираетесь загрузить компьютер на базе UEFI, просто смонтируйте Windows ISO (убедитесь, что это ISO в формате UDF) и скопируйте все файлы на USB-накопитель. Пока накопитель в формате FAT32, компьютер UEFI распознает его и предложит вариант загрузки с него.

С другой стороны, для машины на базе BIOS лучшим вариантом будет вручную настроить syslinux для последовательной загрузки загрузки Windows. Я пробовал это на Windows 8, но пока не на 10. /dev/sdfваш USB-накопитель.

  • Отформатируйте USB в FAT32.
  • Убедитесь, что на USB-накопителе только один раздел, и он активен в режиме загрузки (в этом вам поможет GParted)
  • Скопируйте все файлы из ISO на USB-накопитель.
  • Установите syslinux на вашу систему Linux
  • Запустить syslinux -i /dev/sdf1(первый раздел на USB-накопителе, можно проверить на lsblk)
  • Бегатьdd if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sdf bs=4M
  • Смонтируйте USB-накопитель и создайте каталогboot/syslinux
  • Скопируйте все *.c32файлы из /usr/lib/syslinux/biosв boot/syslinuxкаталог на USB-накопителе.
  • Создайте syslinux.cfgтекстовый файл на boot/syslinux, с текстом

    LABEL win10
    MENU LABEL Boot Windows 10 install
    COM32 /boot/syslinux/chain.c32
    APPEND label=win7fs ntldr=/bootmgr
    

Редактировать: Я не уверен, где Debian размещает файлы syslinux; вы можете найти их с помощьюfind / -name "mbr.bin" 2> /dev/null

решение4

Единственное надежное решение, которое я нашел для этого случая. Создать загрузочную Windows в Windows.

Связанный контент