Utilice una máquina Linux para instalar Windows 10 o Windows 11 en una tarjeta SD Raspberry Pi.
En 2020, esto era absolutamente imposible.
En 2021, esto requirió seguir un tutorial complicado.
Ahora, usar el nuevo WoR-flasher es pan comido .
La forma más rápida de ejecutar WoR-flasher en un RPi es mediante la tienda de aplicaciones Pi-Apps para Raspberry Pi:
La instalación de WoR-flasher desde Pi-Apps tiene varias ventajas: crea un botón conveniente en el menú Inicio, la desinstalación requiere un clic y las actualizaciones se manejan sin problemas.
git clone https://github.com/Botspot/wor-flasher
Esto descargará los scripts a un nuevo directorio llamado wor-flasher
.
Dependencias: No es necesario instalar paquetes manualmente. Al ejecutar el script se instalarán automáticamente estos: 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.
El script install-wor.sh
está diseñado para usarse dentro de otros scripts bash más grandes. Para automatización y personalización, install-wor.sh
detectará y obedecerá ciertas variables de entorno:
DL_DIR
: establece esta variable para cambiar la ubicación de descarga predeterminada. De forma predeterminada, es ~/wor-flasher-files
.BID
: establezca esta variable para elegir una ID de versión exacta de Windows. Valor de ejemplo: " 22631.2861
". Cuando se establece esta variable, install-wor.sh
no preguntará al usuario qué versión de Windows usar.WIN_LANG
: configure esta variable para elegir un idioma para la imagen de Windows. Valor de ejemplo: " en-us
". Cuando se establece esta variable, install-wor.sh
no preguntará al usuario qué idioma usar.RPI_MODEL
: establece esta variable para elegir el modelo Raspberry Pi. Valores permitidos: " 3
", " 4
". Cuando se establece esta variable, install-wor.sh
no preguntará al usuario qué modelo de Raspberry Pi usar.DEVICE
: Establezca esta variable en el dispositivo que desea flashear. Valor de ejemplo: " /dev/sda
". Cuando se establece esta variable, install-wor.sh
no preguntará al usuario qué dispositivo usar.CAN_INSTALL_ON_SAME_DRIVE
: establezca esta variable en " 1
" si el dispositivo tiene más de 25 GB y desea instalar Windows en sí mismo. De lo contrario, configúrelo en " 0
".CONFIG_TXT
: establezca esta variable para personalizar el /boot/config.txt
de la unidad resultante. Esto se usa comúnmente para overclocking o para cambiar la configuración de HDMI. Este es el valor predeterminado.RUN_MODE
: configúrelo en " gui
" si desea que install-wor.sh
muestre mensajes de error gráficos.DRY_RUN
: establezca esta variable en " 1
" para continuar con la configuración normalmente, pero para salir después de descargar todo. Esto evita que el dispositivo se flashee.Uso de ejemplo:
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
El script install-wor.sh
está diseñado para usarse dentro de otros scripts bash más grandes. Para mejorar la integración, install-wor.sh
está equipado con una variedad de funciones útiles que pueden utilizar scripts de interfaz como install-wor-gui.sh
.
Para obtener el script para que las funciones estén disponibles:
source ~/wor-flasher/install-wor.sh source
Pregunta: ¿por qué ese comando dice " source
" dos veces? Respuesta: La primera " source
" es un comando y la segunda " source
" es un indicador de línea de comando que se pasa al script para informarle que lo está obteniendo. Una vez que se obtiene el script, estos nuevos comandos (también conocidos como funciones) estarán disponibles:
error
: una función simple que Botspot usa en scripts bash para advertir al usuario que algo falló y salir del script con un código de error. (1) command-that-downloads-windows || error "Windows failed to download! Check your internet connection and try again."
echo_white
: una interfaz simple para el comando echo
que muestra el mensaje deseado como texto blanco en lugar del habitual gris claro. echo_white "Now, downloading windows... please wait"
package_available
: determina si es posible instalar un paquete desde los repositorios aptos. Entrada: un nombre de un paquete. Uso: if package_available yad ;then
echo "yad can be installed"
fi
install_packages
: busca e instala una lista citada de paquetes. install_packages 'yad aria2 cabextract wimtools chntpw genisoimage exfat-fuse exfat-utils wget'
download_from_gdrive
: descarga un archivo grande compartido públicamente desde Google Drive. Aquí está el tutorial del que lo adapté. download_from_gdrive 1WHyHFYjM4WPAAGH2PICGEhT4R5TlxlJC WoR-PE_Package.zip
get_partition
: una forma limpia y confiable de determinar el dispositivo de bloque de una partición. 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
: determina un nombre legible por humanos para la unidad de almacenamiento determinada. get_name /dev/sda
get_size_raw
: determina el tamaño de una unidad en bytes. get_size_raw /dev/sda
list_devs
: enumera las unidades de almacenamiento disponibles en un formato coloreado y legible por humanos. list_devs
get_bid
: obtenga la última ID de compilación de Windows para Windows 10 o Windows 1110
" o " 11
" Uso: get_bid 11
get_space_free
: obtiene el espacio disponible en disco de una carpeta get_space_free ~/wor-flasher-files
get_os_name
: obtiene el nombre legible por humanos del sistema operativo. get_os_name 22631.2861
Este código actualizará Windows 11 de forma no interactiva en /dev/sda
y agregará configuraciones de overclock. Puede copiar y pegar el código en una terminal o guardarlo como un 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