Criar uma unidade USB inicializável do Windows 10 (UEFI) no Linux

24

Como posso criar uma unidade USB inicializável do Windows 10 a partir do Linux?

Observe:

  • O WinUSB não funciona com o Windows 10.
  • O UNetbootin também não funciona.
  • dd O método não funcionou tão bem.

Além disso, tentei criar uma tabela de partições GPT e uma partição do tipo ef00 e formatada como fat32 e, em seguida, copiei todo o conteúdo ISO para ela. Ele inicia OK, mas quando vou iniciar a instalação mostra o prompt para o diálogo de mídia.

Atualizar

Outra tentativa:

  1. Criou uma GPT
  2. Criou um FAT32 no final da unidade de 50 MB
  3. NTFS criado no espaço restante
  4. Coloque UEFI: NTFS no FAT32
  5. Conteúdo ISO copiado para NTFS

A instalação começa bem, mas no início do progresso mostra o erro 0xc0000005 (se bem me lembro).

Victor Aurélio
fonte
Eu acho que ele deve ser formatado NTFS ... (você é o cara que perguntou isso em reddit também btw?)
Alex
@ Alex, não, não fui eu ... e não, UEFI pode inicializar apenas a partir do FAT32!
Victor Aurélio
Você consertou a loja BCD?
fpmurphy
@ fpmurphy1 não, como fazer isso?
Victor Aurélio
1
O que significa "Colocar UEFI: NTFS no FAT32"?
Philipp Ludwig

Respostas:

7

Você fez tudo certo. Crie a tabela gpt com fat32 e copie todos os dados do iso nele. Mas você também precisa definir o sinalizador "msftdata" (não "boot") nesta partição com, por exemplo, parted.

Feretj
fonte
1
Para quem usa o gdisk: em vez de ef00criar uma 0700partição, crie .
Victor Aurélio
bandeira conjunto "msftdata" (não "boot"), obrigado @Feretj, você salvar a minha vida
gpanda
Você não pode colocar todos os dados em uma unidade FAT32 a partir de junho de 2019. A atualização mais recente contém uma windows.wimque é maior que 4,1 GiB.
Ben
8

Guia para preparar a unidade USB inicializável UEFI do Windows 10 de outubro de 2018 em qualquer distribuição Linux.

Observe que a versão do Windows 10 de outubro de 2018 possui um arquivo de instalação sources/install.wimmaior que o FAT32tamanho máximo , então formataremos a unidade USB para NTFS. O instalador do Windows também não pode funcionar com uma partição EFI (código ef00), portanto, usaremos o Microsoft basic datatipo de partição (código 0700).

Etapas para criar uma unidade USB com o nome /dev/sdc( substitua todos os comandos pelo SEU nome do dispositivo! ):

  1. Insira a unidade USB no computador e verifique se está desmontada. Algumas distribuições gostam de montar automaticamente unidades USB, portanto, desmonte-as. As partições montadas podem ser encontradas com mount -l | grep '/dev/sdc'e desmontadas com sudo umount /dev/sdcX(X é o número da partição).
  2. Abra o dispositivo de bloco USB usando gdisk /dev/sdc, configure-o como GPTe crie uma Microsoft basic datapartição (código 0700), depois escreva as alterações e saia (as próximas etapas destruirão a tabela de partições na sua unidade USB !!! ).
sudo gdisk /dev/sdc
o
> This option deletes all partitions and creates a new protective MBR.
> Proceed? (Y/N): y
n
> Partition number ... > hit Enter
> First sector ... : > hit Enter
> Last sector ... : > hit Enter
> Current type is 'Linux filesystem'
> Hex code or GUID (L to show codes, Enter = 8300): 0700
p
> Should print something like:
> Disk /dev/sdc: 15646720 sectors, 7.5 GiB
> Model: DataTraveler 160
> Sector size (logical/physical): 512/512 bytes
> Disk identifier (GUID): ...
> Partition table holds up to 128 entries
> Main partition table begins at sector 2 and ends at sector 33
> First usable sector is 34, last usable sector is 15646686
> Partitions will be aligned on 2048-sector boundaries
> Total free space is 2014 sectors (1007.0 KiB)
> Number  Start (sector)    End (sector)  Size       Code  Name
>    1            2048        15646686   7.5 GiB     0700  Microsoft basic data
w
> Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!!
> Do you want to proceed? (Y/N): y
q
  1. Formate nova partição como NTFS:
sudo mkfs.ntfs /dev/sdc1
  1. Monte uma nova partição USB no diretório temporário da sua casa:
mkdir ~/tmp-win10-usb-drive
sudo mount /dev/sdc1 ~/tmp-win10-usb-drive
  1. Baixe o ISO de instalação do Windows, crie um novo diretório temporário em sua casa e monte-o lá:
mkdir ~/tmp-win10-iso-mnt
sudo mount Win10_1809Oct_English_x64.iso ~/tmp-win10-iso-mnt
  1. Copie todos os arquivos da unidade ISO montada para USB (você pode usar rsyncpara ver o progresso):
sudo cp -rT ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
  1. Desmonte a unidade ISO e USB do Windows e remova os diretórios temporários:
sudo umount ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
rmdir ~/tmp-win10-iso-mnt/ ~/tmp-win10-usb-drive/
  1. Insira a unidade USB no novo computador e inicie a partir dele.
Lirt
fonte
2
Alguns firmwares não verificam arquivos de inicialização em uma partição NTFS, alguém me corrija se estiver errado.
Victor Aurélio
Você pode compactar o install.wim para ter menos de 4 GB usando o nível de compactação "wimtools" e "solid". Dessa forma, você pode simplesmente usar o FAT32, consulte tqdev.com/2019-cannot-copy-windows-10-install-wim
mevdschee
Você pode acelerar significativamente a formatação do stick ao pular o preenchimento com zeros primeiro: sudo mkfs.ntfs -Q / dev / sdc1
Robert
3

Eu usei o woeusb no Ubuntu da seguinte maneira ( Aviso: isso substituirá toda a sua tabela de partições! ):

sudo woeusb --tgt-fs NTFS --device Win10_1809Oct_Hungarian_x64.iso /dev/sdc

Se você encontrar esta mensagem de erro:

A partição ainda é detectada após a limpeza de todas as assinaturas, isso indica que a unidade pode estar travada no modo somente leitura devido ao fim da vida útil.

faça o seguinte: sudo fdisk /dev/sdce escolha de finalmente w.

(Fonte: https://github.com/slacka/WoeUSB/issues/219 .) Depois disso, tente novamente executar o comando acima.

De qualquer forma, com esse método, o woeusb criou uma tabela de partições gpt com duas partições:

partition      file system    label          size          flags
----------------------------------------------------------------
/dev/sdc1      nfts           Windows USB     57.00 GiB
/dev/sdc2      fat16          UEFI_NTFS      512.00 KiB    lba
unallocated                                    4.00 MiB

Finalmente, tudo que eu precisava fazer era colocar o sinalizador de inicialização com gparted para a partição / dev / sdc2 (ao lado de lba).

Dessa forma, eu poderia inicializar com êxito no modo UEFI e instalar o Windows 10 a partir do meu pendrive.

Varga
fonte
Comentando apenas para me lembrar de votar se funcionar.
Aquele cara brasileiro
2

Tente usar o Rufus com o Wine.

Saudações.

aalf1987
fonte
2
Esta não é uma solução "linux".
Victor Aurélio
1
Mas funciona bem.
aalf1987
O Rufus é de código aberto. Rápido, eficiente, funciona no Linux. Obrigado!
Akhmed
0

A partição EFI deve ser Fat32. Está na especificação EFI. Seu sistema nunca inicializará se você colocar os arquivos do instalador em uma partição NTFS.

Você nem precisa de nenhum software especial. GPT / FAT32 para o instalador, extraia todos os arquivos do iso (suponho que você tenha o iso mais recente usando a ferramenta de criação de mídia, pois inclui a atualização de novembro) e defina o "sinalizador de inicialização" usando o gparted. Ele será inicializado no instalador no modo EFI, assumindo que você selecione EFI USB nas opções de inicialização quando o computador iniciar.

Pingers.

Pingers
fonte
O problema é que, assim que o instalador inicia o processo, gera um erro, descrito na pergunta.
Victor Aurélio
você tentou com um iso diferente? Eu suspeitaria da minha fonte. Pegue a mais recente, conforme descrito na minha resposta. Se arrancar com que no seu USB, e você ainda receber um erro, eu ia começar a hardware pergunta ...
Pingers
sim, eu tentei isso também ...
Victor Aurélio