Псевдокод, изначально разработанный для файла 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.
Использование dd
absolute не работает для 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.