En GNU/Linux existen muchas herramientas para obtener todo tipo de información de discos desde la línea de comandos, por ejemplo: fdisk, hdparm, df, lsblk, smartctl, entre otras.
fdisk
fdisk es la herramienta más conocida para manipular tablas de particiones, el parámetro "-l" permite listar todos los discos y sus particiones:
# fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000efc5a
Device Boot Start End Blocks Id System
/dev/sda1 * 1 124 995998+ 83 Linux
/dev/sda2 125 2614 20000925 83 Linux
/dev/sda3 2615 8839 50002312+ 83 Linux
/dev/sda4 8840 60801 417384765 5 Extended
/dev/sda5 8840 15064 50002281 83 Linux
/dev/sda6 15065 16309 10000431 83 Linux
/dev/sda7 16310 16807 4000153+ 82 Linux swap / Solaris
/dev/sda8 16808 60801 353381773+ 83 Linux
hdparm es una poderosa herramienta para obtener y setear parámetros de dispositivos SATA e IDE. Para listar información de un disco se puede utilizar la opción "-i":
# hdparm -i /dev/sda
/dev/sda:
Model=WDC, FwRev=15.01H15, SerialNo=WD-WCAYUU316558
Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=50
BuffType=unknown, BuffSize=16384kB, MaxMultSect=16, MultSect=off
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=976773168
IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=no WriteCache=enabled
Drive conforms to: Unspecified: ATA/ATAPI-1,2,3,4,5,6,7
* signifies the current active mode
Con esta herramienta se puede obtener el modelo, número de serie y características de un disco. Si se desea mayor detalle se debe utilizar la opción "-I":
# hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: WDC WD5000AAKX-001CA0
Serial Number: WD-WCAYUU316558
Firmware Revision: 15.01H15
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: 976773168
Logical/Physical Sector size: 512 bytes
device size with M = 1024*1024: 476940 MBytes
device size with M = 1000*1000: 500107 MBytes (500 GB)
cache/buffer size = 16384 KBytes
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 = 0
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
* General Purpose Logging feature set
* 64-bit World wide name
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* unknown 76[3]
* Native Command Queueing (NCQ)
* Host-initiated interface power management
* Phy event counters
* NCQ priority information
* DMA Setup Auto-Activate optimization
* Software settings preservation
* SMART Command Transport (SCT) feature set
* SCT Long Sector Access (AC1)
* SCT LBA Segment Access (AC2)
* 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
not frozen
not expired: security count
supported: enhanced erase
80min for SECURITY ERASE UNIT. 80min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50014ee1596829fa
NAA : 5
IEEE OUI : 0014ee
Unique ID : 1596829fa
Checksum: correct
Si se desea ver la configuración actual :
# hdparm /dev/sda
/dev/sda:
multcount = 0 (off)
IO_support = 1 (32-bit)
readonly = 0 (off)
readahead = 256 (on)
geometry = 60801/255/63, sectors = 976773168, start = 0
Es posible hacer un benchmark de transferencias de lectura de disco utilizando las opciones "-tT":
# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 7820 MB in 2.00 seconds = 3911.14 MB/sec
Timing buffered disk reads: 394 MB in 3.00 seconds = 131.15 MB/sec
df
df se utiliza para ver el uso de disco, con la opción "-h" se expresan las unidades en MB y GB:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 19G 864M 17G 5% /
tmpfs 1.9G 300K 1.9G 1% /dev/shm
/dev/sda1 958M 70M 839M 8% /boot
/dev/sda8 332G 99G 217G 32% /data
/dev/sda3 47G 786M 44G 2% /home
/dev/sda6 9.4G 5.1G 3.9G 57% /usr
/dev/sda5 47G 2.2G 43G 5% /var
proc
El sistema de archivos virtual proc se utiliza como interfaz a las estructuras de datos del kernel, se monta en /proc. El archivo "partitions" contiene información de particiones:
# cat /proc/partitions
major minor #blocks name
8 0 488386584 sda
8 1 995998 sda1
8 2 20000925 sda2
8 3 50002312 sda3
8 4 1 sda4
8 5 50002281 sda5
8 6 10000431 sda6
8 7 4000153 sda7
8 8 353381773 sda8
lsblk lista dispositivos de bloque, obtiene la información desde el sistema de archivos sysfs.
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465.8G 0 disk
├─sda1 8:1 0 972.7M 0 part /boot
├─sda2 8:2 0 19.1G 0 part /
├─sda3 8:3 0 47.7G 0 part /home
├─sda4 8:4 0 1K 0 part
├─sda5 8:5 0 47.7G 0 part /var
├─sda6 8:6 0 9.6G 0 part /usr
├─sda7 8:7 0 3.8G 0 part [SWAP]
└─sda8 8:8 0 337G 0 part /data
sr0 11:0 1 1024M 0 rom
findmnt
Lista todos los sistemas de archivos montados:
# findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/sda2 ext4 rw,relatime,barrier=1,data=ordered
├─/proc /proc proc rw,relatime
│ ├─/proc/bus/usb /proc/bus/usb usbfs rw,relatime
│ └─/proc/sys/fs/binfmt_misc binfmt_misc rw,relatime
├─/sys /sys sysfs rw,relatime
├─/dev udev devtmpfs rw,relatime,size=1904956k,nr_inodes=476239,mode=755
│ ├─/dev/pts devpts devpts rw,relatime,gid=5,mode=620,ptmxmode=000
│ └─/dev/shm tmpfs tmpfs rw,relatime
├─/boot /dev/sda1 ext4 rw,relatime,barrier=1,data=ordered
├─/data /dev/sda8 ext4 rw,relatime,barrier=1,data=ordered
├─/home /dev/sda3 ext4 rw,relatime,barrier=1,data=ordered
├─/usr /dev/sda6 ext4 rw,relatime,barrier=1,data=ordered
├─/var /dev/sda5 ext4 rw,relatime,barrier=1,data=ordered
│ └─/var/lib/nfs/rpc_pipefs sunrpc rpc_pipefs rw,relatime
├─/cgroup/cpuset cgroup cgroup rw,relatime,cpuset
├─/cgroup/cpu cgroup cgroup rw,relatime,cpu
├─/cgroup/cpuacct cgroup cgroup rw,relatime,cpuacct
├─/cgroup/memory cgroup cgroup rw,relatime,memory
├─/cgroup/devices cgroup cgroup rw,relatime,devices
├─/cgroup/freezer cgroup cgroup rw,relatime,freezer
├─/cgroup/net_cls cgroup cgroup rw,relatime,net_cls
├─/cgroup/blkio cgroup cgroup rw,relatime,blkio
├─/misc /etc/auto.misc autofs rw,relatime,fd=7,pgrp=1931,timeout=300,minproto=5,maxproto=5,indirect
└─/net -hosts autofs rw,relatime,fd=13,pgrp=1931,timeout=300,minproto=5,maxproto=5,indirect
smartctl
smartctl es una herramienta de control y monitoreo de discos S.M.A.R.T. (Self-Monitoring, Analysis and Reporting Technology)
# smartctl -i /dev/sda
smartctl 5.39.1 2010-01-28 r3054 [x86_64-unknown-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: WDC WD5000AAKX-001CA0
Serial Number: WD-WCAYUU316558
Firmware Version: 15.01H15
User Capacity: 500,107,862,016 bytes
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: Thu Jul 5 13:06:08 2012 ART
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
/proc/swaps y swapon
El archivo swaps contiene información de áreas de intercambio de memoria (swap)
# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda7 partition 4000144 0 -1
Se puede obtener la misma información con la herramienta swapon:
# swapon -s
Filename Type Size Used Priority
/dev/sda7 partition 4000144 0 -1
/etc/fstab
El archivo /etc/fstab contiene información estática sobre los sistemas de archivos. Es utilizado por los programas fsck, mount y umount para realizar tareas de escaneo, montaje y desmontaje automático, pero debe ser mantenido por el administrador del sistema.
# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Thu Jun 21 04:19:50 2012
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=1ab7ecf5-cb59-40d0-8d73-9156f8476a59 / ext4 defaults 1 1
UUID=13c40cb5-dba6-4b2a-81d8-9815ba2e663f /boot ext4 defaults 1 2
UUID=ac3b589f-1293-4b09-bc39-25d888eae6fd /data ext4 defaults 1 2
UUID=ddd6b6a3-a056-462b-ba2e-c4094feef828 /home ext4 defaults 1 2
UUID=b1db4302-a9e9-4ac5-babd-3e9cd63e20ef /usr ext4 defaults 1 2
UUID=97727fb1-c5ca-4d67-89a7-37b78ec7ae39 /var ext4 defaults 1 2
UUID=44aa80f7-f11b-4b15-915c-cef3dbda0f35 swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
mount
mount sin parámetros lista todos los sistemas de archivos montados:
# mount
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda8 on /data type ext4 (rw)
/dev/sda3 on /home type ext4 (rw)
/dev/sda6 on /usr type ext4 (rw)
/dev/sda5 on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/sys/block
El sistema de archivos virtual sysfs (se monta en /sys a partir del kernel Linux 2.6) exporta información sobre los dispositivos y sus controladores desde el modelo de dispositivos del núcleo hacia el espacio del usuario, también permite configurar parámetros. El directorio /sys/block contiene información de dispositivos de bloque, desde el cual es posible obtener estadísticas de cada dispositivo.
# cat /sys/block/sda/stat
172886 221722 17571050 626848 162761 10255327 85383238 64690504 0 855946 65317262
Columna 1: cantidad de lecturas realizadas de forma exitosa.
Columna 2 y 6: cantidad de lacturas/escrituras combinadas (las lecturas/escrituras adyacentes se combinan de forma eficiente para minimizar accesos a disco).
Columna 3: cantidad de sectores leídos.
Columna 4: cantidad de milisegundos utilizados por todas las lecturas.
Columna 5: cantidad de escrituras completadas.
Columna 7: cantidad de sectores escritos.
Columna 8: cantidad de milisegundos utilizados por todas las escrituras.
Columna 9: cantidad de operaciones de E/S (I/O) actualmente en progreso (debe ser igual a cero).
Columna 10: cantidad de milisegundos utilizados por operaciones de E/S.
Columna 11: cantidad de milisegundos que las operaciones de E/S han estado esperando en cola
Para mayor información sobre este tipo de estadísticas ver Block layer statistics in /sys/block/<dev>/stat.