Use uma máquina Linux para instalar o Windows 10 ou Windows 11 em um cartão SD Raspberry Pi.
Em 2020, isso era totalmente impossível.
Em 2021, isso exigia seguir um tutorial complicado.
Agora, usando o novo pisca-pisca WoR, é moleza .
A maneira mais rápida de executar o WoR-flasher em um RPi é usando a loja de aplicativos Pi-Apps para Raspberry Pi:
A instalação do WoR-flasher do Pi-Apps tem várias vantagens: ele cria um botão conveniente no menu Iniciar, a desinstalação leva um clique e as atualizações são tratadas perfeitamente.
git clone https://github.com/Botspot/wor-flasher
Isso fará o download dos scripts para um novo diretório chamado wor-flasher
.
Dependências: Não há necessidade de instalar pacotes manualmente. A execução do script instalará automaticamente estes: yad
aria2
cabextract
wimtools
chntpw
genisoimage
exfat-fuse
exfat-utils
wget
~/wor-flasher/install-wor-gui.sh
install-wor.sh
: ~/wor-flasher/install-wor.sh
$ ~/wor-flasher/install-wor.sh
Choose Windows version:
1) Windows 11
2) Windows 10
3) Custom...
Enter 1, 2 or 3: 1
Choose language: en-us
Choose Raspberry Pi model to deploy Windows on:
1) Raspberry Pi 4 / 400
2) Raspberry Pi 2 rev 1.2 / 3 / CM3
Enter 1 or 2: 1
Available devices:
/dev/sdb - 59.5GB - USB Storage
Choose a device to flash the Windows setup files to: /dev/sdb
1) Create an installation drive (minimum 25 GB) capable of installing Windows to itself
2) Create a recovery drive (minimum 7 GB) to install Windows on other >16 GB drives
Choose the installation mode (1 or 2): 1
Input configuration:
DL_DIR: /home/pi/wor-flasher-files
RUN_MODE: cli
RPI_MODEL: 4
DEVICE: /dev/sdb
CAN_INSTALL_ON_SAME_DRIVE: 1
UUID: 6f7de912-4143-431b-b605-924c22ab9b1f
WIN_LANG: en-us
Formatting /dev/sdb
Generating partitions
Generating filesystems
# script output continues... It generates a Windows image legally, downloads all necessary drivers, the BIOS, the bootloader, and the modified kernel. Once done it ejects the drive.
O script install-wor.sh
foi projetado para ser usado em outros scripts bash maiores. Para automação e personalização, install-wor.sh
detectará e obedecerá a certas variáveis de ambiente:
DL_DIR
: Defina esta variável para alterar o local de download padrão. Por padrão, é ~/wor-flasher-files
.BID
: Defina esta variável para escolher um ID exato da versão do Windows. Valor de exemplo: " 22631.2861
". Quando esta variável é definida, install-wor.sh
não perguntará ao usuário qual versão do Windows usar.WIN_LANG
: Defina esta variável para escolher um idioma para a imagem do Windows. Valor de exemplo: " en-us
". Quando esta variável é definida, install-wor.sh
não perguntará ao usuário qual idioma usar.RPI_MODEL
: Defina esta variável para escolher o modelo Raspberry Pi. Valores permitidos: " 3
", " 4
". Quando esta variável for definida, install-wor.sh
não perguntará ao usuário qual modelo Raspberry Pi usar.DEVICE
: Defina esta variável para o dispositivo que você deseja atualizar. Valor de exemplo: " /dev/sda
". Quando esta variável é definida, install-wor.sh
não perguntará ao usuário qual dispositivo usar.CAN_INSTALL_ON_SAME_DRIVE
: Defina esta variável como " 1
" se o dispositivo for maior que 25 GB e você desejar instalar o Windows nele mesmo. Caso contrário, defina-o como " 0
".CONFIG_TXT
: Defina esta variável para personalizar o /boot/config.txt
da unidade resultante. Isso é comumente usado para overclock ou para alterar as configurações de HDMI. Este é o valor padrão.RUN_MODE
: Defina como " gui
" se desejar install-wor.sh
exiba mensagens de erro gráficas.DRY_RUN
: Defina esta variável como " 1
" para prosseguir com a configuração normalmente, mas para sair após baixar tudo. Isso evita que o dispositivo seja atualizado.Exemplo de uso:
DL_DIR=/media/pi/my-big-flash-drive DEVICE=/dev/sdg DRY_RUN=1 UUID=db8ec987-d136-4421-afb8-2ef109396b00 RPI_MODEL=4 WIN_LANG=en-us ~/wor-flasher/install-wor-gui.sh
O script install-wor.sh
foi projetado para ser usado em outros scripts bash maiores. Para melhor integração, install-wor.sh
está equipado com uma variedade de funções úteis que scripts de front-end como install-wor-gui.sh
podem usar.
Para fornecer o script para que as funções estejam disponíveis:
source ~/wor-flasher/install-wor.sh source
Pergunta: por que esse comando diz " source
" duas vezes? Resposta: O primeiro " source
" é um comando, e o segundo " source
" é um sinalizador de linha de comando que é passado ao script para que ele saiba que você o está fornecendo. Assim que o script for originado, estes novos comandos (também conhecidos como funções) ficarão disponíveis:
error
- uma função simples que o Botspot usa em scripts bash para avisar o usuário que algo falhou e para sair do script com um código de falha. (1) command-that-downloads-windows || error "Windows failed to download! Check your internet connection and try again."
echo_white
- uma interface simples para o comando echo
que exibe a mensagem desejada como texto branco em vez do cinza claro usual. echo_white "Now, downloading windows... please wait"
package_available
- Determina se é possível instalar um pacote a partir dos repositórios apt. Entrada: um nome de um pacote Uso: if package_available yad ;then
echo "yad can be installed"
fi
install_packages
- Verifica e instala uma lista de pacotes citada. install_packages 'yad aria2 cabextract wimtools chntpw genisoimage exfat-fuse exfat-utils wget'
download_from_gdrive
- Baixa um arquivo grande compartilhado publicamente do Google Drive. Aqui está o tutorial do qual adaptei. download_from_gdrive 1WHyHFYjM4WPAAGH2PICGEhT4R5TlxlJC WoR-PE_Package.zip
get_partition
– Uma maneira limpa e confiável de determinar o dispositivo de bloco de uma partição. get_partition /dev/sda 2
#Assuming partition 2 exists, the above command returns "/dev/sda2"
get_partition /dev/mmcblk0 2
#Assuming partition 2 exists, the above command returns "/dev/mmcblk0p2"
get_partition /dev/mmcblk0 all
#Returns every partition within the drive, each one on a line
get_name
– Determine um nome legível para a unidade de armazenamento fornecida. get_name /dev/sda
get_size_raw
– Determina o tamanho de uma unidade em bytes. get_size_raw /dev/sda
list_devs
- lista as unidades de armazenamento disponíveis em um formato colorido e legível. list_devs
get_bid
– Obtenha o ID de compilação mais recente do Windows para Windows 10 ou Windows 1110
" ou " 11
" Uso: get_bid 11
get_space_free
– Obtenha o espaço disponível em disco de uma pasta get_space_free ~/wor-flasher-files
get_os_name
- Obtenha o nome legível do sistema operacional. get_os_name 22631.2861
Este código irá atualizar o Windows 11 de forma não interativa para /dev/sda
e adicionar configurações de overclock. Você pode copiar e colar o código em um terminal ou salvá-lo como um script de shell.
# make all variables we set to be visible to the script (only necessary if you run this in a terminal)
set -a
# First, source the script so its functions are available
source ~ /wor-flasher/install-wor.sh source
# Determine the latest Windows 11 update ID using a function
BID= " $( get_bid 11 ) "
# set destination RPi model
RPI_MODEL=4
# choose language
WIN_LANG=en-us
# set the device to flash
DEVICE=/dev/sda
# set a custom config.txt
CONFIG_TXT= " over_voltage=6
arm_freq=2147
gpu_freq=750
# don't change anything below this point #
arm_64bit=1
enable_uart=1
uart_2ndstage=1
enable_gic=1
armstub=RPI_EFI.fd
disable_commandline_tags=1
disable_overscan=1
device_tree_address=0x1f0000
device_tree_end=0x200000
dtoverlay=miniuart-bt "
# indicate that drive is large enough to install Windows to itself
CAN_INSTALL_ON_SAME_DRIVE=1
~ /wor-flasher/install-wor.sh