Procmon en línea de comandos para linux

En un momento dado me ha hecho falta comprobar qué ficheros estaba abriendo un proceso en un momento dado. En Windows hubiera usado Procmon de Sysinternals [1] pero, ¿y en Linux? Tras buscar por internet me encontré [2] con strace [3]. Os dejo que leáis pero la respuesta rápida es esta:

strace -t -f -v -e trace=open,close,read,write,connect,accept  -p 2579 -o /usr/share/tomcat/logs/realtime.log

donde decimos que strace monitorice, las operaciones “open,close,read,write” sobre ficheros y “connect,accept” sobre conexiones, del proceso 2579 y todos sus hijos (-f) y que lo vuelque todo al fichero realtime.log

[1] https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx 
[2] https://superuser.com/questions/348738/continuously-monitor-files-opened-accessed-by-a-process 
[3] https://linux.die.net/man/1/strace

Usando 7zip para hacer una sencilla copia de seguridad

Si tienes instalado 7zip [1] puedes usarlo para hacerte una sencilla copia de seguridad. Este es un ejemplo de cómo hacerlo.

@echo off

:: URL: http://en.wikibooks.org/wiki/Windows_Programming/Programming_CMD
:: Variables

SET zip_path="C:\Program Files\7-Zip\7z.exe"
SET base_folder="C:\carpeta-de-origen\*.*"
SET out_folder=D:\carpeta-de-destino\
SET zip_name=copia-seguridad.zip

::echo %zip_path%

:: Programa
IF EXIST %out_folder% (
CLS
SET passw=
echo.
echo.Iniciamos el proceso de copia.
del %out_folder%%zip_name%
%zip_path% a -tzip -scsDOS -p%passw% %out_folder%%zip_name% -r %base_folder%
echo.Proceso finalizado.
set passw=
pause
) ELSE (
echo.ERROR: "No se encuentra la carpeta de destino, detenemos el proceso."
)
ECHO ON

[1] http://www.7-zip.org/

Comprobación del estado de las tablas de una base de datos mysql

Haciendo uso de mysqlcheck podemos comprobar el estado de las tablas de una, o varias, bases de datos en un servidor mysql. Su uso es muy sencillo:

mysqlcheck base-de-datos -u usuario -p password

Al hacerlo, mysqlcheck nos genera una salida con las tablas de la base de datos indicada y su estado:

base-de-datos.tabla-1 OK
base-de-datos.tabla-2 OK
base-de-datos.tabla-3 OK
base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Si la lista es muy larga la selección de sólo aquellas tablas con problemas puede no ser inmediata. Un modo de verlas sólo a estas es ejecutando:

mysqlcheck base-de-datos -u usuario -p password | grep -v OK$

con lo que seleccionamos sólo las lineas que no terminen en OK, que son las que tienen problemas:

base-de-datos.tabla-4
warning : Table is marked as crashed
warning : 2 clients are using or haven't closed the table properly
warning : Size of datafile is: 448416 Should be: 447568
error : Wrong record length 168 of 176 at 87156
error : Corrupt

Ahí os queda eso 🙂 Ah, un modo de reparar todas las tablas de todas las bases de datos lo podéis encontrar en Shell script to optimize all tables in all databases (MySQL)

 

Instalar Windows 7 64bits desde un disco usb, preparado en Windows XP 32bits

Hola a todos.

Ahora mismo ya estoy instalando un Windows 7 Professional 64bits desde un USB, en mi nuevo ordenador, pero os reconozco que he tardado 1 hora y pico en conseguirlo. ¿Por qué si el proceso parece tan fácil?

Tras buscar cómo instalar Windows 7 desde un USB, bajarme la aplicación Windows 7 USB/DVD download tool, probarla 6 veces y obtener el mismo mensaje de error (en el que decía que no había podido preparar el USB para que sea arrancable), probar con diskpart (y tener problemas con que list disk no mostraba mis discos usb) me decidí a usar la cabeza.

En el mensaje de error hablaba de que en el proceso de preparación del disco USB había intervenido la aplicación bootsect. Sabiendo que viene incluido en el DVD de instalación, subcarpeta ‘boot’, probé a ejecutarla:

La aplicación bootsect.exe no es una utilidad Win32 válida

¿Qué? Pero si estoy preparando el USB en un portatil con Windows XP 32bits, ¿por qué me dice eso? Tras un ratito de reflexión (no os lo negaré) me di cuenta que estaba queriendo preparar la instalación de un Windows 7 Professional 64bits y que estaba usando su aplicación bootsect (también en 64bits) desde un entorno de 32bits. Clarísimo, a que sí?! Así que me puse a buscar la versión 32bits de bootsect.exe, encontré en Seven Forums, la copié en la carpeta donde instalé Windows 7 USB/DVD, que en mi caso era:

C:\Documents and Settings\nombre_de_usuario\Configuración local\Datos de programa\Apps\Windows 7 USB DVD Download Tool

y tras ejecutarla de nuevo conseguí preparar correctamente el USB.

Windows 7 usb-dvd

¿Sencillo, no? Espero que os valga y que hayáis tardado menos que yo en encontrar la respuesta. Os dejo que tengo que seguir instalando el equipo 🙂

Sqlcmd: ejecutar sentencias T-SQL en SqlServer desde la línea de comandos

Puede haber veces que no podamos trabajar con un entorno gráfico para ejecutar consultas en un SQLServer, que queramos ejecutar procesos por lotes (ficheros bat) con determinados procesos, o que, simplemente, nos apetezca usar la consola. En esos casos tenemos sqlcmd, una utilidad en línea de comandos para ejecutar sentencias T-SQL. Lo necesario para utilizar este herramienta es ver su ayuda:

Herramienta de l¡nea de comandos de Microsoft (R) SQL Server
Versi¢n 9.00.5000.00 NT INTEL X86
Copyright (c) Microsoft Corporation. Reservados todos los derechos.

Uso: Sqlcmd            [-U Id. de inicio de sesi¢n]          [-P contrasña]
  [-S servidor]            [-H nombre de host]          [-E conexión de confianza]
  [-d usar nombre de base de datos] [-l tiempo de espera de inicio de sesión]     [-t tiempo de espera de consulta]
  [-h encabezados]           [-s separador de columna]      [-w ancho de pantalla]
  [-a tama¤o de paquete]        [-e entrada de eco]        [-I habilitar identificadores entre comillas]
  [-c fin de comando]            [-L[c] listar servidores[salida limpia]]
  [-q "consulta de línea de comandos"]   [-Q "consulta de línea de comandos" y salir]
  [-m nivel de error]        [-V nivel de gravedad]     [-W quitar espacios finales]
  [-u salida Unicode]    [-r[0|1] mensajes a stderr]
  [-i archivo de entrada]         [-o archivo de salida]        [-z nueva contraseña]
  [-f <p ginaDeC¢digos> | i:<p ginaDeC¢digos>[,o:<p ginaDeC¢digos>]] [-Z nueva contrase¤a y salir]
  [-k[1|2] quitar[reemplazar] caracteres de control]
  [-y ancho de pantalla de longitud variable]
  [-Y ancho de pantalla de longitud fija]
  [-p[1] imprimir estad¡sticas[formato dos puntos]]
  [-R usar configuraci¢n regional de cliente]
  [-b anular por lotes si hay errores]
  [-v var = "valor"...]  [-A conexi¢n de administrador dedicada]
  [-X[1] deshabilitar comandos, secuencia de comandos de inicio, variables de entorno [y salir]]
  [-? mostrar resumen de sintaxis]

Conexión con autenticación de Windows a la “instancia” del servidor “host”

sqlcmd -S host\instancia 

Conexión con autenticación de Windows a la base de datos “BaseDeDatos” de la “instancia” del servidor “host”

sqlcmd -S host\instancia -d BaseDeDatos

Conexión con autenticación de SQLServer a la “instancia” del servidor “host” usando las credenciales usuario + clave

sqlcmd -U usuario -P clave -S host\instancia

Una vez conectados lo único que debemos recordar es que para ejecutar sentencias T-SQL que escribamos hemos de usar la sentencia GO. Veamos una ejemplo sencillo.

-- Conexión: 
sqlcmd -S host\sqlexpress
-- Establecemos la base de datos:
use database;
go
-- Ejecutamos una consulta:
select * from tabla;
go
nombre         apellido1         apellido2
---------------------------------------------------------------------
Antonio         Martinez         Luzco
Mirella         Abad             Nothing

(2 filas afectadas) 

Nos conectamos de nuevo y configuramos la conexión de modo que nos quite los espacios al final (opción -W), fijando el separador de columas ( -s “|”) y nos conecte a la base de datos “BaseDeDatos”:

sqlcmd -S hos\instancia -d BaseDeDatos -s "|" -W
-- Ejecutamos una consulta:
select * from tabla;
go
nombre|apellido1|apellido2
---------------------------------------------------------------------
Antonio|Martinez|Luzco
Mirella|Abad|Nothing

(2 filas afectadas)

Como veis es una herramienta sencilla pero pontente. Aquí os dejo más referencias sobre sqlcmd, Ciao

SQL Live Monitor: un monitor de SQLServer ligero y gratuito

SQL Live Monitor

Hoy, buscando con programas de monitorización de un SQLServer, me he encontrado, entre toda la oferta de programas de pago, con SQL Live Monitor [1], un monitor de SQLServer ligero y gratuito. Según los autores:

una aplicación en .NET que proporciona información del estado “en tiempo real” de la instación de SQL Server destino. No necesita instalación, muestra de información en tiempo real, y posibilidad de exportarla a ficheros para su posterior análisis. Además, también captura información SQL para su tratamiento usando PAL [2] (Performance Analysis of Logs)

De no tener nada a tener esta ayuda, va un trecho 🙂

Enlaces simbólicos en Windows

Pensando en una posible solución a un problema que tengo en un 2003 Server, llego a mi mente la posibilidad de crear vínculos simbólicos en Windows. Lo cierto es que nunca los había tenido que usar hasta hoy, y no sé si son la solución que estoy buscando, pero como me ha parecido curioso os lo comento.

Tras buscar un poco [2] y [3] encontré que para hacer lo mismo hacen los chicos de unix con el comando "ln" [1] en Windows, con discos formateados con NTFS, tenemos dos opciones:

La verdad es que la sintaxis de ámbos es tan sencilla que con que la leáis la entenderéis 🙂 Para el comando mklink:

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is a file
                symbolic link.
        /H      Creates a hard link instead of a symbolic link.
        /J      Creates a Directory Junction.
        Link    specifies the new symbolic link name.
        Target  specifies the path (relative or absolute) that the new link
                refers to.

En el caso de junction:

usage: junction [-s] [-q] 
       -q     Don't print error messages (quiet)

       -s     Recurse subdirectories

usage: junction [-d]  []
       -d     Delete the specified junction
       example: junction d:\link c:\winnt

Tan pronto como decida si los enlaces simbólicos son la solución que buscaba os lo cuento. Ciao.

Ah! aquí os dejo los enlaces.

  1. Comando 'ln' en Unix
  2. Windows equivalent command to unix “ln”
  3. How do I create a symbolic link in Windows?
  4. NTFS symbolic link

PD. Otra cosa que me encontré, en la búsqueda, fue la Guía de Referencia de comandos de Windows (a partir de Windows Vista) que creo es un buen documento a tener.

Windows Vista no es para mi

Casualmente después de escribir la saga de artículos sobre Windows Vista me compré un juguetito nuevo: un Dell Inspiron 6400 tuneado 🙂

Del nuevo equipo me gustaba todo menos el sistema operativo que traía, la versión Home Premium del nuevo Windows Vista. Reconozco que soy algo reacio a los cambios cuando hablamos de versiones del Sistema Operativo. Llevo años muy satisfecho con Windows XP Profesional como para pasarme tan ‘a la ligera’ a la nueva versión y menos cuando ninguna de las novedades que este incorpora, a priori, parecen mejorar en nada mi experiencia como usuario. Pero bueno, decidí darle algúntiempo a ver que  tenía que ofrecerme.

A continuación os comento, desde el punto de vista del usuario, algunos de los nuevos aspectos que incorpora esta versión de Windows. Seguro que me olvido de muchos pero …. ¿si no consigo acordarme de ellos será porque quizás no sean tan importates? Ojo, no entraré a mencionar cambios a nivel de programación o gestión interna de la información, sólo me limitaré al enfoque como usuario.

Lo primero que noté al arrancar el equipo fue un incremento en el tiempo empleado hasta presentar la ventana de inicio de sesión (no fué alarmante pero si mayor del que esperaba en un nuevo sistema operativo) y en el tiempo de apagado del sistema.

Una vez iniciada la sesión, me saltó a la vista el nuevo entorno gráfico Aero que incorpora Windows Vista (sólo para aquellos equipos que lo puedan soportar) que inicialmente soprende, por su diferencia con su predecesor de XP, pero que, después de usarlo varias semanas, se vé que no es para tanto: los efectos visuales no matan y terminó entorpeciendo mis movimientos.

Como no solo del PC vive el hombre quise conectarme a Internet. Para ello, pese a tener conexión por cable, intenté configurar la conexión inalámbrica. Pués bien, no sé si por mi desconocimiento de Vista o porque no se pueda hacer (cosa que no creo) pero no puede configurar la conexión tal y como lo tenía con XP yaque Windows Vista no me dejaba conectar a una red inalámbrica que no prepagase su SSID. Repito que debió ser porque no super hacerlo pero no me gustó tener que cambiar la configuración del punto de acceso.

Llegados a este punto, con conexión a Internet, Windows decidió actualizarse. No puedo negar la evidencia y debo deciros que el hecho de que a las pocas horas de tenerlo instalado necesitase actualizar varios paquetes me sorprendió negativamente. Que cada uno piense lo que quiera al respecto …

Durante el proceso de actualización me acordé del Firewall y decidí meterle mano. La aplicación, con el mismo aspecto que en XP, me
ofrecía las mismas opciones de filtrado. No sé, de nuevo debe ser porque no lo encontré, pero no ví las opciones adicionales para
definir reglas de filtrado para el tráfico saliente del ordenador.

En definitiva, como a medida que usaba el equipo no ganaba en comodidad, como preveía una batalla a la hora de instalar la batería de programas que pensaba instalar, como no notaba mejoras a nivel de usuario y como, principalmente, estoy muy agusto con Windows XP me decidía formatear el equipo, eliminar Vista y reinstalar XP. Otro se hubiera quedado con Vista pero .. uno es como es 🙂 Así que aquí me tenéis escribiendo esto, desde mi flamante Dell INspiron 6400 con Windows XP …. adios Windows Vista!!

Pero no puedo acabar sin comentar una utilidad de Windows Vista que me ha encantado y que fue la que me ha tenido este tiempo sin formatear el equipo. Me estoy refiriendo a la barra de búsqueda en menú de Inicio: ya no hace falta saber dónde está cada cosa, con sólo buscar su nombre nos lo encuentra. Sé que esto depende de las carpetas que tenga Windows indexadas pero, en lo referente a esta utilidad, debo darles un 10 a la gente de Microsoft, se lo han ganado.

Windows Vista y el Master Boot Record

Aviso: quizás el contenido de este artículo no sea muy fácil de leer para lectores sin conocimientos de informática. Así todo, si eres uno de ellos y quieres leerlo, adelante 🙂

Este fué el tema que más me llamó la atención de la charla en la que nos presentaron esta nueva versión de Windows. Alberto, el ponente, nos avisó de un posible problema que se ha de tener en cuenta a la hora de actualizar a Windows Vista: la actualización desde Windows XP a Vista no es fácilmente reversible (por lo menos no tan fácilmente como era hasta ahora). El motivo que nos dió el ponente, que más tarde os comento, no me dejó satisfecho y no sé si es del todo cierto. Analicemos lo que dice parte de la documentación de Microsoft [1]:

Windows Vista usa un nuevo almacén de base de datos de configuración de arranque (BCD, Boot Configuration Database). Este almacén contiene un menú de arranque y toda la información acerca de los sistemas operativos que están instalados en el equipo. Por lo tanto, para iniciar Windows Vista no se puede usar un archivo Boot.ini que sea de una versión anterior del sistema operativo Windows.

En las versiones anteriores del sistema operativo Windows que se ejecutan en un equipo basado en el sistema básico de entrada/salida (BIOS, Basic Input/Output System), como Windows XP, el proceso de arranque se inicia con el BIOS del sistema. El BIOS determina el dispositivo de arranque y, después, carga el primer sector físico. Este sector físico se conoce como el registro de arranque maestro (MBR, Master Boot Record) [2]. El MBR contiene la tabla de particiones y el código de ejecución de arranque necesario. Este código busca en la tabla de particiones las particiones activas y pasa el control al sector de arranque en la partición activa. Después, el sector de arranque de la partición activa carga el programa Ntldr.exe. El programa Ntldr.exe analiza el archivo Boot.ini [3]. Este archivo se usa para enumerar los sistemas operativos que están instalados.

Cuando Windows Vista se inicia en un equipo basado en el BIOS, el BIOS carga el MBR y luego el sector de arranque. Sin embargo, el código de arranque carga el nuevo programa Administrador de arranque de Windows (Bootmgr.exe). Este programa analiza el archivo Boot.ini decimal codificado en binario (BCD), enumera los sistemas operativos instalados y muestra el menú de arranque. Si se ha instalado una versión anterior del sistema operativo Windows en una configuración de arranque dual con Windows Vista, el programa Administrador de arranque de Windows transfiere el control al programa Ntldr.exe de la versión anterior del sistema operativo Windows. El Administrador de arranque de Windows hace esto al seleccionar Windows Vista en el menú de arranque.

Cuando instala una versión anterior del sistema operativo Windows en un equipo basado en Windows Vista, el programa de instalación sobrescribe todo lo que hay en el MBR, el sector de arranque y los archivos de arranque. Por lo tanto, la versión anterior del sistema operativo Windows ha perdido la compatibilidad con las siguientes versiones, en este caso con Windows Vista.

Es momento de recuperar el motivo del artículo, la reintalación de una versión anterior a Vista en un equipo con Windows Vista en marcha. Alberto nos comentó que si hacemos esto, el proceso de instalación de Windows XP sobre un Vista, por ejemplo, se desarrollaría sin problemas, se copiarían los ficheros necesarios y que, a la hora de reiniciar la máquina, nos encontraríamos con una bonita pantalla negra. Su explicación es que las modificaciones hechas por Windows Vista (la escritura del MBR para que apunte al sector de arranque de la partición aciva y que luego se busque el botmgr para arrancar definitivamente el sistema) no son completamente deshechas durante el proceso de reinstalación de Windows XP. PERO esto choca frontalmente con lo acabamos de leer que dice la propia gente de Microsoft:

Cuando instala una versión anterior del sistema operativo Windows en un equipo basado en Windows Vista, el programa de instalación sobrescribe todo lo que hay en el MBR, el sector de arranque y los archivos de arranque. Por lo tanto, la versión anterior del sistema operativo Windows ha perdido la compatibilidad con las siguientes versiones, en este caso con Windows Vista.

Si que está claro que si lo instalamos en sistema de arranque dual tendremos que tener cuidado y que, como siempre hacemos, instalemos en el sistema operativo más nuevo en último lugar y que si, estando en esta situación, queremos desintalar Windows Vista tendremos que tener mucho cuidado para revertir los cambios del MBR, sector de arranque y demás [4] pero de ahí a concluir lo que dice Alberto no lo veo tan claro.

Me gustaría que alguien que lo haya probado nos cuente su experiencia, en cuanto pueda hacerlo yo os lo cuento. Mientras tanto, pasadlo bien 🙂

[1] Problemas en arranque dual con Windows XP, http://support.microsoft.com/kb/919529
[2] Master Boot Record: http://es.wikipedia.org/wiki/Master_Boot_Record
[3] Boot.ini http://support.microsoft.com/kb/314081/es
[4] Problemas en arranques duales II, http://support.microsoft.com/kb/927817/es
[5] Restaurar versiones actuales de Windows: http://support.microsoft.com/kb/927522/en-us
[6] Problemas en arranques duales III, http://support.microsoft.com/kb/930132/es

Instalación de Windows Vista, hardware y optimización

De todo lo que en la charla se comentó del proceso de instalación y de optimización, os paso a comentar algunas cosas que me llamaron la atención. Para ser sincero, la que más me llamó la atención fue el problema de regresa a una versión anterior de Windows después de haber instalado Windows Vista. Pero este tema lo quiero tratar por separado 🙂

Imágenes WIM

Windows Vista introduce WIM (Microsoft Windows Imaging Format) [1] como nuevo formato para la creación de imágenes de restauración. Lo nuevo de WIM, entre otras características, es que está basada en fichero no en sectores lo que permite que sea independiene del hardware y que pueda almacenarse varias imágenes en un mismo fichero. Para la configuración y edición de las imágenes WIM se ha creado ImageX [1] y [2], una herramienta en modo consola.

El verdadero lugar para apreciar esta nueva funcionalidad es en un entorno empresarial, en el que hay cientos de máquinas con diversas configuraciones para las que se guardan imágenes de restauración. Imaginad una empresa con 1000 equipos, no todos iguales. Imaginad que el mantenimiento en estas maquinas se realiza con 70 imágenes para otras tantas configuraciones de hardware diferentes. Con Windows Vista y las imágenes WIM podremos ahorrarnos todas ellas y crear una imágen WIM única que podremos editar con ImageX para adecuarla a diversos escenarios y así dar soporte a las configuraciones que necesitemos… o por lo menos eso dicen los de Microsoft. Como comentario final deciros, que el tamaño de estas imágenes no es nada despreciable ya que, según el compañero que nos dió la charla, ronda los 5GB.

Copias de seguridad

Hablando de la herramienta de Copias de Seguridad [3], os rescato las palabras del ponente de la charla: ‘esta herramienta es una aplicación de copias de seguridad porque un Sistema Operativo debe tenerlo‘ ya que casi se limita a un simple volcado de la información en el dispositivo de almacenamiento con un ratio de compresión mínimo.

Optimización

A pesar de que para una correcto uso de Windows Vista se necesitan un recursos dados [4] y [5] , quizás más de lo que a alguno nos gustaría, es posible instalarlo en máquinas con menos recursos. Esto es posible porque, en las fases finales del proceso de instalación, Vista ejecuta un examen de los recursos del sistema y decide, en función de ellos, qué aplicaciones y complementos podremos ejecutar y cómo debe hacerlo. Por ejemplo: si al instalar y autoconfigurarse, Vista detecta que no tienes los recursos necesarios para ejecutar su nuevo entorno gráfico "aero" nos lo desactivará para que no lo usemos.

Para medir la adecuación del hardware de nuestras máquinas a la exigencias de Windows Vista, la gente de Microsoft ha ideado lo que ellos llaman el nivel de satisfacción, que no es más que un indicador numérico, del 1 al 10, que nos indica la cerca o lejos que nos encontramos de los requirimientos de hardware exigidos para la ejecución óptima de Vista. Si bien es cierto que no hace falta tener un 5 en el ‘nivel de satisfacción’ para poder ejecutar Windows Vista, cuanto más cerca estemos del 10 más de las nuevas opciones de Windows Vista podremos utilizar.

Cambiando de tercio, comentar que hasta la versión de Windows XP, esta incluida, el archivo de paginación era un único fichero gestionado completamente por el sistema operativo, lo que impedía definir su ubicación. En esta nueva versión de Windows se permite la definición de la localización del mismo y, además para facilitar la gestión de la información, se ha dividido en varios ficheros.  Esto no es cierto ya que en Windows XP ya se permitía definir varios ficheros de paginación y definir la localización de cada uno de ellos [6]  Esta capacidad se ha visto complementada con la nueva opción de incremento de recursos mediante la posibilidad de uso de dispositivos USB removibles como lugar temporal de almacenamiento de una parte de dicho fichero de paginación, lo que llaman ReadyBoost [7]. Esto nos puede proporcionar una ampliación extra de recursos pero tiene el peligro de olvidarse de borrar, al desconectarlo, la información, con quizás información crítica, que el sistema ha almacenado en él. Como aviso, deciros que la posibilidad de utilizar esta capacidad de Vista no depende de que la unidad USB sea más o menos nueva sino de su chip. Conectad la vuestra y probad.

[1] http://technet.microsoft.com/en-us/windowsvista/aa905070.aspx
[2] http://en.wikipedia.org/wiki/ImageX
[3] http://www.microsoft.com/windows/products/windowsvista/features/details/completepcbackup.mspx
[4] http://www.microsoft.com/windows/products/windowsvista/editions/systemrequirements.mspx
[5] http://support.microsoft.com/kb/919183
[6] http://support.microsoft.com/kb/314482/es
[7] http://www.microsoft.com/windows/products/windowsvista/features/details/readyboost.mspx