[Dica] Criando pendrive de instalação do Windows 11 manual ou via script

Via Script

Se quiser um script para montar o pendrive, segue o link da sexta resposta deste tópico.

Link: Script para criar pendrive bootável do Windows 11 no Linux


Modo manual

Caso não queira usar script ou algum aplicativo.

Baixar a imagem do Windows11

https://www.microsoft.com/pt-br/software-download/windows11

Pacotes necessários: wimlib (dividir o arquivo) e dosfstools (suporte FAT32)

Exemplo:

sudo dnf install wimlib
sudo pacman -S wimlib
sudo apt install wimtools

Montar imagem do Windows 11 na pasta /mnt

Criando pasta iso na pasta mnt para adicionar a imagem iso do Windows11

sudo mkdir -p /mnt/iso

Montar imagem iso na pasta mnt

 sudo mount -o loop Win11_25H2_BrazilianPortuguese_x64.iso /mnt/iso

Insira o pendrive e localize ele com o comando

lsblk -f

exemplo: /dev/sdb1

sudo mkfs.fat -F32 -n WINDOWS11 /dev/sdb1

Criando pasta no /mnt do pendrive e monta ela.

sudo mkdir -p /mnt/windows11
sudo mount /dev/sdb1 /mnt/windows11

Vamos inciar o primeiro processo da cópia da imagem iso, sem o arquivo sources/install.wim

sudo rsync -rtpl --exclude ‘sources/install.wim’ /mnt/iso/ /mnt/windows11/

Entrar na pasta /mnt/windows11/sources/

cd /mnt/windows11/sources/

Copiar e dividir o arquivo install.wim (6.1 GiB)

sudo wimlib-imagex split /mnt/iso/sources/install.wim install.swm 3800 --check

Pronto, o pendrive do Windows 11 foi finalizado

Desmonte as partições:

sudo umount -R /mnt

ou

sudo umount /mnt/iso
sudo umount /mnt/windows11

E depois delete as pastas no /mnt, atenção usando * apagará todo o conteúdo da pasta /mnt

sudo rm -rf /mnt/*

Não sei se seria para adicionar na área de Artigos do fórum.

4 curtidas

O meu script automatiza isso tudo em um comando só

curl -o windusb.sh https://raw.githubusercontent.com/Broly1/Windusb/master/windusb.sh && chmod +x windusb.sh && ./windusb.sh

E tmb se quiser fazer um bypass do windows 11 e debloat com aquele autounattended.xml desse site

é so copiar o xml para dentro do pendrive depois que copiar os arquivos com os commandos ou script.

E se quiser criar uma iso customizada com o xml dentro segue os comandos:

Exraia a iso original .

7z x Win*.iso

Copie o arquivo unattend.xml para dentro da pasta extraida da iso e rode esses comandos para criar uma nova iso modificada otima para vms ou ou instalação normal em pcs sem suporte ao windows 11.

sudo pacman -Sy cdrtools

mkisofs -o ./Win11_Custom_Unattended.iso \
    -UDF -iso-level 3 -full-iso9660-filenames \
    -b boot/etfsboot.com \
    -no-emul-boot -boot-load-size 8 \
    -eltorito-alt-boot \
    -b efi/microsoft/boot/efisys.bin \
    -no-emul-boot \
    -joliet-long \
    -D -V "Win11_CUSTOM_OS" \
    ./Win11_25H2_English_x64 #coloque o nome correto da pasta
2 curtidas

Não consegui de jeito nenhum criar um pendrive do Windows pelo linux. Tentei instalar o Ventoy, mas recebi mensagens de erro. Tentei o woeusb, balena etcher… vou tentar este método.

Ok. Informe se conseguiu?

Aqui não tive problemas.

@sr_llucas

Deu certo… obg a dica @swatquest

2 curtidas

Quem quiser um script

Script baseado no script do windows 10 - [BASH] Script criador de USB Windows 10 Bootável para Linux (versão 0.4) - agora com detecção automática e outras funcionalidades

segue

  1. Trabalha com a imagem do Windows11 montada na pasta /mnt

  2. Funciona com um ou mais driver removíveis. Caso exista mais de um o script pede para você escolher o usb

  3. Desmonta, formata e monta o pen drive com a label WINDOWS11

  4. Copia o conteúdo com o rsync, exibindo assim a porcentagem do progresso da cópia para o usb

  5. Ao finalizar, desmonta a imagem na pasta /mnt

  6. É utilizado o /dev/null para ocultar determinadas saídas de comandos. Se quiser pode ser retirado ( só remover &> /dev/null). Isso foi feito para deixar o processo de instalação mais limpo.

  7. O script está comentado

  8. Trabalha com /run/media

  9. Detecta se existe drive removível ou não

  10. Monta o drive se não estiver

  11. Mostra o drive selecionado que irá trabalhar

  12. Trabalha com sudo para algumas tarefas

  13. Captura o tamanho da partição selecionad

#!/bin/bash
# Cria usb bootável Windows 11

# Se teclar CTRL+C sair
  trap "exit" INT

# Função para pegar o tamanho do disco removível
pegartamanho(){
TAMANHO=`lsblk -n -r -o FSSIZE $DEVUSB`
}  
# Usar sudo com tempo infinito enquanto roda o script
  while :; do sudo -v; sleep 259; done &
  infiloop=$!
  
# Se não for root use o sudo
[ "$UID" != 0 ] && SU=sudo

# Texto de exibição antes de pedir senha sudo
  echo "O script precisa de permissão root para executar algumas tarefas na pastas /mnt e também na formatação do disco removível que será usado."

# Cria a pasta de ISO na /mnt
  $SU mkdir -p /mnt/ISO
  
# Monta uma imagem tipo CD/DVD na /mnt/ISO
echo "Montando imagem do Windows 11"
  $SU mount -o loop "$1" /mnt/ISO &> /dev/null

# Detecta o usb
# Conta as o número de montagens em /run/ de discos
CONTAGEM=`awk -e '$1 ~ /^\/dev/ && $2 ~ /^\/run/' /proc/mounts | wc -l `
# Se não existir montagem em /run
  if [[ "$CONTAGEM" == 0 ]]; then  
# DISCOUSADO (sem partição) e PARTICAO (com partição) 
     DISCOUSADO=`awk -F "/" '$2=="dev" && $1=="" {print $3}' /proc/mounts | cut -c-3 | sort | uniq`
     DISCONAOUSADO=`lsblk | awk -e '$1 ~ /^sd/ {print $1}' | grep -v "$DISCOUSADO"`
       if [[ -z "$DISCONAOUSADO" ]]; then 
          echo "Desmontando imagem do Windows 11 no /mnt"
          $SU umount /mnt/ISO 
          $SU rm -r /mnt/ISO
	  echo "Pronto."
          echo -e "[\e[1m Atenção: Nenhum disco removível inserido \e[0m]"
          exit 0
       else  
          PARTICAO=`lsblk -n -r -o NAME "/dev/$DISCONAOUSADO" | awk '$1~/s.*[[:digit:]]/'`
       fi
# Se tiver partição ou não
        if [[ -z "$PARTICAO" ]]; then                       
           NAOMONTADO="$DISCONAOUSADO"
        else
# Caso exista partição
           NAOMONTADO="$PARTICAO"
        fi
# Montar partição
     udisksctl mount -b "/dev/$NAOMONTADO" &> /dev/null
     DEVUSB="/dev/$NAOMONTADO" 
     pegartamanho
     echo "USB não montada. A montagem será em /dev/$NAOMONTADO com $TAMANHO"
# Se existir 1 partição montada     
  elif [[ "$CONTAGEM" == 1 ]] ; then
     DEVUSB=`awk -e '$1 ~ /^\/dev/ && $2 ~ /^\/run/ {print $1}' /proc/mounts`
     pegartamanho
     echo "A partição que será usada é $DEVUSB  com $TAMANHO"
  else
# Detecta mais de uma montagem para usar
     echo "Informação extra"
     awk -e '$1 ~ /^\/dev/ && $2 ~ /^\/run/ {print $1 " -----> " $2 }' /proc/mounts  
     echo -e Informe o número do usb para ser usado:
     OPCOES=($(awk -e '$1 ~ /^\/dev/ && $2 ~ /^\/run/ {print $1}' /proc/mounts))
        select USBSELEC in "${OPCOES[@]}"
        do
          DEVUSB="$USBSELEC"
          pegartamanho
          echo "A partição que será usada é $DEVUSB  com $TAMANHO"
          break;
       done
  fi
  
# Pergunta se quer continuar na montagem seleciona
	while read -p "O disco ou partição está correto? [S/n]" RESP ; do
  	  if [[ $RESP = "" ]]; then
   	     RESP="S"; break
  	  elif [[ $RESP = [SsNn] ]]; then
   	     break
 	  fi
	done

# Se a reposta for sim, então continuar   
   if [[ $RESP = [Ss] ]]; then
# Desmonta e formata para FAT32
    echo "Desmontando para formatar"
udisksctl unmount -b "$DEVUSB" &> /dev/null
    echo "Formatando USB para FAT32"
    $SU mkfs.vfat -n WINDOWS11 "$DEVUSB" &> /dev/null
# Copia arquivos para o pen drive
# Montando unidade
    echo "Montando para copiar para a unidade"
    udisksctl mount -b "$DEVUSB" &> /dev/null
    MEDIA=`df | grep "$DEVUSB"| awk '{print $6}'`
# Copiando arquivos para o USB
    echo "Copiando para $MEDIA"
    rsync -rtpl --info=progress2 --exclude ‘sources/install.wim’ /mnt/ISO/  "$MEDIA"
# Dividindo install.wim para o USB
    echo "Dividindo install.wim  $MEDIA"
    cd  "$MEDIA"/sources/
    wimlib-imagex split /mnt/ISO/sources/install.wim install.swm 3800 --check
# Desmontar imagem iso
    echo "Desmontando imagem do Windows 11"
    $SU umount /mnt/ISO
    $SU rm -r /mnt/ISO
echo "Pronto."
# Se a reposta for não, desmontar e finalizar
  elif [[ $RESP = [Nn] ]]; then
    echo "Desmontando imagem do Windows 11 no /mnt"
    $SU umount /mnt/ISO
    $SU rm -r /mnt/ISO
    echo "Pronto."
  fi
# Finalizar tempo infinito do sudo
  kill "$infiloop"
exit 0

@thespation

Tem como liberar a edição da primeira mensagem?

2 curtidas

Já deve conseguir editar.

Interessante ver o trabalho que é fazer algo que algumas ferramentas entregam com alguns clicks.

ok.

Valeu!

até atualizei o script, pois estava funcionando como se fosse Windows10

1 curtida