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
oISO9660
particiones de un disco o unidad flash porque, incluso si tiene controladores para estos sistemas de archivos, al disco resultante que creó le faltará unMBR
oGPT
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 hayMBR
oGPT
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
oGPT
de acuerdo con lo que el usuario seleccionó, y cree al menos una partición, que normalmente usaráFAT32
oNTFS
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 elMBR
que ubica el cargador de arranque secundario, en elMBR
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 el0x55
0xAA
el marcador de arranque se agrega al final delMBR
para que el BIOS vea el disco como de arranque. Luego también copia el contenido de la ISO en unFAT32
oNTFS
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 unFAT32
partición, ya que arranca desde unFAT32
La partición es un requisito obligatorio de UEFI (pero eso no significa que UEFI no pueda arrancar desdeNTFS
oexFAT
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 deISO9660
), 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 eldd
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 usardd
¡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 usandodd
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 recientementeexFAT
) y extraiga los archivos ISO en eso. Ahora, si usaNTFS
oexFAT
, 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
oFAT32
--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