domingo, abril 06, 2014

FLISOL 2014 - Festival Latinoamericano de Instalación de Software Libre

El grupo de usuarios de Software Libre de la Universidad de Luján -UNLUX- invita a toda la comunidad a participar de la edición 2014 del FLISOL - Festival Latinoamericano de Instalación de Software Libre en la ciudad de Luján, a llevarse a cabo el día sábado 26 de abril, en concordancia con numerosas ciudades de Argentina y el continente. Las actividades se desarrollaran en la Sede Central de la Universidad Nacional de Luján (UNLu) a partir de las 13:00 hs.

Al igual que en ediciones anteriores, los integrantes del grupo instalarán Software Libre (GNU/Linux, Firefox, etc.) de forma gratuita y totalmente legal en los equipos informáticos que los asistentes acerquen al encuentro.

Durante la ejecución del mismo se ofrecerán charlas informativas y técnicas sobre diferentes aspectos relacionados con el Software Libre. Los invitamos a participar acercando sus equipos tanto para la instalación de Software Libre, la resolución de problemas sobre instalaciones existentes o simplemente para participar de una jornada distinta para intercambiar experiencias sobre Software Libre o compartir una tarde en un ambiente agradable.

Sobre el FLISOL

El Festival Latinoamericano de Instalación de Software Libre es un evento que se viene desarrollando de forma anual desde hace casi una década, donde se promueve el trabajo colaborativo ayudando a personas a conocer el mundo del Software Libre.

Está organizado por varios grupos de usuarios de los países involucrados congregados alrededor de esta iniciativa que reúne participantes de Argentina, Bolivia, Brasil, Chile, Colombia, Cuba, Ecuador, El Salvador, Guatemala, Honduras, México, Nicaragua, Panamá, Paraguay, Perú, Uruguay y Venezuela, entre otros. En Argentina ya está confirmada la realización de FLISOL en distintas ciudades.

El encuentro está dirigido a todas las personas que desean conocer más sobre software libre, instalarlo y usar sus computadoras preservando sus libertades, en condiciones de legalidad y sin estar preocupados por virus y otros problemas comunes del software privativo. Durante la jornada, se realizan instalaciones en forma totalmente gratuita, mientras que en paralelo se ofrecen diversas charlas de divulgación para promover el uso y la filosofía del Software Libre.

Cronograma de Charlas

El cronograma de charlas se está actualizando constantemente. Revisa los sitios flisol.info/FLISOL2014/Argentina/Lujan o www.unlux.com.ar para estar al tanto de las novedades.

Inscripción

Llenando este formulario, nos ayudas a estimar la asistencia de público y preparar mejor los espacios disponibles:

http://eventosimple.net/event/sp/publication/flisol-unlu/register

Sin embargo, la entrada es libre y gratuita, no es necesario registrarse para asistir a las charlas. Si pensás traer un equipo para instalar o configurar, por favor registrate y lee detenidamente las aclaraciones y datos al respecto.

Sobre el UNLUX

El UNLUX es un grupo de usuarios y entusiastas del Software Libre, que existe desde el 2005 y realiza sus actividades en el marco de la Universidad Nacional de Luján. Participa en el FLISOL desde el 2006, instalando y difundiendo diferentes ventajas de usar el Software Libre en el ámbito Educativo, Social, Técnico, Profesional y Personal.

Para conocer las vías de comunicación, podés empezar por www.unlux.com.ar y suscribirte a la lista de correo y el canal IRC.

En agenda

jueves, febrero 27, 2014

Fin de semana

Boulet otra vez refleja la vida mejor que uno mismo.

Press START !!
Me pregunto... ¿cómo hace para meterse en mis pensamientos?

domingo, febrero 23, 2014

Analizando ejecutables de Windows con software libre

Tras haber repasado durante la creación de gpefile.py las estructuras internas del formato Portable Executable (PE) que describe a los ejecutables de Windows, otro de los pet projects en los que he picado código es un sencillo generador de gráficos de flujo de control (control flow graphs) para comprender el flujo de ejecución de los binarios de dicha plataforma.

Haciendo uso de pefile, pygraphviz y principalmente pymsasid, con unas 400 líneas de python es posible partir de un ejecutable cualquiera y obtener un gráfico como el siguiente.

autochk-fragment2autochk - full image (big!) - dot file

Desde luego este es un ejemplo extremadamente sencillo y trivial, analizando el binario autochk.exe de ReactOS 0.3.16, un sistema operativo binary-compatible con Windows. El gráfico de flujo de control para un ejecutable moderno crece rápidamente a raíz de los distintos caminos que el compilador debe generar para representar las instrucciones presentes en el código fuente original de la utilidad (autochk.c.

El diagrama siguiente fue construido a partir del ejecutable hideflag.exe, que es un código histórico en este blog. He marcado en amarillo el bucle principal que se puede apreciar en el código fuente de la aplicación (en pascal, esta vez).

hideflag-fragment2hideflag -full image (big!) - dot file

Para el despliegue de los gráficos, dado que los visores en Debian se mambean con imagenes de varios megapíxeles (bugs 581891 y 163090 ya reportados en varios lugares), les recomiendo descargar los archivos .dot originales y visualizarlos directamente con la excelente utilidad xdot (también hecha en python, de paso).

En el diagrama, cada bloque básico inicia con un punto de entrada (primera instrucción a ejecutar, EIP, o destino de un salto) y finaliza con otro salto, una instrucción de retorno (ret), o bien abruptamente como resultado de un límite impuesto arbitrariamente por mí (esto último para evitar generar gráficos grandes con los cuales dot se marea, y créanme que algunos tardan más de diez minutos en desplegarse).

El bloque marcado en verde es comúnmente el primero en ejecutarse. Las flechas de colores indican, obviamente, el flujo de ejecución posible. Los códigos son los siguientes:
  • Flechas azules salto incondicional;
  • Flechas negras continuación/fall-thru (instrucción que sigue directamente a la actual);
  • Flechas violetas llamada a función (sólo la ida, se asume que la llamada a función retorna a la instrucción siguiente);
  • Flechas verdes bloque a ejecutar en un salto condicional si la condición evaluada resulta verdadera;
  • Flechas rojas bloque a ejecutar en un salto condicional si la condición evaluada resulta falsa;
  • Flechas celestes callback al que apunta algún argumento del código (no implica que la función sea llamada en ese momento)
Las flechas punteadas representan saltos encadenados (JMP-to-JMP) que suelen verse en los binarios y que el script trata de reducir a fin de simplificar las secuencias en los gráficos generados (de ahí que el destino no coincida con las dirección del salto original, pero a la larga termina allí).

En algunas instrucciones, si el operador es una dirección de memoria válida y refiere a la sección de datos del ejecutable, el script añade el contenido de dicha dirección como comentario a la instrucción desensamblada (útil para ver cadenas de formato pasados como parámetro a llamadas a impresión en pantalla); si en cambio refiere a la sección de código, interpreta que se trata de un puntero a función utilizada como callback. De forma similar, trata de interpretar las llamadas a funciones de bibliotecas (resumiendo CALL y CALL-to-JMP) mediante información existente en la IAT si estuviera disponible.

Desde ya, el código que genera estos gráficos tiene innumerables errores y limitaciones (ej, evaluación de saltos indirectos, mejor detección de callbacks, interpretación de loop/loopX y muchas más cosas). En resumen, es sumamente borrador, por eso no lo puse en línea con esta entrada. En realidad lo estoy utilizando como preprocesador para una fase siguiente de decompilación. En cuanto lo tenga mas o menos prolijo lo subo a una cuenta de github, por si a alguno le interesa. También me va a servir a mí para acostumbrarme a usar ese servicio, hehe.

Lo curioso de todo es lo cómodo que resulta Debian para hacer análisis de ejecutables de Windows, jaj.

viernes, febrero 14, 2014

Traducción completa del manual del administrador de Debian

Raphaël Hertzog anunció la disponibilidad de las traducciones completas en Español y Francés del libro "The Debian Administrator's Handbook, Debian Wheezy from Discovery to Mastery" que escribiera en co-autoría con Roland Mas. Al día de hoy es quizás la referencia más completa, actualizada -y correcta, además- del sistema operativo Debian en su versión 7 (Wheezy).

La traducción en español fue llevada a cabo por Matías Bellone, Adrià García-Alzórriz, Rene Saavedra y otros colaboradores.

El libro puede adquirirse en papel, en digital, consultarse gratuitamente en línea o leerse localmente instalando el paquete debian-handbook (en este último caso, en inglés).

martes, enero 28, 2014

Desensamblando binarios en línea

Analizando un firmware desconocido? No tenés a mano nasm/ndisasm? No te acordás los opcodes de memoria?

Online Disassembler es el sueño de todo hacker: un desensamblador en línea. ODA soporta una gran cantidad de arquitecturas y tiene las heurísticas necesarias para interpretar la estructura de muchos archivos binarios (PE, ELF, etc.). Permite subir uno o varios archivos, o bien escribir los bytes en el cuadro de texto para ver qué representan.

Probemos con esto. A qué código C correspondería la siguiente secuencia?
55 89 e5 d9 45 08 d8 45 0c d9 05 a0 84 04 08 de f9 5d c3
Tips: la arquitectura es 32 bits, y en el valor almacenado en ds:0x80484a0 es 2.0 (en IEEE754 binary32). Facilísimo.

Pero ODA no es el único desensamblador en línea. Pym's es un proyecto similar, hecho en python y también permite subir un archivo, desensamblarlo y navegar el código, aunque es más limitado en cuanto a las arquitecturas y tipos de archivo soportados. Aún así, es otra opción a considerar.

Bien, solo eso por ahora. Happy reversing!

viernes, enero 24, 2014

Benchmark day 2: WD Caviar Red 1TB (WDC WD10EFRX-68JCSN0)

Esta es la segunda de la serie de pruebas a discos rígidos, esta vez contra el disco del equipo personal. Siguen las especificaciones y más abajo los resultados por si a alguno le interesa. He remarcado los datos más relevantes.

Western Digital Caviar Red 1TB
Modelo: WDC WD10EFRX-68JCSN0
Capacidad: 1 TB
Interfaz: SATA III
Caché: 64 MB
Velocidad: variable según la serie
Tamaño de sector: 4K físico, 512 lógico
 
# hdparm -I /dev/sda
ATA device, with non-removable media
 Model Number:       WDC WD10EFRX-68JCSN0                    
 Serial Number:      [REDACTED]
 Firmware Revision:  01.01A01
 Transport:          Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
 Supported: 8 7 6 5 
 Likely used: 8
Configuration:
 Logical  max current
 cylinders 16383 16383
 heads  16 16
 sectors/track 63 63
 --
 CHS current addressable sectors:   16514064
 LBA    user addressable sectors:  268435455
 LBA48  user addressable sectors: 1953525168
 Logical  Sector size:                   512 bytes
 Physical Sector size:                  4096 bytes
 Logical Sector-0 offset:                  0 bytes
 device size with M = 1024*1024:      953869 MBytes
 device size with M = 1000*1000:     1000204 MBytes (1000 GB)
 cache/buffer size  = unknown
Capabilities:
 LBA, IORDY(can be disabled)
 Queue depth: 32
 Standby timer values: spec'd by Standard, with device specific minimum
 R/W multiple sector transfer: Max = 16 Current = 16
 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
      Cycle time: min=120ns recommended=120ns
 PIO: pio0 pio1 pio2 pio3 pio4 
      Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
 Enabled Supported:
    * SMART feature set
      Security Mode feature set
    * Power Management feature set
    * Write cache
    * Look-ahead
    * Host Protected Area feature set
    * WRITE_BUFFER command
    * READ_BUFFER command
    * NOP cmd
    * DOWNLOAD_MICROCODE
      Power-Up In Standby feature set
    * SET_FEATURES required to spinup after power up
      SET_MAX security extension
    * 48-bit Address feature set
    * Device Configuration Overlay feature set
    * Mandatory FLUSH_CACHE
    * FLUSH_CACHE_EXT
    * SMART error logging
    * SMART self-test
      Media Card Pass-Through
    * General Purpose Logging feature set
    * 64-bit World wide name
    * URG for READ_STREAM[_DMA]_EXT
    * URG for WRITE_STREAM[_DMA]_EXT
    * IDLE_IMMEDIATE with UNLOAD
    * WRITE_UNCORRECTABLE_EXT command
    * {READ,WRITE}_DMA_EXT_GPL commands
    * Segmented DOWNLOAD_MICROCODE
    * Gen1 signaling speed (1.5Gb/s)
    * Gen2 signaling speed (3.0Gb/s)
    * Gen3 signaling speed (6.0Gb/s)
    * Native Command Queueing (NCQ)
    * Host-initiated interface power management
    * Phy event counters
    * Idle-Unload when NCQ is active
    * NCQ priority information
    * unknown 76[15]
    * DMA Setup Auto-Activate optimization
      Device-initiated interface power management
    * Software settings preservation
    * SMART Command Transport (SCT) feature set
    * SCT LBA Segment Access (AC2)
    * SCT Error Recovery Control (AC3)
    * SCT Features Control (AC4)
    * SCT Data Tables (AC5)
      unknown 206[7]
      unknown 206[12] (vendor specific)
      unknown 206[13] (vendor specific)
Security: 
 Master password revision code = 65534
  supported
 not enabled
 not locked
  frozen
 not expired: security count
  supported: enhanced erase
 140min for SECURITY ERASE UNIT. 140min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 50014ee209106fb8
 NAA  : 5
 IEEE OUI : 0014ee
 Unique ID : 209106fb8
Checksum: correct
 
# smartctl -x /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.13.0] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     WDC WD10EFRX-68JCSN0
Serial Number:    [REDACTED]
LU WWN Device Id: 5 0014ee 209106fb8
Firmware Version: 01.01A01
User Capacity:    1.000.204.886.016 bytes [1,00 TB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Tue Jan 21 20:01:34 2014 ART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x00) Offline data collection activity
                                        was never started.
                                        Auto Offline Data Collection: Disabled.
Self-test execution status:      (   0) The previous self-test routine completed
                                        without error or no self-test has ever 
                                        been run.
Total time to complete Offline data collection: (13320) seconds.
Offline data collection capabilities:
                                        (0x7b) SMART execute Offline immediate.
                                        Auto Offline data collection on/off support.
                                        Suspend Offline collection upon new command.
                                        Offline surface scan supported.
                                        Self-test supported.
                                        Conveyance Self-test supported.
                                        Selective Self-test supported.
SMART capabilities:            (0x0003) Saves SMART data before entering power-saving mode.
                                        Supports SMART auto save timer.
Error logging capability:        (0x01) Error logging supported.
                                        General Purpose Logging supported.
Short self-test routine recommended polling time:        (   2) minutes.
Extended self-test routine recommended polling time:     ( 152) minutes.
Conveyance self-test routine recommended polling time:   (   5) minutes.
SCT capabilities:         (0x30bd) SCT Status supported.
                                        SCT Error Recovery Control supported.
                                        SCT Feature Control supported.
                                        SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR-K   200   200   051    -    0
  3 Spin_Up_Time            POS--K   138   133   021    -    4058
  4 Start_Stop_Count        -O--CK   100   100   000    -    47
  5 Reallocated_Sector_Ct   PO--CK   200   200   140    -    0
  7 Seek_Error_Rate         -OSR-K   200   200   000    -    0
  9 Power_On_Hours          -O--CK   098   098   000    -    1920
 10 Spin_Retry_Count        -O--CK   100   253   000    -    0
 11 Calibration_Retry_Count -O--CK   100   253   000    -    0
 12 Power_Cycle_Count       -O--CK   100   100   000    -    47
192 Power-Off_Retract_Count -O--CK   200   200   000    -    21
193 Load_Cycle_Count        -O--CK   200   200   000    -    25
194 Temperature_Celsius     -O---K   112   105   000    -    31
196 Reallocated_Event_Count -O--CK   200   200   000    -    0
197 Current_Pending_Sector  -O--CK   200   200   000    -    0
198 Offline_Uncorrectable   ----CK   100   253   000    -    0
199 UDMA_CRC_Error_Count    -O--CK   200   200   000    -    0
200 Multi_Zone_Error_Rate   ---R--   100   253   000    -    0
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

SMART Extended Comprehensive Error Log Version: 1 (6 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SCT Status Version:                  3
SCT Version (vendor specific):       258 (0x0102)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    31 Celsius
Power Cycle Min/Max Temperature:     27/37 Celsius
Lifetime    Min/Max Temperature:     19/38 Celsius
Under/Over Temperature Limit Count:   0/0
SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        1 minute
Min/Max recommended Temperature:      0/60 Celsius
Min/Max Temperature Limit:           -41/85 Celsius
Temperature History Size (Index):    478 (350)

SCT Error Recovery Control:
           Read:     70 (7,0 seconds)
          Write:     70 (7,0 seconds)

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x0001  2            0  Command failed due to ICRC error
0x0002  2            0  R_ERR response for data FIS
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0005  2            0  R_ERR response for non-data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS
0x0008  2            0  Device-to-host non-data FIS retries
0x0009  2        33157  Transition from drive PhyRdy to drive PhyNRdy
0x000a  2           45  Device-to-host register FISes sent due to a COMRESET
0x000b  2            0  CRC errors within host-to-device FIS
0x000f  2            0  R_ERR response for host-to-device data FIS, CRC
0x0012  2            0  R_ERR response for host-to-device non-data FIS, CRC
0x8000  4       523088  Vendor specific
He resaltado el contador de ciclos de carga (Load Cycle Count) puesto que es un dato a tener presente ya que otras series de discos de WD, vale decir, los Caviar Green, han tenido problemas al utilizar una política de ahorro de energía demasiado agresiva que reduce el tiempo de vida de la unidad. En este disco, por suerte, el conteo de ciclos parece bastante normal.
 
# hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   26724 MB in  2.00 seconds = 13374.46 MB/sec
 Timing buffered disk reads: 422 MB in  3.01 seconds = 140.12 MB/sec
 
$ dd if=/dev/zero of=archivo.img count=1K bs=1M conv=fdatasync
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 9.80654 s, 109 MB/s
Las pruebas de lectura con hdparm y con dd. Cuanto más velocidad indiquen, mejor, por supuesto.
 
palimpsest - Prueba de rendimiento de solo lectura (clic para agrandar)
Este gráfico representa la velocidad de lectura y el tiempo de acceso en distintas partes del disco, desde los sectores más externos al plato (parte izquierda) hasta los más cercanos al eje (parte derecha). La línea azul representa la velocidad de lectura (asociada a la escala izquierda), mientras que los puntos verdes representan los tiempos de acceso en distintas ubicaciones del disco (asociada a la escala derecha).
Es notable la diferencia en la velocidad de lectura que existe al operar con los primeros sectores respecto de los últimos: 155 MB/s contra 70 MB/s. Como curiosidad, a su vez, se puede advertir que los sectores del centro del plato tienen un tiempo de acceso ligeramente más uniforme.
 
$ bonnie++
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
hc-maurom       16G  1229  95 114703  11 52129   4  6031  88 154671   7 102.4   2
Latency              8984us    2427ms     688ms   22552us     122ms     731ms
Version  1.96       ------Sequential Create------ --------Random Create--------
hc-maurom           -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 26100  22 +++++ +++ 25978  16 +++++ +++ +++++ +++ +++++ +++
Latency             26012us     340us     771us      42us       9us      26us
Los resultados de bonnie++ son bastante completos. Además de hacer mediciones de entrada/salida sobre el disco, mide también operaciones sobre el sistema de archivos (que por ahora no reviso). Lo relevante son las tasas de escritura y lectura en bloques, la cantidad de búsquedas por segundo (más es mejor) y la latencia de las mismas (menos es mejor).
 
Todas las pruebas fueron realizadas sobre una partición ext4.

Press START: sólo para nostálgicos

Esto ya es noticia vieja, pero no puedo dejar de republicarlo.

El usuario de YouTube NicksplosionFX se tomó el arduo trabajo de armar un video con la pantalla de inicio de casi todos los videojuegos desarrollados para el viejo sistema NES de Nintendo, que fue más conocido aquí con las consolas clones FamiCon / Family Game.

El video comprende más de 709 pantallas de inicio ordenados alfabéticamente por el título del juego, con su correspondiente música y animación, en un clip que dura casi tres horas. Buceando en algunos minutos pude cruzarme con varios de los grandes títulos que entretuvieron mi niñez, y estoy seguro de que muchos que están rondando los treinta reconocerán la música de apertura de sus títulos favoritos.

Va entonces, gráfica y sonido de 8-bits para todos aquellos nostálgicos como yo.

jueves, enero 23, 2014

Benchmark day 1: Seagate Barracuda 500GB (ST500DM002-1BD142)

En una charla con un viejo amigo sobre discos rígidos actuales puse de ejemplo algunos a los que he tenido acceso habitualmente. A partir de eso se me ocurrió tratar de determinar qué diferencia de rendimiento hay entre los discos de mi equipo hogareño y mi estación de trabajo, por lo que recurrí a las tradicionales herramientas de prueba en Linux.

La primera prueba va contra el disco de la estación de trabajo, siguen las especificaciones y más abajo los resultados por si a alguno le interesa. He remarcado los datos más relevantes.

Seagate Barracuda 500GB
Modelo: ST500DM002-1BD142
Capacidad: 500 GB
Interfaz: SATA III
Caché: 16 MB
Velocidad: 7200 RPM
Tamaño de sector: 4K físico, 512 lógico

# hdparm -I /dev/sda
ATA device, with non-removable media
 Model Number:       ST500DM002-1BD142                       
 Serial Number:      [REDACTED]
 Firmware Revision:  KC45    
 Transport:          Serial, SATA Rev 3.0
Standards:
 Used: unknown (minor revision code 0x0029) 
 Supported: 8 7 6 5 
 Likely used: 8
Configuration:
 Logical  max current
 cylinders 16383 16383
 heads  16 16
 sectors/track 63 63
 --
 CHS current addressable sectors:   16514064
 LBA    user addressable sectors:  268435455
 LBA48  user addressable sectors:  976773168
 Logical  Sector size:                   512 bytes
 Physical Sector size:                  4096 bytes
 Logical Sector-0 offset:                  0 bytes
 device size with M = 1024*1024:      476940 MBytes
 device size with M = 1000*1000:      500107 MBytes (500 GB)
 cache/buffer size  = 16384 KBytes
 Nominal Media Rotation Rate: 7200
Capabilities:
 LBA, IORDY(can be disabled)
 Queue depth: 32
 Standby timer values: spec'd by Standard, no device specific minimum
 R/W multiple sector transfer: Max = 16 Current = 16
 Recommended acoustic management value: 208, current value: 208
 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 
      Cycle time: min=120ns recommended=120ns
 PIO: pio0 pio1 pio2 pio3 pio4 
      Cycle time: no flow control=120ns  IORDY flow control=120ns
Commands/features:
 Enabled Supported:
    * SMART feature set
      Security Mode feature set
    * Power Management feature set
    * Write cache
    * Look-ahead
    * Host Protected Area feature set
    * WRITE_BUFFER command
    * READ_BUFFER command
    * DOWNLOAD_MICROCODE
      SET_MAX security extension
    * Automatic Acoustic Management feature set
    * 48-bit Address feature set
    * Device Configuration Overlay feature set
    * Mandatory FLUSH_CACHE
    * FLUSH_CACHE_EXT
    * SMART error logging
    * SMART self-test
    * General Purpose Logging feature set
    * WRITE_{DMA|MULTIPLE}_FUA_EXT
    * 64-bit World wide name
      Write-Read-Verify feature set
    * WRITE_UNCORRECTABLE_EXT command
    * {READ,WRITE}_DMA_EXT_GPL commands
    * Segmented DOWNLOAD_MICROCODE
    * Gen1 signaling speed (1.5Gb/s)
    * Gen2 signaling speed (3.0Gb/s)
    * Gen3 signaling speed (6.0Gb/s)
    * Native Command Queueing (NCQ)
    * Phy event counters
    * unknown 76[15]
      Device-initiated interface power management
    * Software settings preservation
    * SMART Command Transport (SCT) feature set
    * SCT Long Sector Access (AC1)
    * SCT LBA Segment Access (AC2)
    * SCT Error Recovery Control (AC3)
    * SCT Features Control (AC4)
    * SCT Data Tables (AC5)
      unknown 206[12] (vendor specific)
      unknown 206[13] (vendor specific)
Security: 
 Master password revision code = 65534
  supported
 not enabled
 not locked
  frozen
 not expired: security count
  supported: enhanced erase
 78min for SECURITY ERASE UNIT. 78min for ENHANCED SECURITY ERASE UNIT. 
Logical Unit WWN Device Identifier: 5000c5005022a977
 NAA  : 5
 IEEE OUI : 000c50
 Unique ID : 05022a977
Checksum: correct

# smartctl -x /dev/sda
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.13.0] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF INFORMATION SECTION ===
Device Model:     ST500DM002-1BD142
Serial Number:    [REDACTED]
LU WWN Device Id: 5 000c50 05022a977
Firmware Version: KC45
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Sizes:     512 bytes logical, 4096 bytes physical
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   8
ATA Standard is:  ATA-8-ACS revision 4
Local Time is:    Wed Jan 22 08:13:16 2014 ART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status:  (0x82)    Offline data collection activity
                                           was completed without error.
                                           Auto Offline Data Collection: Enabled.
Self-test execution status:      (   0)    The previous self-test routine completed
                                           without error or no self-test has ever
                                           been run.
Total time to complete Offline data collection:         (  600) seconds.
Offline data collection capabilities:
                                    (0x7b) SMART execute Offline immediate.
                                           Auto Offline data collection on/off support.
                                           Suspend Offline collection upon new command.
                                           Offline surface scan supported.
                                           Self-test supported.
                                           Conveyance Self-test supported.
                                           Selective Self-test supported.
SMART capabilities:            (0x0003)    Saves SMART data before entering 
                                           power-saving mode.
                                           Supports SMART auto save timer.
Error logging capability:        (0x01)    Error logging supported.
                                           General Purpose Logging supported.
Short self-test routine recommended polling time:           (   1) minutes.
Extended self-test routine recommended polling time:        (  79) minutes.
Conveyance self-test routine recommended polling time:      (   2) minutes.
SCT capabilities:            (0x303f)    SCT Status supported.
                                         SCT Error Recovery Control supported.
                                         SCT Feature Control supported.
                                         SCT Data Table supported.

SMART Attributes Data Structure revision number: 10
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAGS    VALUE WORST THRESH FAIL RAW_VALUE
  1 Raw_Read_Error_Rate     POSR--   110   099   006    -    33944
  3 Spin_Up_Time            PO----   100   100   000    -    0
  4 Start_Stop_Count        -O--CK   100   100   020    -    28
  5 Reallocated_Sector_Ct   PO--CK   100   100   036    -    0
  7 Seek_Error_Rate         POSR--   073   060   030    -    22473249
  9 Power_On_Hours          -O--CK   094   094   000    -    5328
 10 Spin_Retry_Count        PO--C-   100   100   097    -    0
 12 Power_Cycle_Count       -O--CK   100   100   020    -    28
183 Runtime_Bad_Block       -O--CK   100   100   000    -    0
184 End-to-End_Error        -O--CK   100   100   099    -    0
187 Reported_Uncorrect      -O--CK   100   100   000    -    0
188 Command_Timeout         -O--CK   100   100   000    -    0
189 High_Fly_Writes         -O-RCK   100   100   000    -    0
190 Airflow_Temperature_Cel -O---K   061   054   045    -    39 (Min/Max 26/41)
194 Temperature_Celsius     -O---K   039   046   000    -    39 (0 16 0 0)
195 Hardware_ECC_Recovered  -O-RC-   044   026   000    -    33944
197 Current_Pending_Sector  -O--C-   100   100   000    -    0
198 Offline_Uncorrectable   ----C-   100   100   000    -    0
199 UDMA_CRC_Error_Count    -OSRCK   200   200   000    -    0
240 Head_Flying_Hours       ------   100   253   000    -    147261543683280
241 Total_LBAs_Written      ------   100   253   000    -    1601632265
242 Total_LBAs_Read         ------   100   253   000    -    3080541557
                            ||||||_ K auto-keep
                            |||||__ C event count
                            ||||___ R error rate
                            |||____ S speed/performance
                            ||_____ O updated online
                            |______ P prefailure warning

SMART Extended Comprehensive Error Log Version: 1 (5 sectors)
No Errors Logged

SMART Extended Self-test Log Version: 1 (1 sectors)
No self-tests have been logged.  [To run self-tests, use: smartctl -t]

SCT Status Version:                  3
SCT Version (vendor specific):       522 (0x020a)
SCT Support Level:                   1
Device State:                        Active (0)
Current Temperature:                    39 Celsius
Power Cycle Min/Max Temperature:     26/41 Celsius
Lifetime    Min/Max Temperature:     16/46 Celsius
Under/Over Temperature Limit Count:   0/0
SCT Temperature History Version:     2
Temperature Sampling Period:         1 minute
Temperature Logging Interval:        59 minutes
Min/Max recommended Temperature:     14/55 Celsius
Min/Max Temperature Limit:           10/60 Celsius
Temperature History Size (Index):    128 (77)

SCT Error Recovery Control:
           Read: Disabled
          Write: Disabled

SATA Phy Event Counters (GP Log 0x11)
ID      Size     Value  Description
0x000a  2           19  Device-to-host register FISes sent due to a COMRESET
0x0001  2            0  Command failed due to ICRC error
0x0003  2            0  R_ERR response for device-to-host data FIS
0x0004  2            0  R_ERR response for host-to-device data FIS
0x0006  2            0  R_ERR response for device-to-host non-data FIS
0x0007  2            0  R_ERR response for host-to-device non-data FIS

# hdparm -tT /dev/sda
/dev/sda:
 Timing cached reads:   24824 MB in  2.00 seconds = 12423.12 MB/sec
 Timing buffered disk reads: 402 MB in  3.01 seconds = 133.65 MB/sec

$ dd if=/dev/zero of=archivo.img count=1K bs=1M conv=fdatasync
1024+0 registros leídos
1024+0 registros escritos
1073741824 bytes (1,1 GB) copiados, 9,96082 s, 108 MB/s

palimpsest - Prueba de rendimiento de solo lectura (clic para agrandar)

$ bonnie++
Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
soda         15808M  1105  96 112638   7 45472   4  4853  74 151543   6 271.5   4
Latency             10287us     436ms    1531ms   85189us     151ms    1255ms
Version  1.96       ------Sequential Create------ --------Random Create--------
soda                -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 26311  22 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
Latency             57369us     312us     316us     292us      14us      77us

Todas las pruebas fueron realizadas sobre una partición ext4. Mañana van los resultados del otro disco.