GNU/Linux >> Tutoriales Linux >  >> Linux

Debian:creación de una unidad USB de instalación de arranque de Windows 10 usando terminal (dd)

Quiero entender lo que está pasando

Desarrollador de Rufus aquí.

De qué manera demasiadas personas no entienden, porque las ISO de Linux están aplicando este método, pero esto es esencialmente un HACK MAYOR LLAMADO 'ISOHÍBRIDO' , es que, en la mayoría de los casos, no puede simplemente tomar una imagen ISO y copiarla byte por byte en una unidad USB y esperar que también arranque.

Esto se debe a que el formato ISO y los sistemas de archivos subyacentes que utiliza (ISO9660 o UDF ) están diseñados para arranque óptico, que es una bestia completamente diferente del arranque normal de HDD o USB. Por un lado, los medios ópticos y, por lo tanto, las imágenes ISO (regulares), no tienen una tabla de particiones, que (generalmente) es esencial para el arranque de HDD o USB, y tampoco (generalmente) tienen un registro de arranque maestro, también conocido como MBR, que es esencial para el arranque del BIOS.

Esto significa que, si haces una copia 1:1 de un regular ISO, como Windows one, en un disco e intente arrancar, esto es lo que sucederá:

  • Un sistema BIOS o un sistema UEFI en modo Legacy/CSM no verá ningún MBR y, especialmente, no verá el 0x55 0xAA secuencia en los últimos 2 bytes del MBR que indica que un disco es arrancable por BIOS. Por lo tanto, no podrá iniciar ese disco en modo BIOS.
  • Un sistema UEFI (generalmente) no montará UDF o ISO9660 particiones de un disco o unidad flash porque, incluso si tiene controladores para estos sistemas de archivos, al disco resultante que creó le faltará un MBR o GPT tabla de particiones Al iniciar un disco normal, UEFI está diseñado para buscar primero una partición y luego buscar un gestor de arranque (por ejemplo, /efi/boot/bootx64.efi ) en esa partición. Entonces, si no hay MBR o GPT tabla de particiones en los medios, que será el caso de un ISO normal , entonces no importa si la ISO contiene un archivo de cargador de arranque, porque el firmware UEFI no podrá montar la partición en la que reside.

Entonces, lo que hacen las utilidades como Rufus al crear un medio de disco de arranque desde un ISO de Windows, que es una imagen de medio óptico completamente estándar, es:

  • Cree una tabla de particiones, ya sea MBR o GPT de acuerdo con lo que el usuario seleccionó, y cree al menos una partición, que normalmente usará FAT32 o NTFS como el sistema de archivos (tenga en cuenta que utiliza sistemas de archivos completamente diferentes a los que utiliza una ISO).
  • Si MBR se utiliza, un poco de código en el MBR que ubica el cargador de arranque secundario, en el MBR relevante partición, que está diseñada para iniciar la ejecución del kernel de Windows, en modo disco, desde esa partición. Ah, y también asegura que el 0x55 0xAA el marcador de arranque se agrega al final del MBR para que el BIOS vea el disco como de arranque. Luego también copia el contenido de la ISO en un FAT32 o NTFS partición.
  • Si GPT se utiliza, Rufus verifica que realmente existe un archivo de cargador de arranque UEFI, como /efi/boot/bootx64.efi (bueno, en realidad hace eso antes que usted, le permite seleccionar GPT, porque no tiene mucho sentido intentar crear una unidad de arranque GPT si no hay un cargador de arranque UEFI) y luego lo copia, junto con el resto de los archivos ISO, típicamente en un FAT32 partición, ya que arranca desde un FAT32 La partición es un requisito obligatorio de UEFI (pero eso no significa que UEFI no pueda arrancar desde NTFS o exFAT si tiene los controladores UEFI relevantes, lo que puede ser útil si tiene un ISO de Windows con un archivo de más de 4 GB, ya que FAT32 no puede admitir dichos archivos).

Ahora, lo anterior solo funciona cuando los cargadores de arranque secundarios (es decir, los que provienen de Windows y que Rufus no modifica) están diseñados para admitir ambos arranque óptico y regular, lo que normalmente significa que necesitan manejar tanto UDF o ISO9660 y FAT32 o NTFS sistemas de archivos, así como las otras diferencias que se presentan cuando se arranca desde disco vs desde óptico. Pero Microsoft diseñó su cargador de arranque precisamente para eso, que es lo más inteligente que se puede hacer. , porque, si su sistema de destino es UEFI, se refiere a usted (por lo general, siempre que el problema de tamaño de archivo máximo de 4 GB de FAT32 no asoma su fea cabeza) no necesita una utilidad para convertir un ISO en un USB de arranque, pero puede formatear ese USB a FAT32 y copiar los archivos ISO en él (copia de archivo, no copia de bytes) y tiene un dispositivo de arranque.

Y ahora que hemos pasado por todo lo anterior, puedo entrar en un despotricar y explique por qué creo que los mantenedores de la distribución de Linux, que generalmente son más inteligentes que eso, en realidad están perjudicando a sus usuarios, incluso cuando intentan ayudarlos:

Casi todas las distribuciones recientes de Linux usan un MAJOR HACK llamado "IsoHybrid", donde alguien logró encontrar una manera de hacer un ISO9660 imagen óptica enmascarada como una imagen de disco normal, con una tabla de particiones, un MBR y todo... En otras palabras, la mayoría de las ISO de Linux que encuentras en estos días son abusivas el sistema de archivos ISO9660 para que se vea como algo para lo que nunca fue diseñado:un disco dual e imagen óptica.

Obviamente, el objetivo es crear una ISO que pueda también ser usado con el dd comando, incluso como un ISO nunca debería poder funcionar de esa manera. Y estoy de acuerdo en que, en teoría, esto suena increíble, porque poder usar una sola imagen para usos completamente diferentes debería ser excelente para los usuarios, pero en la práctica, esto genera problemas que a menudo se pasan por alto:

  • Muchos mantenedores de distribuciones de Linux no quieren molestarse en usar un sistema de archivos secundario que Windows pueda montar (por ejemplo, usarán ext como sistema de archivos "secundario" encima de ISO9660 ), lo que significa que mucho de los usuarios de Windows, que están creando una unidad de arranque para usar Linux por primera vez, están muy confundidos acerca de por qué ya no pueden acceder al contenido de su unidad flash. Es aún peor si el "IsoHybrid" también incluye una partición del sistema EFI (ESP) porque estos usuarios tienen la impresión de que su unidad se ha reducido por completo en tamaño. Si va a reddit o a otro lugar, encontrará muchas publicaciones de usuarios que están completamente confundidos sobre lo que sucedió con sus dispositivos USB, lo que no da una buena primera impresión de Linux...
  • Muchos mantenedores de distribuciones de Linux se enfocan tanto en hacer que ISOHybrid funcione que descartan por completo la opción de crear un medio de arranque UEFI simplemente copiando el contenido en un FAT32 partición formateada, que, en realidad, debería siempre será el método preferido para crear unidades de arranque UEFI (porque generalmente es mucho menos riesgoso formatear una partición y luego copiar archivos que usar el dd dominio). Debido a esto, hemos visto varios problemas que hacen que la experiencia del usuario sea inferior a la media con Manjaro, Ubuntu... De hecho, este es mi principal punto de discordia con "ISOHybrid":no debería servir como excusa para deshacerse de los medios establecidos de creando medios de arranque!
  • GPT e "ISOHybrid" pueden ser problemáticos debido a que la tabla GPT secundaria se verá dañada al usar dd ... lo que en realidad conduce a un BSOD en Windows 7 (pero eso es realmente un error de Windows en lugar de un problema ISOHybrid). Aún así, no es la mejor experiencia para la gente de Windows que crea unidades de arranque...
  • Y, por último, debido a que los "ISOhíbridos" se presentan como si fueran los medios más naturales del mundo (que ciertamente no lo son), a las personas como usted se les hace creer que cada imagen ISO se puede aplicar usando dd , cuando es la excepción en lugar de la regla. Esto es muy desafortunado, porque crea TONELADAS de confusión para los usuarios, ya que algunos usuarios de Linux les dicen a las personas que desean crear dispositivos de arranque de Windows que solo deberían poder usar dd ¡cuando eso ciertamente nunca funcionará! Además, si elige cualquier ISO de Linux de hace 10 años, estoy bastante seguro de que encontrará que casi ninguno de ellos se puede usar para crear un medio de arranque usando dd porque esto de "IsoHybrid" es en realidad un desarrollo reciente.

Hasta donde yo sé, Microsoft no tiene planes de cambiar al "truco" que es ISOHybrid para sus ISO de Windows, lo que significa que es poco probable que puedas usar dd para crear un dispositivo USB de arranque a partir de él y, por lo tanto, si desea crear un dispositivo de arranque de Windows desde un ISO, puede:

  • (UEFI) Necesita formatear una unidad con un sistema de archivos desde el que Windows pueda arrancar (NTFS , FAT32 y más recientemente exFAT ) y extraiga los archivos ISO en eso. Ahora, si usa NTFS o exFAT , es posible que también tengas que hacer un poco de trabajo extra...
  • (BIOS/Legacy) Necesita formatear una unidad con un sistema de archivos desde el que Windows pueda arrancar (NTFS o FAT32 -- exFAT no funcionará porque Microsoft nunca publicó cargadores de arranque BIOS para él), y luego cree la cadena de cargador de arranque relevante, desde el código de arranque MBR hasta los registros de arranque de volumen.

En realidad, no es tan complicado de lograr, pero requiere un poco más de trabajo que una copia 1:1 de un archivo ISO.

Espero que eso responda a tu pregunta.


dd no es la herramienta adecuada para crear un USB de arranque de Windows. La manera fácil es usar woeusb .

Instalar:

sudo apt-get install devscripts equivs gdebi-core
cd WoeUSB
./setup-development-environment.bash
mk-build-deps
sudo gdebi woeusb-build-deps_3.3.1_all.deb
dpkg-buildpackage -uc -b
sudo gdebi ../woeusb_3.3.1_amd64.deb

Ahora, la versión del paquete es 3.3.1 , en caso de actualización del paquete, el comando ./setup-development-environment.bash imprimirá la versión actual, debe reemplazarla en los comandos anteriores.

Uso:

Puede usar la GUI, ejecutar woeusbgui de la terminal O puede usar la CLI:

Desmonte el dispositivo USB (importante). Luego ejecuta:

sudo woeusb -v --device /path/to/windows.iso /dev/sdc

Linux
  1. Cómo crear una unidad USB de arranque usando el comando dd

  2. Instalar Linux Mint con Windows 8 | Arranque dual Windows 8 y Linux Mint 12

  3. Instalar Java en Ubuntu 20.10 usando Terminal

  4. Hacer una memoria USB de arranque de PC usando un archivo .iso en MAC

  5. ¿Cómo crear una imagen de arranque de Windows 10 en Debian?

Cómo instalar fácilmente Debian Linux

Cómo instalar Windows 11 en Ubuntu 20.04 usando VirtualBox

Cómo instalar Skype en Almalinux 8 usando terminal

Instalar Debian 11 Bullseye en VirtualBox

Instale Teamviewer en Debian 11 o 10 usando la terminal de comandos

Instalar DEB en sistemas Debian usando GUI o Terminal – 2 formas