Preparar una unidad USB de instalación de Windows 7 utilizando GNU/Linux

Introducción.

En algunos casos se necesita instalar Windows como sistema operativo en máquinas que no disponen de una unidad lectora de CD/DVD, tal es el caso de los netbooks actuales.  Windows a diferencia de algunas versiones de Linux como Ubuntu, no incluye una herramienta para crear instaladores del sistema operativo en memorias USB, sin embargo los pasos que se deben seguir para crearlas no son complejos.

A continuación se detalla el procedimiento necesario para crear unidades USB con los instaladores de Windows utilizando un equipo con GNU/Linux Ubuntu 10.04 (en general, cualquier distribución de Linux servirá).

Requerimientos.

  • Un computador con GNU/Linux.
  • Una unidad de DVD.
  • Una memoria USB de por lo menos 3GB.
  • Un DVD de instalación de Windows 7 (probablemente funcionen también otras versiones).

Procedimiento.

Determinar el dispositivo que corresponde a la memoria USB.

Insertar la memoria en un puerto USB libre y ejecutar el siguiente comando.

$ dmesg | tail -20

[16590.915054] scsi10 : SCSI emulation for USB Mass Storage devices
[16590.915460] usb-storage: device found at 7
[16590.915466] usb-storage: waiting for device to settle before scanning
[16592.371732] usb 2-1: USB disconnect, address 7
[16603.750099] usb 2-2: new high speed USB device using ehci_hcd and address 8
[16603.902794] usb 2-2: configuration #1 chosen from 1 choice
[16603.913861] scsi11 : SCSI emulation for USB Mass Storage devices
[16603.922229] usb-storage: device found at 8
[16603.922232] usb-storage: waiting for device to settle before scanning
[16608.923049] usb-storage: device scan complete
[16608.923986] scsi 11:0:0:0: Direct-Access              MIMOBOT          0.00 PQ: 0 ANSI: 2
[16608.927668] sd 11:0:0:0: Attached scsi generic sg2 type 0
[16608.929715] sd 11:0:0:0: [sdb] 7892087 512-byte logical blocks: (4.04 GB/3.76 GiB)
[16608.936095] sd 11:0:0:0: [sdb] Write Protect is off
[16608.936106] sd 11:0:0:0: [sdb] Mode Sense: 00 00 00 00
[16608.936113] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16608.941652] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16608.941659]  sdb: sdb1
[16609.210304] sd 11:0:0:0: [sdb] Assuming drive cache: write through
[16609.210316] sd 11:0:0:0: [sdb] Attached SCSI removable disk

Desomntar el dispositivo que referencia a la unidad USB.

$ umount /dev/sdb1

Crear una partición para los archivos de instalación.

$ sudo fdisk /dev/sdb

Verificar si existen particiones previas en la unidad.

Command (m for help): p

Disk /dev/sdb: 4040 MB, 4040748544 bytes
125 heads, 62 sectors/track, 1018 cylinders
Units = cylinders of 7750 * 512 = 3968000 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006a77a

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            1        1018     3944719   83  Linux

En este caso existe una partición previa (sdb1), se procede a removerla.

Remover las particiones existentes.

Command (m for help): d
Selected partition 1

Crear una nueva partición para los archivos de instalación.

Se procede a crear una nueva partición que ocupe la totalidad del espacio de la unidad USB, en este caso 4GB.

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-1018, default 1): [Enter]
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-1018, default 1018):
[Enter]
Using default value 1018

Cambiar el tipo de la partición a NTFS.

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 7
Changed system type of partition 1 to 7 (HPFS/NTFS)

Permitir que la partición sea activa (bootable).

Command (m for help): a
Partition number (1-4): 1

Guardar los cambios y salir de fdisk.

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Limpiar la información del MBR.

$ sudo dd if=/dev/zero of=/dev/sdb bs=446 count=1

1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.00288829 s, 154 kB/s

Crear el sistema de archivos en la unidad con NTFS.

$ sudo mkfs.ntfs /dev/sdb1

Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 100% – Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.

Modificar la etiqueta de la unidad (opcional).

$ sudo ntfslabel /dev/sdb1 “JimezamLabs”

Copiar los archivos de instalación.

Retirar y volver a conectar la unidad USB para que el sistema operativo la reconozca nuevamente, ahora vacía y con la etiqueta que se eligió en el paso anterior.

$ cp -rf /media/Windows7/* /media/JimezamLabs/

Deben actualizarse los nombres de los puntos de montaje según su propio contexto.  /media/Windows7 representa el punto de montaje del DVD de Windows mientras que /media/JimezamLabs representa al punto de montaje de la unidad USB que se está preparando.

Instalación de Windows.

Para instalar Windows en un equipo a partir de la memoria USB recién preparada, inserte esta en un puerto USB libre y reinicie el computador.  Configure la BIOS del equipo para que inicie a partir del dispositivo USB y prosiga con la instalación normalmente.

24 thoughts on “Preparar una unidad USB de instalación de Windows 7 utilizando GNU/Linux”

  1. Gracias, excelente tutorial. Practico rápido y fácil. Sin te recomiendo que desactives el captcha de los comentarios, que molesta bastante y es exagerado. Saludos desde Colombia. Linux User. @Daioms in twitter

    1. Daioms, gracias por el comentario. Desafortunadamente el captcha es necesario para evitar el contínuo SPAM que intenta dejar mensajes en el blog :-s

  2. No entiendo el último paso, el de copiar los archivos de instalación… Soy un poco nuevo (nuevisimo) en linux, asi que estoy un pelin perdido… Pero necesito el usb con Windows… Te agradecería la respuesta!!

    1. Fernando, una vez preparada la USB con NTFS sólo debes copiar allí los archivos de la distribución de Windows7. En mi caso el DVD se montó bajo /media/Windows7 y la unidad USB bajo /media/JimezamLabs. Debes verificar cuales son estos puntos de montaje en tu sistema para ajustarlos.

  3. hola muchas gracias, tu tutorial esta muy beno y lo entendi aunque soy principiante en esto del cambio de windows a linux, tengo instalado ubuntu 10.04, y todo va bien con tu tutorial, lo que pasa es que en esta parte no pude entender o que quiere decir, podrias ayudarme?

    ” Retirar y volver a conectar la unidad USB para que el sistema operativo la reconozca nuevamente, ahora vacía y con la etiqueta que se eligió en el paso anterior.

    $ cp -rf /media/Windows7/* /media/JimezamLabs/

    Deben actualizarse los nombres de los puntos de montaje según su propio contexto. /media/Windows7 representa el punto de montaje del DVD de Windows mientras que /media/JimezamLabs representa al punto de montaje de la unidad USB que se está preparando. ”

    osea en mi caso que tendria que poner?

  4. Saludos Adriano, en el paso que mencionas es necesario volver a montar la unidad USB. Efectivamente el método mas simple es retirarla del PC y volverla a conectar para que el sistema operativo la monte automáticamente.

    En el paso siguiente debes reemplazar los puntos de montaje según como los hayas nombrado específicamente. En mi caso el DVD de Windows7 aparecía montado bajo /media/Windows7 y mi dispositivo USB bajo /media/JimezamLabs ya que esa es la etiqueta que tenía. Debes verificar cuales son estos puntos de montaje en tu sistema y reemplazarlos apropiadamente en el comando de este paso.

  5. que pasa si no tienes dvd de windows ? en el paso de copiar los archivos? yo tengo una iso deberia extraerla simplemente en el usb y listo no?

  6. De no tener el dvd recomeindo montar la imagen .iso para luego copiar el contenido y no la .iso en bruto como un solo archivo:
    # mount -o loop /donde/esta/tu/windows.iso /mnt/”crear_aca_una_carpeta”

  7. MUY MUY BUENO TIO!!!! La mejor explicacion que vi sobre este tema.. si duda! Me a servido muchisimo, porque ademas la ultima version de el UNetbootin, no va con el mbr de microsoft!!
    1 Saludo y Gzz! xD

  8. Muchas gracias man, me sirvio mucho, siempre es bueno que haya personas que publiquen cosas como esta, donde se utilize software libre como las aplicaciones GNU en las distros de GNU/Linux.

  9. Hice todo lo comentado y hasta ese momento estuvo bien, cuando le copie los archivos del dvd de windows, bien, ahi empezaron los problemas, no booteaba desde la usb, y luego no es reconocida en wwindows, cuando voy a administrador de discos, aunque aparece, no se deja no formatear ni cambiar la letra de unidad, y cuando trabajo con ell en linux, da el siguiente error:

    “Error creating file system: helper exited with exit code 1: helper failed with:
    Total number of sectors (7667776) not a multiple of sectors per track (62)!
    Add mtools_skip_check=1 to your .mtoolsrc file to skip this test
    mkfs.vfat 3.0.12 (29 Oct 2011)”

    Espero me ayude.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>