3 pontos por GN⁺ 2024-07-29 | 1 comentários | Compartilhar no WhatsApp
  • Windows Deployment Image Customization Kit é uma ferramenta de implantação de imagens do Windows baseada em shell de comando nativo, apresentada no título do HN como um gerador de ambiente de recuperação do Windows e USB inicializável com 200 KB
  • Em relação ao SecureBoot, há o entendimento de que usar bootmgfw_EX.efi, que fica na pasta EFI_EX dentro de boot.wim, em vez do bootmgfw.efi comum causa menos problemas de compatibilidade
  • No momento, o projeto está aguardando para ver em que direção a Microsoft vai padronizar; se a direção não ficar clara, o plano é passar a trazer o bootloader EFI_EX ou permitir escolher entre os dois métodos
  • Por enquanto, o usuário pode obter manualmente o bootloader no local EFI_EX, colocá-lo na pasta cache e então iniciar a atualização dos arquivos de boot dentro do recovery
  • Ao desativar o SecureBoot, é possível continuar usando o Windows normalmente até que a Microsoft decida qual bootloader vai padronizar

Ferramenta de implantação de imagens do Windows

  • Windows Deployment Image Customization Kit é uma ferramenta de implantação de imagens do Windows baseada em shell de comando nativo
  • No título do HN, este projeto é apresentado como um gerador de ambiente de recuperação do Windows e USB inicializável com 200 KB
  • O README inclui imagens da tela da GUI e da tela do MenuScript

SecureBoot e tratamento do bootloader

  • Usar bootmgfw_EX.efi, que fica na pasta EFI_EX dentro de boot.wim, em vez do bootmgfw.efi comum reduz os problemas de compatibilidade com SecureBoot
  • O motivo para a mudança não ser aplicada imediatamente é que a direção da Microsoft ainda não está clara
  • Se a direção da Microsoft não ficar clara, uma das seguintes mudanças poderá ser aplicada
    • Trazer o bootloader da pasta alternativa EFI_EX
    • Tornar possível escolher entre os dois métodos de bootloader
  • A intenção é evitar uma situação em que a mudança seja feita agora e precise ser revertida depois

Ação manual possível no momento

  • O usuário pode obter manualmente o bootloader no local EFI_EX
  • Depois de colocar o bootloader obtido na pasta cache, pode iniciar a atualização dos arquivos de boot dentro do recovery
  • Ao desativar o SecureBoot, é possível usar o Windows normalmente até que a Microsoft decida a direção do bootloader padrão

Distribuição e documentação

1 comentários

 
GN⁺ 2024-07-29
Comentários do Hacker News
  • É o maior arquivo batch que já vi. No ensino médio eu achava exagerado aquele meu de umas 200 linhas, mas a persistência de levar batch até esse ponto é realmente impressionante.
    Eu conhecia um pouco aqueles recursos meio parecidos com chamadas de função falsas e algumas sintaxes estranhas, mas só de passar os olhos já vi muita coisa que nunca tinha visto. Normalmente coisas do tipo “X em Y KiB” envolvem mexer no linker de formas esquisitas, então isso é algo novo. E os nomes dos recursos “Windows To Go” e “Windows To Stay” são bem engraçados

    • Já que o assunto é arquivo batch grande: se você já fez softmod em um Wii, é bem provável que tenha usado o ModMii, e ele é de longe o maior programa em batch que eu já vi.
      O script principal [1] é um arquivo batch com mais de 1 MB. Antigamente eu era bem envolvido com modding de Wii e lembro de ter conversado algumas vezes com o autor desse script sobre várias coisas de batch. Não consigo nem imaginar manter um arquivo desse tamanho
      [1] https://github.com/modmii/modmii.github.io/blob/master/Suppo...
    • Windows To Go” é o nome oficial de um recurso antigo do Windows.
      Com o PowerShell incluído na instalação padrão, escrever um script em batch, seja com 3.085 linhas ou qualquer outro tamanho, é completa insanidade
    • Fugindo bastante do tema, mas isso me lembrou um arquivo batch com mais de 300 linhas que eu usava em um BBS no começo dos anos 90.
      Eu tinha um monte de verificações de errorlevel para lidar com troca de doors, Fidonet etc. Se você realmente precisasse de recursos extras, arquivos batch podiam ficar absurdamente complexos
  • Só para constar: não há licença especificada

  • Pelo que sei, o “Windows Recovery Environment” é uma versão mínima e reduzida do Windows, sem boa parte do espaço de usuário comum e sem algumas partes do kernel, que as pessoas vêm ampliando e personalizando de várias formas

    • O design geral foi inspirado na UI simples baseada em texto usada pelo ClockworkMod Recovery do Android.
      Também não há dependências
  • É uma das ferramentas baseadas em shell mais impressionantes que já usei. O simples fato de caber em 200 KB já é uma conquista, e é engenhoso

  • Uma implicância muito pequena, mas eu estremeço quando vejo plurais do tipo FOO'S.
    Se VHDXS fica confuso, basta sair das maiúsculas e escrever VHDXs.
    https://www.hamilton.edu/academics/centers/writing/seven-sin...

  • Parece legal, mas fico curioso para saber o que isso faz que uma partição padrão do Windows Recovery Environment não faça.
    Seria para usar quando o ambiente de recuperação padrão está quebrado? Também fico me perguntando se o incidente recente da CrowdStrike foi um caso desses

    • No caso recente da CrowdStrike, não foi.
      No meu notebook de trabalho, o ambiente de recuperação ainda funcionava bem, eu conseguia inicializar em modo de segurança, e o modo de segurança também não travava
  • Será que dá para usar isso para instalar driver ou firmware de monitor? Fico pensando se seria possível criar um USB inicializável, colocar o instalador nele e instalar o firmware.
    https://www.lg.com/au/support/product-support/cs-32GS95UE-B....
    Pensei em tentar com WINE, mas dá um pouco de medo. Infelizmente, o novo firmware do meu monitor só pode ser instalado por exe, e o que tenho agora é apenas um desktop Linux

    • Normalmente faço esse tipo de coisa assim: primeiro fico de algumas horas a alguns dias desmontando o EXE. Às vezes ele é só um executável de extração automática, então dá para encontrar o binário de firmware original. Às vezes só consigo extrair o firmware depois de reaprender o básico de R2/Ghidra por alguns dias.
      Depois, se eu conseguir encontrá-lo, descubro como gravá-lo. Quando acho que já sei como fazer, preciso obrigatoriamente estar muito tarde da noite e cansado a ponto de ficar grogue. Só assim fico convencido de que consigo fazer sem transformar em tijolo. Afinal, qual é a graça se você não correr o risco de transformar em tijolo? É só pegar qualquer clipe SOIC genérico estilo Pomona e despejar ROMs aleatórias do chip.
      Por fim, se eu estiver acordado o suficiente para não cair na armadilha das etapas anteriores, jogo fora tudo o que fiz até então e decido gastar meu tempo criando um USB inicializável do Windows. Se isso não funcionar por algum de vários motivos, pego emprestado um notebook com Windows. Mas, a essa altura, já vou estar cansado demais, então crio uma máquina virtual Windows no QEMU e fico reiniciando o computador várias vezes enquanto mexo nas configurações de passthrough necessárias para conectar o dispositivo. Executo o utilitário, abro o EXE e ele começa a funcionar. Fico tão empolgado que acidentalmente desconecto tudo no meio do processo. De um jeito ou de outro, o monitor ainda parece funcionar, mas fico convencido de que há algo sutilmente errado em algum lugar. Alguns anos depois, tiro o clipe SOIC da gaveta de novo. Esta é uma história que combina vários dos meus fracassos.
      Na prática, sim. É bem provável que este projeto consiga fazer esse tipo de tarefa sem grandes problemas. Só vale estar preparado para o instalador ser um bloatware completo e não funcionar, ou fingir que vai funcionar quase até o fim e então algo sair errado
    • Às vezes esses utilitários simples também rodam em FreeDOS/MS-DOS inicializado por um pendrive USB ou CD.
      Em outros casos é preciso Win32, e aí você acaba usando algo como o Hiren’s Boot CD moderno. Se minha memória não falha, a versão atual é baseada no Windows 10, enquanto os lançamentos iniciais eram baseados no XP
    • Existem alguns caminhos, mas isto é um script do shell de comando do Windows, então só roda no Windows
    • Se software de terceiros for aceitável, dá para criar um USB inicializável para atualização de firmware.
      https://www.hirensbootcd.org/
  • Incrível. Um shell script de 3 mil linhas; admiro quem consegue manter esse tipo de coisa.
    Para mim, parece uma bagunça quente e difícil de abordar

    • É mesmo tão difícil de abordar assim? Eu também não gosto de arquivos de 3 mil linhas, mas, quando preciso lidar com eles, trato como se estivesse lidando com vários arquivos.
      Abro uma aba ou painel dividido para cada “área” em que quero trabalhar. Se estou trabalhando em três áreas, abro três painéis divididos, cada um focado em uma área, e alterno entre eles. Na prática, é quase a mesma coisa que lidar com três arquivos