Los discos duros
Sumario
Leer la informacion de los discos
- Para ello necesitamos tener instalado el programa smartmontools:
>> sudo aptitude install smartmontools
- Para ver si un disco duro (/dev/sda) soporta SMART:
>> sudo smartctl -i /dev/sda smartctl version 5.37 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen Home page is http://smartmontools.sourceforge.net/ === START OF INFORMATION SECTION === Model Family: Maxtor DiamondMax 10 family (SATA/300) Device Model: Maxtor 6V320F0 Serial Number: XXXXXXXX Firmware Version: VA111900 User Capacity: 320,072,933,376 bytes Device is: In smartctl database [for details use: -P show] ATA Version is: 7 ATA Standard is: ATA/ATAPI-7 T13 1532D revision 0 Local Time is: Sun Feb 17 23:32:24 2008 CET SMART support is: Available - device has SMART capability. SMART support is: Enabled
- Para mostrar toda la información:
>> sudo smartctl -a /dev/sda
Saber el uso de los disco duro
Para saber el uso de las particiones y dispositivos que tenemos en el pc podemos utilizar la comando df
df
S.ficheros Bloques de 1K Usado Dispon Uso% Montado en /dev/sda6 24027596 11366716 11440348 50% /dev/sda3 87891612 72896340 14995272 83% /COPIA /dev/sdb1 7826424 2908244 4918180 38% /media/8GB
Avisar de errores en disco
- Instalamos el notificador de fallos; éste es un programa que nos alertará en caso de que se produzcan fallos en el disco duro, mostrando una ventana. Para ello ejecutamos:
>> sudo aptitude install smart-notifier
- Ahora configuramos el demonio “smartd” para que se arranque al inicio del ordenador. Abrimos el fichero /etc/defaults/smartmontools yescomentamos la siguiente linea
start_smartd=yes
- Añadimos el ejecutable /usr/bin/smart-notifier para que se inicie con nuestra sesión de gnome. Vamos a Sistema -> Preferencias -> Sesiones, le damos al botón “Añadir” y ponemos los siguientes datos:
nombre: Smart Notifier comando: smart-notifier commentario: (Lo que queramos)
Después de estos pasos, la siguiente vez que arranquemos el ordenador tendremos el demonio smartd monitorizando los discos duros, y el script smart-notifier nos alertará en el caso de que ocurra algún error.
- Si queremos comprobar el correcto funcionamiento de la aplicación podemos ejecutar una prueba. Para ello abrimos el fichero /etc/smartd.conf y cambiar la línea que contiene DEVICESCAN por la siguiente:
DEVICESCAN -m root -M test -M exec /usr/share/smartmontools/smartd-runner
Esta línea añade la opción -M test, la cual generará un erro de prueba, y nos permitirá comprobar el buen funcionamiento del notificador. Ahora reiniciamos el demonio:
>> sudo /etc/init.d/smartmontools restart
Y nos debería de salir una ventana informando del test. Ahora que ya lo hemos probado tendremos que quitar la opción -M test del fichero /etc/smartd.conf que habíamos añadido antes.
Medición de la velocidad de lectura de un disco duro
>> sudo hdparm -t /dev/sdb1 /dev/sdb1: Timing buffered disk reads: 12 MB in 3.14 seconds = 3.82 MB/sec
Comprobar un disco duro
Checking disks for errors using the badblocks command
* badblocks * check * disk * error
For better or worse I’ve been needing to check drives for errors quite a bit recently and have been using the badblocks command to do it. It’s definitely a command that people should become familiar with. Where fsck checks the file system for problems, badblocks attempts to ascertain the status of physical media which can include hard disks, usb drives, and other usb devices such as media players. I’ve compiled a detailed list of commands I’ve been using.
- Read-only Test
This is a non-destructive read-only test which can be run on disk even if it contains a mounted filesystem. It simply verifies that each block can be read; it does not test for write errors.
>> sudo badblocks -s -v -c 10240 /dev/sdx o -s = show progress o -v = verbose mode o -c 10240 - check 10K blocks at a time
- Read-write Test
This test is non-destructive read-write test which reads each block, writes it, then verifies it. It should not be used on block devices with mounted filesystems as it can lead to filesystem corruption.
>> sudo badblocks -n -s -v -c 10240 /dev/sdx o -n = non-destructive read-write mode o -s = show progress o -v = verbose mode o -c 10240 - check 10K blocks at a time
- Write-mode Test
Using this command will erase all data on the device so only use it if that is what you want. This will write a few patterns to each block, verifying that each one is written and read correctly.
>> sudo badblocks -w -s -v -c 10240 /dev/sdx o -w = destructive write-mode test o -s = show progress o -v = verbose mode o -c 10240 - check 10K blocks at a time
- Prepare a disk for encryption
The command will completely erase the data on a disk and replace it with random data. This is often a preferred way to prepare a disk for encryption as it is faster than other methods of filling a disk with random data and serves the purpose of checking the disk for errors before the encryption process.
>> sudo badblocks -w -t random -s -v -c 10240 /dev/sdx o -w = destructive write-mode test o -t random = write random data onto the disk o -s = show progress o -v = verbose mode o -c 10240 - check 10K blocks at a time
Comprobar una particion
HFS+
- Instalamos el soporte de hfs+ a fsck:
Si lo tenemos en el repositorio:
>> sudo aptitude install hfsprogs
Si no lo tenemos en el repositorio:
>> sudo bash >> cd /usr/src >> mkdir hfsplus_support >> wget http://darwinsource.opendarwin.org/tarballs/apsl/diskdev_cmds-332.14.tar.gz >> wget http://www.ecl.udel.edu/~mcgee/diskdev_cmds/diskdev_cmds-332.14.patch.bz2 >> tar zxf diskdev_cmds-332.14.tar.gz >> bunzip2 -c diskdev_cmds-332.14.patch.bz2 | patch -p0 >> cd diskdev_cmds-332.14 >> make -f Makefile.lnx >> cp fsck_hfs.tproj/fsck_hfs /sbin/fsck.hfsplus >> cd /sbin >> ln -s fsck.hfsplus fsck.hfs
- Comprobamos la partición:
>> sudo fsck.hfsplus -r /dev/sda2
NTFS
>> ntfsresize -P -i -f -v /dev/sda5
>> ntfsresize -P --force --force /dev/sda5 --no-action
>> ntfsresize -P --force --force /dev/sda5
Cambiar las etiquetas de las particiones
Cambiar la etiqueta de una particion NTFS
Lo haremos con el programa ntfsprogs. Lo instalamos:
>> sudo aptitude install ntfsprogs
Ahora para cambiar la etiqueta de una partición /dev/sda1, la desmontaremos primero (si esta montada) y luego le pondremos la etiqueta:
>> sudo umount /dev/sda1 >> sudo ntfslabel /dev/sda1 NUEVO_NOMBRE
Cambiar la etiqueta de una particion FAT32
Lo haremos con el programa mtools. Lo instalamos:
>> sudo aptitude install mtools
Ahora para cambiar la etiqueta de una partición /dev/sda1, la desmontaremos primero (si esta montada) y luego le pondremos la etiqueta:
>> sudo umount /dev/sda1 >> sudo mlabel -i /dev/sda1 ::NUEVO_NOMBRE
- Puede que para instalar bien las mtools, tengamos que hacer lo siguiente:
>> cp /etc/mtools.conf ~/.mtoolsrc
Le añadimos la siguiente linea al fichero:
mtools_skip_check=1
Cambiar la etiqueta de una particion EXT2 o EXT3
Para cambiar la etiqueta de una partición /dev/sda1, la desmontaremos primero (si esta montada) y luego le pondremos la etiqueta:
>> sudo umount /dev/sda1 >> sudo e2label /dev/sda1 NUEVO_NOMBRE