Haga un USB de arranque para instalar Windows XP desde Linux


19

Tengo un Dell Inspiron Mini 9 con solo Ubuntu instalado. También quiero instalar Windows XP, pero no tengo ni puedo obtener una unidad de CD externa, así que necesito hacer una instalación de Windows desde el USB.

Todos los tutoriales que encontré usan Windows para hacer que el USB sea de arranque. ¿Cómo puedo hacer lo mismo desde Linux?


¿Tiene acceso a una computadora con una unidad de CD?
Nathaniel el

Tengo otra máquina Linux con una unidad de CD.

Respuestas:


13

Puede usar VirtualBox y dar acceso a la máquina virtual a la unidad de disco duro. Luego instale Windows XP en la máquina virtual y cree una nueva partición en el disco duro real. Después de la instalación, puede reiniciar la computadora e iniciar Windows normalmente.

Para dar acceso a VirtualBox a todo el disco (cambie la xletra a la correspondiente, por ejemplo a):

VBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdx

Luego, elija la unidad de disco duro existente y seleccione el archivo hdd.vmdken su carpeta de inicio.

Si los comandos se quejan de la falta de permisos, agréguese al grupo diskcon el siguiente comando, luego inicie y cierre sesión e intente nuevamente.

sudo adduser `whoami` disk
  1. Si ya tiene Linux instalado en la computadora de destino , puede hacerlo directamente en esa computadora, pero antes de reiniciar en Windows, ejecute sudo update-gruby sudo grub-install /dev/sdx(cambie la xletra apropiada, por ejemplo a) para asegurarse de que todavía podrá arrancar Linux Para evitar problemas con hardware diferente entre su computadora y lo que VirtualBox emuló en la VM (que puede resultar en un BSOD ), también puede crear un segundo perfil de hardware en Windows antes de abandonar la VM. Cuando inicie directamente en Windows con GRUB , seleccione este segundo perfil de hardware. Eventualmente puede hacer que este nuevo perfil de hardware sea el predeterminado.

  2. Si la computadora de destino está completamente limpia , cree una unidad USB de Ubuntu de arranque en la que también coloque una imagen de su CD de instalación de Windows (adquirido legalmente). Luego, inicie Ubuntu en la máquina de destino y siga las instrucciones anteriores.


1
¡Definitivamente es una solución brillante! Parece estar funcionando hasta ahora. :)
RCE

1
Hola, estoy tratando de hacer esto en Ubuntu 12.04 pero tengo problemas. Cuando escribo VBoxManage internalcommands createrawvmdk -filename ~/hdd.vmdk -rawdisk /dev/sdxsiendo x mi disco duro, recibo este mensaje. VBoxManage: error: Cannot open the raw disk '/dev/sda1': VERR_ACCESS_DENIED VBoxManage: error: The raw disk vmdk file was not createdLuego lo hice como root pero, aunque obviamente funcionó, solo puedo abrir el hdd.vmdk como root y eso me incomoda. Sin embargo, la máquina virtual no parece funcionar. Aparece una pantalla negra que abre virtualbox como root.
fénix

1
Como se describe en la respuesta "Si los comandos se quejan de la falta de permisos, agréguese al disco del grupo con el siguiente comando, luego inicie sesión y vuelva a intentarlo". sudo adduser `whoami` disk
Linus Unnebäck

1
Hice lo anterior y la máquina virtual instaló y ejecuta winxp bien, pero cuando apago la computadora y reinicio, aparece el logotipo de Windows, luego se congela inmediatamente, antes de que muestre el BSOD rápidamente y se reinicie.
SaultDon

2
Desafortunadamente, este método realmente no funciona a menos que tenga suerte. Puede terminar con una instalación de Windows que funciona bien en la máquina virtual, pero no se inicia en el hardware.
jpalecek

8

Descargue RUFUSLDR desde aquí: https://dl.dropboxusercontent.com/u/20170669/RUFUSLDR Descargue ms-sys aquí: http://prdownloads.sourceforge.net/ms-sys/ms-sys-2.3.0.tar. gz? download Arrastre la carpeta ms-sys-2.3.0 a un lugar que admita el indicador de ejecución (como su carpeta de inicio de Linux, muy probablemente). cd una terminal allí, escriba "make", luego "sudo make install". Muy fácil

Simpatizo contigo. He intentado tutoriales sobre cómo crear, desde Windows, una unidad USB de arranque en el instalador de WinXP. El disco parte uno, el WinToFlash uno y la utilidad HP USB Format uno me fallaron.

Rufus realmente funciona. Pero es una utilidad solo para Windows. Puede instalar VirtualBox, instalar Windows dentro de VirtualBox, instalar Rufus en la VM, compartir la unidad USB con la VM y hacer que Rufus haga que la unidad USB sea de arranque en el instalador de Windows XP.

Rufus actualmente no es compatible con la creación de un instalador USB WinXP de arranque utilizando archivos de instalación sueltos. Debe ver la iso. Entonces, tiene que VirtualBox monte la iso para instalar XP en la VM, pero eso se muestra como archivos sueltos (no verá la iso). Entonces, para que Rufus vea el archivo iso en sí, comparta el directorio en su máquina host donde se almacena el iso en la VM. Luego, señale a Rufus hacia dónde está el archivo iso en la unidad de red de la VM (Z: \ o lo que sea).

Por cierto, también puede copiar una imagen de disquete FreeDOS en la unidad, copiar también los archivos desde la iso y usar memdisk para iniciar en la imagen del disquete. Desde FreeDOS, ejecute i386 \ winnt.exe. La desventaja es que (a menos que haya encontrado un controlador NTFS de DOS?) Solo podrá instalar Windows en un volumen FAT32, no uno NTFS.

Es posible que el proceso de Rufus sea muy lento debido a que se encuentra en una máquina virtual (no entiendo por qué, tal vez estaba tonto sobre cómo configuré la configuración). Para mí personalmente, en mi computadora portátil, tardé una hora, 5 minutos y 40 segundos, creo que fue. Te diré cómo hacerlo sin Rufus en Linux. Imitaremos a Rufus, pero primero, en caso de que decida utilizar Rufus desde la VM, tenga en cuenta que Linux no podrá ver la partición después de que Rufus haya terminado con ella:

Rufus no solo formatea la partición, sino que rehace el MBR (incluida la tabla de partición). Así que primero guarde cualquier cosa de la memoria USB.

Nota: Rufus establece un truco MBR que cuando es ejecutado por el BIOS intercambia las dos primeras unidades del BIOS (0x80 se convierte en 0x81 y viceversa). Además, coloca una identificación de BIOS en este truco MBR para que la unidad comience como 0x81 (la segunda unidad). Por qué te digo esto: el truco MBR hace que Linux (y Grub2 v2.00) no pueda leer la tabla de particiones. Windows estará bien con él (déle una letra de unidad y todo) y la unidad será arrancable. Pero Linux no verá la partición y, por lo tanto, no podrá montarla. No hay problema. Guarde el MBR en el archivo:

sudo dd if=/dev/sdX of=~/Desktop/rufus_trick_mbr count=1 bs=512

Ahora use fdisk para darle un nuevo MBR. Ni siquiera estás tocando la partición en sí, solo le estás dando un nuevo MBR. En realidad, nada se hace en fdisk hasta que presione "w".

sudo fdisk /dev/sdX

p //Print partition table. fdisk, unlike the kernel, CAN make sense of the partition table as-is.

You'll probably see the partition start on sector 2048 and go to the end.

o  //Tells fdisk to make a new partition table

n //create new partition. By defualt, fdisk should also make the partition start at sector 2048 and go to the end. Make sure the partition starts where it used to and ends where it used to.

select primary

t //change partition type id

7 //for ntfs

p //Make sure everything is right. And no, don't worry about the boot flag.

w //when you're sure. Remember, we saved the old mbr and can undo any mess-ups made here with dd.

También podemos hacer nuevos líos con dd:

Hammond: "No te preocupes, no volveré a cometer los mismos errores". MALCOLM: "No, no, estás cometiendo todos los nuevos".

-Jurassic Park II, El mundo perdido

Desenchufe y vuelva a conectar la memoria USB. Si nada más, / dev / sdXY debería existir al menos ahora (antes de que solo existiera / dev / sdX, no "Y"). Para montarlo, se debe instalar ntfs-3g. Si está instalado, vea si ya estaba montado (debería aparecer en el escritorio o en el panel izquierdo del explorador de archivos si es así). Si no, móntelo tú mismo. Puede intentar montarlo primero con el explorador de archivos. Aquí se explica cómo montarlo manualmente:

sudo mount -t ntfs-3g /dev/sdXY [mount point]

Haz lo que quieras hacer con él en Linux.

Si lo desea, vuelva a poner rufus_trick_mbr:

sudo dd if=~/Desktop/rufus_trick_mbr of=/dev/sdX bs=512 count=1 //No "Y"! Just /dev/sdX!

Pero no tienes que volver a poner el truco MBR. Puede utilizar el comando ntldr de Grub2 para cargar / BOOTMGR en su lugar. (Probablemente tendrá que hacer "insmod ntldr" primero para insertar el módulo ntldr).

Esto es lo que pasa:

Rufus establece el truco MBR con una entrada de tabla de partición, formatea esa partición como NTFS, coloca cosas en el sector de arranque de esa partición que solo importan los gestores de arranque de estilo ntldr, copia archivos fuera de iso a la partición, copia NTDETECT.COM desde i386 y lo coloca en el nivel raíz, copia txtsetup.sif de la carpeta i386, lo coloca en el nivel raíz Y agrega una línea, que github, c0m / pbatard / rufus / wiki / Targets-Supported no menciona, por lo que gracias "openssl md5" y cmp por señalarme esto.

redoble de tambor : Y copia SETUPLDR.BIN de la carpeta i386 al nivel raíz, lo renombra como BOOTMGR, y parchea ese binario. Sí, ese es el truco. SETUPLDR.BIN, cuando se inicia desde el CD, detecta que se ha iniciado desde el CD y busca cosas en la carpeta i386. Si arranca desde un disco duro, detecta que arrancó desde un disco duro, busca una carpeta minint en su lugar y, si se encuentra, busca una carpeta $ WIN_NT $ ~ BT para comenzar la segunda fase de instalación (después del reinicio y cuando inicias en el disco duro de destino). Así que ni siquiera puede cambiar el nombre de "i386" a "minint". Debe modificar SETUPLDR.BIN para buscar en la carpeta i386 incluso cuando se inicia desde un disco duro (como una unidad USB).

Creo que es un nombre inapropiado para Rufus llamar al binario modificado "BOOTMGR". Eso es lo que usan Vista y 7 (¿y 8?), No XP. BOOTMGR ni siquiera busca un archivo boot.ini como NTLDR (del cual SETUPLDR es una versión modificada). Así que lo renombré como "RUFUSLDR" y lo puse para descargar. Además, desearía poder distinguirlo de cualquier BOOTMGR real que pueda tener.

Rufus le obliga a formatear la unidad como NTFS si aplica una iso de instalador de Windows. Creo que esto se debe a la vista previa del desarrollador x64 de Windows 8 que contiene un archivo> 4 GB, que FAT32 no puede admitir. Pero eso no se aplica aquí. No tenemos archivos cerca de 4GB. Puedes usar FAT32 y estar bien.

Imitemos Rufus de Linux (o casi cualquier unixoide, supongo):

  1. Asegúrese de que la unidad tenga un esquema MBR. fdisk lanzará una advertencia si es GPT y también le dará la opción de hacerlo esquemático MBR (opción "o"). De manera menos destructiva, gdisk le permitirá convertir su unidad de disco con GPT en una unidad de MBR si tiene 4 o menos particiones. Gdisk también le permitirá convertir su unidad en un disco híbrido MBR / GPT en el que puede elegir hasta 3 particiones para que sean visibles para las cosas que no conocen GPT (la cuarta ranura está ocupada para una partición protectora que cubre el resto). Incluso si solo usa fdisk, siempre que la nueva entrada de la tabla de partición todavía se inicie y se detenga en los mismos lugares, no perderá su partición; solo asegúrese de poner a cero el GPT secundario al final del disco.

  2. Asegúrese de que la partición esté formateada como FAT32 o NTFS. Recuerde, FAT32 es más compatible con plataformas cruzadas. Si ya está formateado como FAT32 o ntfs, no necesita formatearlo:

    sudo blkid / dev / sdXY [dirá aquí el sistema de archivos, junto con UUID, etiqueta, etc.]

Si no es FAT32 o NTFS, realice una de estas acciones:

sudo mkdosfs -F 32 -n [insert volume label (name) here] /dev/sdXY

sudo mkntfs -L [insert volume label here] /dev/sdXY

3 Aplique esas cosas mágicas del sector de arranque que DOS / Windows es tan quisquilloso sobre:

sudo ms-sys -w /dev/sdXY

* Acerca de esto: "-w" significa "escribir", solo escribir. En lugar de especificar qué escribir. Por lo tanto, "-w" es el modo automático de ms-sys: determina el mejor tipo de datos del sector de arranque para escribir para la situación. Me sorprendió encontrar que el auto estaba en lo cierto: para una partición FAT32, necesito FAT32 de ms-sys DOS sector de arranque no FAT32 de ms-sys NT sector de arranque, por lo que pensé que tendría que cargar un derivitive de _NT_LDR (NT Loader) (SETUPLDR. BIN es una versión modificada de NTLDR y RUFUSLDR una versión modificada de SETUPLDR.BIN).

4 Para una buena medida, escriba cosas de geometría en la partición también. Esto no cambia la geometría del disco, solo deja una nota sobre la geometría para cosas demasiado flojas para descubrir la geometría por sí mismas:

sudo ms-sys -p /dev/sdXY

* Nota: el paso 4 no se aplica a NTFS. * Otra nota: asegúrese de que su versión de kernel de Linux sea> 2.6. Kernel 2.6 tenía un error que informaba el número incorrecto de cabezas (una cuestión de geometría). Por lo tanto, la opción "-p" puede colocar la información incorrecta en el kernel 2.6. La opción "-H", que permite al usuario especificar manualmente el número de cabezas para grabar, es la solución. Pero en realidad, solo actualiza tu kernel. Si está ejecutando 2.6, está muuuy retrasado. Para contar la versión de su kernel, haga lo siguiente:

uname -r

5 Copie los archivos de la iso, carpeta, lo que sea. Muchas distribuciones montan isos al hacer doble clic en ellas, o al menos ofrecen la opción de abrir con un montador de archivos haciendo clic con el botón derecho> abrir con. Si ese no es el caso para usted, haga esto:

sudo mount -o loop (path to iso) (path to desired mount point)

6 Coloque el archivo SETUPLDR.BIN (RUFUSLDR) modificado en el nivel raíz.

7 Copie NTDETECT.COM desde i386 al nivel raíz.

8 Copie txtsetup.sif desde i386 al nivel raíz.

9 Abra la nueva copia de txtsetup.sif y Ctrl + F para "[SetupData]". Justo debajo de ese encabezado, ponga esta línea:

SetupSourceDevice = "\device\harddisk1\partition1"

10 Instale un cargador de arranque capaz de cargar cargadores de arranque de estilo NTLDR en la unidad, o en otra unidad que usará para arrancar esta unidad, o use un cargador de arranque existente. Si tiene Grub2 instalado en su disco duro para arrancar Ubuntu, puede presionar "c" una vez que vea el menú para ingresar a la línea de comandos de Grub. Si tiene Syslinux en su lugar, también puede usarlo. Solo me quedaré con Grub2 para el tutorial.

Para instalar Grub2 en el disco (lo que puede que no necesite hacer si usa el cargador de arranque existente de su disco duro):

sudo grub-install --boot-directory=[mount point of disk, not iso] [/dev/sdxy]

11a. Realice una entrada grub.cfg o ejecute manualmente lo siguiente:

grub> insmod ntldr //Inserts (loads) the Grub2 module used for loading NTLDR-style bootloaders.
grub> set root=(hdx,msdosy) //Replace x and y as appropriate. Sets the current directory to the target partition. Probably not needed if you booted off the drive you put the WinXP installer files on, but we always do this. Use "ls" to list all drives and partitions. If you only have one MBR-schemed disk with only one (or however many you made) partition(s), you'll be able to pick out which is your thumb drive. If not, try one and do "ls /". It will list the files on the root level of that partition. That should be a dead-giveaway. Notice that "ls" (without slash) lists drives and partitions, and "ls /" (with slash) lists the files on the root level of the partition that is the current working directory.
grub> ntldr /RUFUSLDR //Tells it to load RUFUSLDR.
grub> boot //That's the "go button".

11b. Como entrada de grub.cfg, se vería así (¡no alinees los corchetes, este es Grub, no la universidad!):

menuentry "Windows XP Installer" {
  insmod ntldr
  search --no-floppy --fs-uuid --set=root [insert filesystem's UUID here, obtaind by "sudo blkid /dev/sdXY"]
  ntldr /RUFUSLDR
}

// Tenga en cuenta que lo anterior es un medio mucho más seguro de configurar el directorio de trabajo actual de Grub. También tenga en cuenta que "inicio" está implícito para las entradas del archivo de configuración.

// También tenga en cuenta que aunque es habitual tener una línea "drivemap -s (hd0) $ {root}" para iniciar Windows (hace que la unidad de Windows sea la primera unidad de BIOS), hacerlo para mi instalador USB Windows XP causó que simplemente reiniciar al intentar iniciar el cargador de arranque de estilo ntldr. Si las cosas no funcionan y está seguro de que hizo todos los pasos, intente "drivemap -s (hd0) $ {root}"

// Tenga en cuenta si tiene más de una unidad USB insertada en el momento del arranque. Su sistema iniciará la unidad USB de arranque más dominante cuando se le indique que arranque USB. Puede determinar sistemáticamente qué puertos USB son dominantes y cuáles con dos unidades USB de arranque. Para mí, no tuve que probar muchas combinaciones, porque mis puertos USB están dispuestos en columnas y columnas enteras dominaban a otras columnas. Dentro de una columna, la superior era dominante.

// Tenga en cuenta que si está iniciando su instalador USB de Windows XP desde Grub2 en otra unidad, Grub2 solo verá la unidad USB más dominante (al menos en mi sistema). Así que asegúrese de que su instalador USB WinXP esté en la ranura usada más dominante. (O simplemente cambie los dos si tiene dos unidades USB y Grub2 ve la unidad que no es del instalador de WinXP). Por supuesto, esto no es un problema si solo se inserta una unidad USB.

// Si solo se reinicia, asegúrese de haber hecho "sudo ms-sys -w / dev / sdXY" y, si es FAT32, "sudo ms-sys -p / dev / sdXY", y copió NTDETECT.COM desde i386 al nivel de raíz

// Si dice que no puede encontrar lo que sea, es posible que no esté utilizando el cargador de arranque modificado. Asegúrate de estar usando el modificado. (Tendrá un md5 diferente que i386 / SETUPLDR.BIN.) También asegúrese de que txtsetup.sif y NTDETECT.COM estén en el nivel raíz.

// Si dice insertar el CD de Windows XP SP3, asegúrese de agregar esa línea a txtsetup.sif Y de que sus archivos de identificación de CD son buenos (WIN51, WIN51IP, etc.). Simplemente borre los archivos de sangría de CD y cópielos nuevamente en caso de duda.

// Si dice que necesita insertar un disco para demostrar que califica para la instalación de actualización, ¿hay algún disco GPT insertado? Quizás esto está causando el problema. Desenchufe los discos con esquemas GPT o conviértalos a MBR en Linux. (como apague la computadora, desenchúfela, intente nuevamente. No solo jale).

// Por cierto, para instalar A una unidad USB, tendrás que hacer el hack en ngine.de/article/id/8. Sí, es posible instalar Windows XP DE USB A USB.

Disfrutar,

Jake XD


1
después de pasar por una gran cantidad de tutoriales llegó a su método y parece lo suficientemente convincente como para mí, si el método no voy a tratar de arranque TFTP desatendida (más tarde para el experimento) actualmente con su método consigo NTFS signature is missing. Failed to mount '/dev/sdb': Invalid argument The device '/dev/sdb' doesn't seem to have a valid NTFS.fui por primera vez en una máquina de Windows 7 y se utiliza rufus y apuntó a XP iso y USB formateado con ISO y conecté el USB a la máquina Linux y ahora comencé con su método sudo mount ntfs-3g / dev / sdb1 / media / usb que es donde obtengo el error Los primeros 2 pasos de dd salieron bien
Usuario registrado

Aquí están las instantáneas de fdisk sdrv.ms/15UUtRf y otra captura de pantalla sdrv.ms/15UUuVk de fdisk. Creo que he seguido las cosas correctamente. Avíseme si nota algún problema
usuario registrado del

1
No pude hacerlo funcionar en Linux.
kenn

1
Esta es una gran respuesta que finalmente me ha dado la pista correcta: esta parte: por cierto, también puede copiar una imagen de disquete FreeDOS en la unidad, copiar también los archivos desde la iso y usar memdisk para iniciar en el disquete imagen. Desde FreeDOS, ejecute i386 \ winnt.exe. Ni siquiera necesita usar memdisk, instalar FreeDOS en un flash FAT32 es bastante fácil (se puede hacer con qemu, o hay imágenes usb alrededor ). Además, puede instalar Windows en NTFS de esta manera, la configuración de Windows maneja NTFS por sí mismo.
jpalecek

1
@jpalecek, ¿puedes dar una respuesta completa de tu comentario? Una instrucción sobre cómo hacer que las cosas funcionen, como por ejemplo 1. grabar FreeDOS en USB 2. copiar archivos de ISO a la partición usb. 3. ???
VasyaNovikov

3

Resulta que Windows XP realmente se configura para una configuración de hardware específica durante la primera fase del instalador.

Entonces, si el método de usar VirtualBox, QEMU, etc. en conjunto con su disco duro real es trabajar, realmente necesita hacer un segundo perfil de hardware. Esperaba que pudieras evitar esto apagando la máquina virtual antes de reiniciar en la segunda etapa y, en su lugar, iniciar tu máquina real y dejar que se configure para tu hardware real. Pero se configura para hardware en la primera etapa, no en la segunda etapa.

Así que definitivamente recomiendo imitar a Rufus. Simplemente copie los archivos y realice algunos ajustes. Ver publicación existente. No es necesario lidiar con un segundo perfil de hardware. Incluso si hiciera un segundo perfil de hardware, ¿cómo iniciaría en Windows para instalar controladores para su hardware real en el segundo perfil? Y si encontraras una manera, ¿no te detendrían las licencias (se ve en el hardware)?


1

Echa un vistazo a UNetBootIn . Esto debería funcionar.


8
No pude hacerlo funcionar para Windows XP, no

2
¿Puedes publicar una referencia (oficial o de otro tipo) de que esto es posible con Windows XP? ¿Tú o alguien que conoces ha hecho que esto funcione? Lo he intentado varias veces y he fallado, me gustaría saber que es posible antes de volver a intentarlo.
Annan

1

Solo está gritando al viento, pero ...

¿Qué hay de probar VirtualBox? Puede descargar el archivo iso de Windows XP, montarlo e instalar la máquina virtual. Creo que también puede acceder a unidades USB allí, por lo que podría hacer una unidad de arranque USB desde allí.


Desafortunadamente, realmente no funciona - vea las otras respuestas
jpalecek

1

Como no consiguió que UNetbootin funcionara, pídale a un amigo con una computadora con Windows (no son exactamente una escasez, ya sabes :) que prepare una memoria USB con WinToFlash para usted.


Ya lo he intentado y esto ha fallado, obtuve un BSOD en algún momento
Usuario registrado

Nota: WinToFlash es propietario. (No hay fuentes disponibles, tienen cosas como ediciones "profesionales", etc.).
VasyaNovikov

0

También es posible instalar XP de 32 bits desde DOS. Solo tiene que hacer una unidad flash de arranque de DOS u otro disco duro. Copie la carpeta i386 y luego:

C:> cd i386
C: \ i386> winnt / b ¡
Ahora la configuración de Windows se cargará desde su unidad de arranque FAT16 / FAT32 DOS!

Si arrancó desde el mismo disco duro en el que está instalando, puede utilizar la opción para convertirlo a NTFS.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.