Aquí os explico cómo instalar Windows en un PC de la Junta de Andalucía conservando todos los datos que hay en él:
Guadalinex, Arranque, Particiones ocultas…

*Puede ocurrir que se estropee el sistema de ficheros al redimensionar, para minimizar ese riesgo, lo recomendable es tener la menor cantidad de datos posible en el Guadalinex, y hacer la partición de Windows lo más pequeña posible, (15 GB o 20 como mucho). 
Os debo advertir, de que SIEMPRE, hay cierto riesgo, sin ir más lejos, cuando lo hice yo, me costó un poco recuperar el GRUB (Arranque) de Linux, ya que éste
estaba modificado por los de Guadalinex (como no), y no reconocía el Windows 7, así que le tuve que añadir el “bloque de texto” del Boot de Windows manualmente.

Para colmo, habia una línea de comandos en el GRUB, en la entrada de Guadalinex, que hacía que en el arranque del PC no apareciera el grub.
Total, al final conseguí arreglarlo cambiando un parámetro, “failrecord”, lo cambié a “failrecord +1

Bueno, sin más preambulos, procedamos:

Requisitos:

– 2 Pendrives de al menos 1 Gb (Se puede hacer con uno, cargando en él, primero Linux, y despues Windows 7)
– CD Live Linux : Ej. Linux Mint 9
– Windows en USB: Ej. Windows 7 Lite Como Volcarlo a un PenDrive
UNetbooting : Para Volcar la Iso de Linux a un PenDrive

Uso del UNetbootin:

Cuando Termine, reiniciamos, y arrancamos desde el Pendrive, y cuando nos salga el “Grub” del Pendrive pulsamos Enter en “Default” y esperamos a que cargue el Linux.

Hacer “hueco” para el Windows:

Una vez cargado el “USB Live”, ejecutaremos la aplicación “gparted” podemos buscarla en el menu, o ejecutarla en terminal con:

sudo gparted

Localizamos la partición que tenga más capacidad, en este caso sería la de 137 Gb, que además sería la del sistema operativo Linux:

Hacemos click derecho sobre ella y pulsamos en Resize/Move

En “New Size” Reducimos por lo menos 20 Gb (modificando el 2º Dígito vas de 10 en 10 Gb)

Y pulsamos “Resize/Move

Entoces veremos que ha aparecido un tal “unallocated” que sería “Espacio sin particionar”, Comprobamos que es 20 Gb más o menos y le damos a Apply (V verde)

Damos todo a OK y comenzará a analizar errores y a realizar las operaciones indicadas, una vez termine, apagamos (NO SACAMOS EL PENDRIVE HASTA QUE LO DIGA EL PC) lo sacamos,
pulsamos Enter, y el PC se apagará.

Instalar Windows:

Introducimos el Pendrive con Windows, encendemos el PC, y arrancamos del pendrive.

Comenzará la instalación de Windows:

Selecionamos la opción Instalación “Personalizada” y cuando lleguemos a las particiones MUCHO CUIDADO!

Localizamos el “Espacio sin particionar“, comprobamos que tiene 20 gb (o sea que es lo que hemos hecho antes)

Lo seleccionamos, le damos a “Nuevo”

Y cuando se Particione el “Espacio no particionado” nos aseguramos de que esta partición de 20 Gb esté selecionada y le damos a Siguiente para que empiece la Instalación.


Recuperar GRUB

Ya tenemos instalado el Windows, pero no podemos iniciar Linux ya que el arranque de Windows se ha “cargado” el de Linux, por eso ahora tenemos que recuperar
el Grub
.

Requisitos:

Usb Live Linux: Ej. El linux que hemos usado antes

Pues bien, arrancamos el PC e iniciamos con el Pendrive (elegimos puerto USB en el gestor de arranque si no lo hace automático).
Una vez cargue el Linux, seguiremos las siguientes instrucciones de la “Guía Ubuntu”:

 Usando una distribución Live

Consiste en usar una distribución en modo LiveCD para instalar nuevamente el GRUB. Usaremos el LiveCD de Ubuntu 9.10 o superior (debe ser la versión Live o Desktop), aunque puede ser cualquier otra distribución que use GRUB2 como gestor de arranque y no LILO ni Grub 1.

Lo primero que debemos hacer es arrancar el live-cd y abrir una terminal. Despues escribimos lo siguiente para ver las particiones de los distintos discos duros:

Después vemos cual es la partición donde tenemos Ubuntu y la montamos en /mnt (en la mayoría de los casos esta partición será sda1, el ejemplo lo haré con esa partición pero mira cual es tu partición con el comando fdisk):


sudo mount /dev/sda1 /mnt
Ahora, monta el resto de los dispositivos:


sudo mount --bind /dev /mnt/dev


sudo mount --bind /proc /mnt/proc

Y ejecuta el comando chroot de forma que accedemos como root al sistema de archivos de nuestro antiguo Ubuntu:


sudo chroot /mnt

Por último cargamos el Grub en el MBR ejecutando el siguiente comando:

grub-install --recheck /dev/sda

(sda lo debemos sustituir por el disco duro que utilizamos para arrancar los sistemas operativos, casi siempre es sda. Ojo!! no poner el número de partición, solo sda).

Y a continuación escribimos :

sudo update-grubo
sudo update-grub2
Reiniciamos

*Recordamos que sda1 sda2 sda3… son las particiones, y debes tener claro de que va cada una, (puedes verlo con gparted, (mirar capturas de arriba)) en mi caso la particion del boot sería la sda1, así que ese dato tendria que cambiarlo:

*Parte extraída de Guía Ubuntu

Una vez recuperado el grub, si todo ha ido bien, tendremos el Sistema Linux y Windows, y el Grub nos dará a elegir entre arrancar Linux o Windows en cada arranque del PC.

Posibles Problemas:

*Es importante guardar una copia del fichero grub.cfg en un pendrive por si lo arruinas, poder restaurarlo facilmente.

-Que al actualizar el Grub no te reconozca el Windows

Solución:

Tendríamos que acceder al grub del guadalinex (/boot/grub/grub.cfg) para modificarlo y añadirle esta entrada:

Como acceder:

La entrada de Windows sería esta:


menuentry "Windows 7 (loader) (on /dev/sda1)" {
    insmod ntfs
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set 01ca4da7b5e45e00
    chainloader +1

Donde set root=(hd0,1) : 0 es el disco duro, y 1 seria la partición donde está el arranque de Windows, en mi caso sería; set root=(hd0,3)

Que tendría que ir en esta posición:

#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by /usr/sbin/grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s /boot/grub/grubenv ]; then
  have_grubenv=true
  load_env
fi
set default=”4″
if [ ${prev_saved_entry} ]; then
  saved_entry=${prev_saved_entry}
  save_env saved_entry
  prev_saved_entry=
  save_env prev_saved_entry
fi

insmod ext2
set root=(hd0,6)
search –no-floppy –fs-uuid –set 05b1f341-7eba-4ed5-a7c6-49b75116db74
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=640×480
  insmod gfxterm
  insmod vbe
  if terminal_output gfxterm ; then true ; else
    # For backward compatibility with versions of terminal.mod that don’t
    # understand terminal_output
    terminal gfxterm
  fi
fi
if [ ${recordfail} = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi

### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/white
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
menuentry “Ubuntu, Linux 2.6.31-14-generic” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,6)
    search –no-floppy –fs-uuid –set 05b1f341-7eba-4ed5-a7c6-49b75116db74
    linux    /boot/vmlinuz-2.6.31-14-generic root=UUID=05b1f341-7eba-4ed5-a7c6-49b75116db74 ro  splash  quiet splash
    initrd    /boot/initrd.img-2.6.31-14-generic
}

menuentry “Ubuntu, Linux 2.6.31-14-generic (recovery mode)” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    insmod ext2
    set root=(hd0,6)
    search –no-floppy –fs-uuid –set 05b1f341-7eba-4ed5-a7c6-49b75116db74
    linux    /boot/vmlinuz-2.6.31-14-generic root=UUID=05b1f341-7eba-4ed5-a7c6-49b75116db74 ro single  splash
    initrd    /boot/initrd.img-2.6.31-14-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry “Memory test (memtest86+)” {
    linux16    /boot/memtest86+.bin
}
menuentry “Memory test (memtest86+, serial console 115200)” {
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry “Windows 7 (loader) (on /dev/sda1)” {
    insmod ntfs
    set root=(hd0,1)
    search –no-floppy –fs-uuid –set 01ca4da7b5e45e00
    chainloader +1

}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the ‘exec tail’ line above.
### END /etc/grub.d/40_custom ###

– Que no te aparezca el Grub al encender el PC

Solución:

Tendríamos que buscar la entrada principal del Linux y modificar alguna que otra opción de arranque:

(Click para Mostrar/Ocultar)

*Os recuerdo que cuando yo lo hice lo único que cambié fue el comando “recordfail” que lo puse como “recordfail=1“:

menuentry “Ubuntu, Linux 2.6.31-14-generic” {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
    set quiet=1
    insmod ext2
    set root=(hd0,6)
    search –no-floppy –fs-uuid –set 05b1f341-7eba-4ed5-a7c6-49b75116db74
    linux    /boot/vmlinuz-2.6.31-14-generic root=UUID=05b1f341-7eba-4ed5-a7c6-49b75116db74 ro  splash  quiet splash
    initrd    /boot/initrd.img-2.6.31-14-generic

*Es importante guardar una copia del fichero grub.cfg en un pendrive por si lo arruinas, poder restaurarlo facilmente.


Aquí tenéis el grub.cfg del PC al que le instalé Windows, y funciona hasta hoy.