martes, 24 de mayo de 2016

Trasladar sistema operativo a SSD

Tentado por las bondades de los discos duros de estado sólido y necesitado de más velocidad para el trabajo, me decidí a la migración. Mi problema particular, y objeto de esta entrada, es que el disco de destino es de menor capacidad que el de origen, por lo que en la migración quise dejar atrás la partición de backup del disco antiguo.
Para la migración utilicé el programa clonezilla. Es un live-CD / live-USB que te permite la copia de particiones o de disco entero.
Lo que debería haber hecho es, fijarme en las particiones que tenía el disco duro de windows. Habría visto la primera partición, de 100MB, que es la que almacena los datos de arranque (y otras cosas que no entiendo, pero ahora sé que eran necesarias). No la ví, no la copié al nuevo disco y por supuesto, windows no arrancó.

Finalmente, arranqué desde un live CD de Linux Mint, y calqué esta partición en el nuevo SSD:


Nombre: Reservado para el sistema
Tamaño: 100MB
Sistema de archivos: NTFS

La segunda partición, también NTFS, ya ocupando el resto del SSD (no quería partición de backup).

En el disco origen ya había pasado los archivos que no quería pasar al nuevo SSD a la partición de backup.

Ahora el proceso que queda por delante es arrancar desde el live-CD/USB de clonezilla y clonar las particiones de "Reservado para el sistema" y de "Windows".

Aunque sean de distinto tamaño, mientras el contenido quepa en el destino, no habrá problema.

A partir de ahí, todo disfrute: no hace nada de ruido, el sistema operativo arranca en segundos, todos los programas se abren más rápido y aunque el trabajo es el trabajo, te ahorras esos momentos en los que ya vas tarde y cuando el pc te hace esperar quieres hundir el puño en la pantalla.
En los SSD no hay piezas en movimiento, por lo que no le afectan las vibraciones ni los golpes, cosa que en la puesta en marcha da un extra de confianza.

El único pero: duran menos.

Yo hace tiempo que hago las copias de seguridad en la nube, así que espero que cuando rompa, no me pille por sorpresa.

CMD batch para reiniciar dispositivo en Windows 7 64bits

Tras la instalación de algún programa, el ratón USB fallaba al reiniciar el PC:


El problema se solucionaba deshabilitando y volviendo a habilitar el disposivo desde el administrador de dispositivos, así que en lugar de buscar el origen del problema, decidí taparlo (como buen español).
La solución expuesta es una mezcla de varios foros, pero que escribo por no haber encontrado nada similar en un solo sitio. En forma de resumen, engloba los siguientes pasos:

  1. Conseguir DEVCON
  2. Escribir un archivo de consola
  3. Programar una tarea para que se ejecute al inicio
En primer lugar, devcon es una herramienta que, en línea de comandos, hace lo mismo que el administrador de dispositivos. Antes se podía descargar solo, pero ahora forma parte de un paquete de herramientas de desarrollo que pesa un huevo y no necesitamos. Podemos encontrar fácilmente la herramienta en cuestión googleando un poco. Da un poco de miedo porque utilizas un exe de alguien que no sabes si es de confianza, pero si lo compruebas con el antivirus antes, deberías estar a salvo.
Hay dos versiones incompatibles entre sí (32 y 64 bits). Debes descargar la correspondiente a tu sistema operativo. Otra opción es descargar el giga y pico de la instalación del paquete WDK y coger de ahí el ejecutable "devcon.exe" que nos hace falta.

El siguiente paso es hacerla accesible desde la consola, por lo que debes pegar el ejecutable en la carpeta C:\Windows\System32\
Una vez hecho esto, puedes comprobar que funciona escribiendo "devcon help" en la consola.

El siguiente paso es obtener la información (ID) del dispositivo que falla. Entramos en el administrador de dispositivos (escribiéndolo en la barra de búsqueda del menú inicio).
Botón derecho / propiedades en el dispositivo que quieres reiniciar, pestaña detalles, y en el desplegable de "Propiedad", escoger "Id. de hardware".


El valor que estamos buscando es, en mi caso, DEV_1042. con esta información ya podemos crear el archivo de consola:

Yo lo he creado en C:/ (raiz). Abro la carpeta desde el explorador de windows y creo un documento de texto con el siguiente contenido:


devcon disable *DEV_1042*

devcon enable *DEV_1042*

Primero lo escribí dando un tiempo de espera ("timeout 5"), pero ví que funcionaba igual sin él...
A la hora de guardar el archivo, escogemos *.* Todos los archivos y ponemos el nombre que queramos, con la extensión ".cmd". Por ejemplo: RESETXHCI.cmd

Ya podemos abrir el programador de tareas (igual que antes, buscándolo desde el menú inicio) y añadir una tarea nueva (Acción/Crear Tarea (básica, si queremos usar el asistente)):


Desencadenadores: al iniciar la sesión.
Acciones: Iniciar un programa. Examinar: C:\RESETXHCI.cmd
Condiciones: Desactivar "Iniciar la tarea sólo si el equipo está conectado a la corriente alterna"
Configuración: Desactivar "Detener la tarea si se ejecuta durante más de 3 días"