2016-08-17

Haciendo un USB booteable para instalar Windows 7

Cuando instalo Ubuntu en una PC nueva, suelo copiar el ISO en un pendrive, haciendo dd. El pendrive tiene que estar enchufado y desmontado, y no queda nada de lo que había grabado antes.

# dd if=/path/to/file.iso of=/dev/sdb bs=4M

Esto no me anduvo para las ISOs de Windows :(. Así que estuve googleando un rato largo hasta que encontré acá instrucciones que logré hacer andar.

Lo que yo hice, basado en lo que linkié arriba es:

  1. Enchufé el pendrive, se puso solo en /dev/sdb (YMMV). El resto de las instrucciones asumen que el pendrive está ahí.
  2. Desmonté el pendrive desde la GUI.
  3. Corrí, sudo cfdisk /dev/sdb y creé adentro una partición NTFS (tipo 7) y la marqué como booteable, asegurándome que tenga suficiente lugar para copiar todo el contenido del ISO de Windows 7.
  4. Formatié la partición, corriendo sudo mkfs.ntfs -f /dev/sdb.
  5. Instalé lilo (con apt-get) y corrí sudo lilo -M /dev/sdb mbr para copiarle un boot record.
  6. Creé en /mnt las carpetas /mnt/iso y /mnt/usb 
  7. Monté por loopback el ISO corriendo sudo mount -o loop win7.iso /mnt/iso.
  8. Monté el pendrive corriendo sudo mount /dev/sdb1 /mnt/usb.
  9. Copié todo el contenido del ISO en el pendrive (usé el Midnight Commander, cp -R debería andar también).
  10. Desmonté iso (sudo umount /mnt/iso) y pendrive (sudo umount /mnt/usb)
  11. Corrí sudo sync para sincronizar los filesystems (creo que no hace falta, pero lo hice igual por las dudas)
  12. Desenchufé el pendrive y lo usé para instalar Windows en otra máquina
Bonus:
Si querés, podés backupear la imagen haciendo sudo dd if=/dev/sdb of=/path/to/image/file.img bs=4M.

Bonus 2:
Si instalaste Windows en una partición, y tenés un Ubuntu en otra, podés seguir estas instrucciones para poder bootear las 2 (mirá la respuesta #6).

Happy hacking!
Aureliano.