Pendrive de instalação do Windows a partir do Linux (II)

No Windows 10 2009 (20H2), o arquivo sources\install.wim passou a ter mais de 4 GiB, o que impossibilita o uso de FAT32. Precisamos recorrer ao NTFS. Sem FAT32, contudo, perdemos a garantia de suporte via UEFI. A saída é o UEFI:NTFS, cujo propósito é ler sistemas de arquivos NTFS ou exFAT do disco em uso e carregar \EFI\BOOT\BOOT<arquitetura>.EFI.

Criamos uma pequena partição de 1 MiB[1], do tipo 0xEF, para abrigá-lo. Usamos a imagem FAT12 do Rufus (uefi-ntfs.img), que contém o UEFI:NTFS bem como drivers EFI para NTFS e exFAT. No espaço restante, uma única partição, ativa, do tipo 0x07.

# echo -e ',2048,EF\n,,07,*' | sfdisk --lock=yes --wipe=always --wipe-partitions=always --label=dos /dev/sdx
# curl -Ls https://github.com/pbatard/rufus/raw/master/res/uefi/uefi-ntfs.img | dd conv=fsync,notrunc of=/dev/sdx1

Agora criamos o sistema de arquivos NTFS na segunda partição:

# mkfs.ntfs -f /dev/sdx2

Caso o alvo seja UEFI, basta montar /dev/sdx2 e extrair o conteúdo do DVD de instalação para dentro do ponto de montagem.

Para adicionalmente ter suporte ao modo Legacy/CSM, gravamos o código de boot no MBR (desmonte /dev/sdx2 antes de prosseguir):

# ms-sys --mbr7 /dev/sdx

E na partição:

# ms-sys --ntfs /dev/sdx2

Serve para qualquer mídia de instalação do Windows a partir do Vista. UEFI:NTFS e o driver EFI NTFS são assinados pela Microsoft e, portanto, funcionarão com secure boot habilitado. Alguns firmwares suportam NTFS nativamente. Assim, serão oferecidas duas opções durante a inicialização: uma entrada para o UEFI:NTFS e outra para o \EFI\Boot\bootx64.efi (cópia de \EFI\Microsoft\Boot\bootmgfw.efi) da segunda partição. Ambas funcionarão. Tais firmwares não são muito comuns ainda.

No lugar do NTFS, é possível usar exFAT também. No entanto, o driver EFI não é assinado pela Microsoft (será necessário desabilitar secure boot temporariamente)… uma grande desvantagem. Note que é suportado apenas a partir da mídia de instalação do Windows 8. Requer mkfs.exfat 1.1.2 ou superior da suíte exfatprogs — versões anteriores criam volumes não reconhecidos pelo Windows. O código de boot é instalado na partição com a opção --exfatnt6 (ms-sys 2.7.0+).

Relacionado:
UEFI:NTFS agora suporta secure boot
Pendrive de instalação do Windows a partir do Linux
UEFI x Sistemas Operacionais


[1] 2048 setores de 512 bytes. Ainda não vi pendrive com setores físicos de tamanho diferente…

Comentários

Postar um comentário