Como criar uma imagem ISO inicializável do Windows 8 no Linux?

Como criar uma imagem ISO inicializável do Windows 8 no Linux?

Tenho que inserir o Autounattend.xmlarquivo em uma imagem iso do Windows 8 para que a iso seja instalada automaticamente. Meu sistema precisa rodar no Linux e só pode usar o comando shell do Linux, portanto, ferramentas ISO no Winodws, como o UltraISO, não podem ser usadas.

Já tentei vários métodos, mas não foi possível inicializar toda a iso criada, apenas imprimi

CDBOOT: Cannot boot from CD - Code: 5

A. O primeiro método que tentei é:tutorial

  1. Monte iso em uma pasta
  2. Copie o conteúdo iso montado para uma nova pasta
  3. Adicione meus arquivos na nova pasta
  4. Use mkisofso comando para criar uma nova imagem iso

    mkisofs -o windows2008_new.iso -b boot/etfsboot.com -no-emul-boot   -boot-load-size 8 -boot-info-table  -V -J -l -D -N -UDF  -relaxed-filenames -V "WINSP"
    

B. O segundo método que tentei:

Ferramenta MS cmd chamada "oscdimg" no Windows para criar uma nova iso do Windows, funciona. Então copio o oscdimg para o Linux e uso o Wine para executá-lo, ele não pode ser executado normalmente.

Alguém sabe como criar uma imagem iso inicializável do Windows no Linux usando o comando shell puro?

Responder1

Consegui usar com sucesso genisoimage(um fork debian do mkisofs).

Método:

  1. loopback montar o iso

    mount -o loop <image>.iso /mnt/iso
    
  2. copie para a pasta secundária para acesso r/w

    cp -R /mnt/iso/ /mnt/iso2
    
  3. faça mudanças

  4. genisoimage -b <relative boot-img path> -no-emul-boot -boot-load-size 8 -iso-level 2 -udf -joliet -D -N -relaxed-filenames -o <new-image>.iso /mnt/iso2.`
    

Responder2

Método proposto para Windows 7, mas não funciona com o arquivo iso do Windows 10

# https://rwmj.wordpress.com/2010/11/04/customizing-a-windows-7-install-iso/
$ 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 .

Saída malsucedida na primeira etapa

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

Por favor, deixe-me saber se você encontrar algum método mais recente para a tarefa.

SO: Debian 8.5 64 bits
Hardware: Asus Zenbook UX303UA
Hardware de destino: Asus PC

Responder3

Eu queria fazer a mesma coisa, mas com ei.cfg; aqui está como eu fiz:

Primeiro crie um ponto de montagem:

mkdir -p /mnt/image

Monte a imagem oficial do Windows em /mnt/image:

sudo mount -o loop Win10_2004_English_x64.iso /mnt/image

Crie um diretório separado /tmp/bootableWinpara suas modificações, respeitando a estrutura de pastas ISO, pois não é possível editar a montagem em loop.

No meu caso:

mkdir -p /tmp/bootableWin/sources
sudo tee /tmp/bootableWin/sources/ei.cfg <<EOF
[Canal]
Varejo
EOF

E finalmente empacote-o:

mkisofs \
    -iso-nível 4 \
    -eu \
    -R\
    -UDF\
    -D\
    -b inicialização/etfsboot.com \
    -no-emul-boot \
    -boot-load-tamanho 8\
    -ocultar boot.catalog\
    -eltorito-alt-boot\
    -eltorito-plataforma efi \
    -no-emul-boot \
    -b efi/microsoft/boot/efisys.bin \
    -o /casa/nome de usuário/win10-outputimage.iso\
    /mnt/imagem /tmp/bootableWin/

Agora você deve ter um BIOS e uma imagem inicializável UEFI com o arquivo adicionado.

informação relacionada