Archivo de la categoría: Utilidades GNU/Linux

Utilidades GNU/Linux

Exportar/importar bookmarks en Dolphin (KDE)

Si usáis KDE y, por ende, disfrutáis de las grandezas de un explorador como Dolphin, y si además tenéis una lista de bookmarks (*) los cuáles usáis asiduamente, os interesará saber cómo poder restaurarlos si instaláis de cero Linux.

Los marcadores de Dolphin se almacenan en

$HOME/.kde4/share/apps/kfileplaces

Allí tenemos varios ficheros, a saber:

bookmarks.xml
bookmarks.xml.bak 
bookmarks.xml.tbcache

El primero de ellos tiene los marcadores actuales. Por tanto, para hacer una copia de seguridad de los mismos, simplemente copiaremos ese fichero a un lugar seguro (pendrive, disco duro externo, la nube…).

Ahora que sabemos cómo exportar nuestros marcadores, veamos cómo importarlos. Estaréis pensando (como yo hice también) que una vez instalado Linux desde cero, simplemente machacando ese fichero con el que habíamos guardado sería suficiente, pero no funciona así exactamente (de hecho, si lo hacéis así, no los importará correctamente).

La forma correcta de importar los marcadores de Dolphin es copiar nuestro fichero bookmarks.xml a ~/.local/share/user-places.xbel, machacando este último. Dolphin leerá dicho archivo y lo añadirá a sus bookmarks. Por tanto, ejecutando:

cp bookmarks.xml $HOME/.local/share/user-places.xbel

desde línea de comandos ya lo tendríamos.

Esto permite automatizar esta acción ya que podéis hacerlo desde un script. Yo, de hecho, lo hago así: tengo un script que instala y configura todas las cosas como me gusta tenerlas tras una instalación desde cero, como ya expliqué hace tiempo aquí (**).

Si usáis distros basadas en Gnome, los bookmarks del explorador de archivos de este entorno se guardan en $HOME/.gtk-bookmarks. Así ha sido siempre, aunque no sé si en Gnome Shell y/o Unity la cosa habrá cambiado. En tal caso, agradezco comentarios.

 

(*) Bookmarks, marcadores, favoritos: son maneras distintas de decir lo mismo. Usaré indistintamente estas palabras para referirme al mismo concepto.

(**) Dicho artículo, que tiene ya más de año y medio, está referido a la distro que usaba en aquellos momentos. Aunque ahora uso otra e incluso uso otro entorno de escritorio distinto, el script («los scripts» realmente, porque son varios pero llamados desde uno que ejecuto) es el mismo sólo que ha evolucionado 😉

Un poco de… Emacs (VI): insertar salida de comandos

Si trabajáis con la shell de Linux asiduamente como es mi caso, en ocasiones os resulta útil insertar en un fichero de texto el resultado de un comando.

Lo normal en estos casos es abrir una shell, ejecutar el comando, seleccionar la salida con el ratón, copiar y luego volver al editor (emacs, claro) y darle a pegar.

Otra opción es redirigir la salida del comando a un texto plano y luego insertar dicho archivo en el fichero en el que estamos trabajando (C-x i).

Sin embargo, lo más directo es usar la combinación C-u M-! (*). Con la última (M-!), lo que hace emacs es pedir en el minibuffer que introduzcáis un comando y la salida os la muestra en un buffer nuevo (no en el que estáis editando). Para que se inserte directamente donde tenéis el cursor hay que pulsar previamente C-u.

Recordad que:

 

C-u significa pulsar Control y la tecla "U",
C-x i significa pulsar Control y la tecla "X" y luego, tras soltar ambas, pulsar la tecla "I" (i latina),
M-! significa pulsar Alt y la tecla que tiene el símbolo "!" (admiración cerrado), que es la tecla del 1. Por tanto, habrá que pulsar Alt + Mayúsuclas + 1.
C-u M-! significa primero hacer el C-u, soltamos las dos teclas y hacemos el M-!.

 

(*) M-! : La tecla que aparece tras el «-» es la admiración cerrada pero por algún motivo, la fuente de wordpress no la pone correctamente (es problema de la fuente porque en el texto monoespaciado sí sale bien como se puede observar). Si alguien conoce este motivo agradeceré un comentario. PD. No es el «pipe», pues el pipe sí que lo muestra cuando se pulsa Alt gr + 1 (! es admiración y | es pipe). Sin embargo la admiración abierta sí la pone bien «¡».

Otra forma de visualizar un directorio (k4dirstat)

En este artículo os voy a presentar un aplicación que permite obtener una visión completa, pormenorizada e incluso gráfica de un directorio.

Se llama k4dirstat. Es una aplicación para KDE (actualmente yo tengo instalada la 4.11.2). Cuando la arrancas te pide que selecciones el directorio que quieres explorar. Una vez seleccionado, analiza dicho directorio y todos sus subdirectorios y archivos y muestra, entre otros, estos datos:

– el porcentaje de uso de cada subdirectorio dentro del directorio
– el tamaño
– la cantidad de archivos y subdirectorios
– la fecha de última modificación

Aquí os muestro cómo se ve en mi PC:

k4dirstat

Como véis, he seleccionado el directorio /usr, y se muestran los distintos subdirectorios (lib, share, bin…).

En la parte inferior muestra con formas rectangulares de distintos colores, el espacio que ocupa cada archivo y cada subdirectorio dentro del directorio padre (o sea, el que hemos elegido, «/usr» en mi caso).

En particular, si seleccionáis un directorio o archivo en la parte superior de la ventana (en la imagen yo tengo seleccionado el directorio «share»), en la parte inferior sale seleccionado en rojo para su fácil visualización. Lo mismo ocurre si seleccionáis un fichero. Los ficheros son todos y cada uno de los cuadrados que véis.

Es una aplicación que permite ver, de un vistazo, si tenemos algún archivo o directorio que ocupa mucho. Así, haciendo clic en dicho cuadradito, arriba se seleccionará el fichero correspondiente, de forma que podéis verlo clara y fácilmente.

En la siguiente captura he seleccionado un archivo que tiene pinta de ocupar mucho (el cuadradito es mayor), y arriba se ha seleccionado el archivo (icon-theme.cache, en este caso).

k5dirstat2

Espero que os resulte útil.

Ripear cd de audio desde KDE de la forma más fácil

Si tenéis un CD de audio de vuestro artista favorito, el cuál habéis comprado u os han regalado las pasadas Navidades y no queréis que se os estropee, lo más recomendable es que hagáis una copia de seguridad en el ordenador.

Este proceso de pasar un CD de audio al disco duro de nuestro ordenador se conoce como ripear un CD.

Aunque existen aplicaciones para esta tarea, si usáis Linux y KDE es vuestro entorno de escritorio, podéis hacer esta tarea muy fácilmente. Para ello, una vez introducido el CD, abrimos un explorador de archivos (Dolphin), pulsamos Control+L para escribir la ruta a la que queremos ir y tecleamos audiocd:/. Una forma más sencilla es pulsar en la opción «Abrir con el gestor de archivos» que aparecerá en el área de notificación (o bandeja del sistema) al introducir el CD en el PC.

Al abrirse Dolphin nos mostrará las canciones con extensión .wav las cuáles podemos copiar y pegar en nuestro disco duro, lo que ripeará el CD y nos las dejará en este formato (.wav).

Además de este formato, nos aparecen varios directorios, entre los que se encuentran «Ogg Vorbis» o «MP3». De forma similar a la anterior, podemos copiar cualquiera de estos directorios en un directorio de nuestro disco duro, lo que provocará también el ripeo pero además convirtiendo las pistas a estos formatos, los cuáles, como sabéis, ocupan mucho menos espacio que los .wav y tienen prácticamente la misma calidad.

Esto también os vale para poder escuchar el CD en vuestro reproductor mp3 cuando salgáis a dar un paseo, por ejemplo.

Controlar servidor con VirtualBox de forma remota******TERMINAR*****

Imaginemos que tenemos un equipo servidor (con una ubuntu server, por ejemplo), es decir, sin entorno gráfico. El equipo tiene cierta potencia como para virtualizar máquinas.

 

VBoxHeadless -s ubuntu_12.04-asterisk

http://askaralikhan.blogspot.com.es/2011/01/virtualbox-vboxheadless-remote-desktop.html

 

https://www.virtualbox.org/manual/ch07.html

Un poco de… Emacs (V): números de línea

Introducción

En ocasiones, cuando estamos editando un archivo de texto, nos puede interesar saber el número de línea en el que nos encontramos. Si estamos tecleando código fuente nos puede interesar que se muestre a la izquierda el número de línea (aunque espero que no sea para usar instrucciones de tipo goto… :-P).

Vamos a ver cómo hacer éstas y otras funciones con los números de línea desde nuestro editor de texto favorito (emacs, por supuesto).

Contar líneas, palabras, caracteres

Emacs tiene varias funciones para contar líneas y palabras. Unas de las más útiles son:

count-lines-page

que nos muestra el número total de líneas y luego entre paréntesis muestra las líneas antes de la actual y las que hay después (ejemplo: 53 (50 + 3)).

Si queremos contar palabras y caracteres:

count-words

Esto nos indica el número de líneas, de palabras y de caracteres del documento.

Ambas funciones tienen la opción de usarse para una región (i.e., un fragmento de texto seleccionado): count-lines-region y count-words-region.

Mostrar número de línea actual

Si queremos que siempre que escribamos se muestre el número de línea en la barra de estado (modeline) podemos ejecutar en el minibuffer este comando:

line-number-mode

Esta función es de tipo toggle (conmutador), es decir, que cada vez que la ejecutamos conmuta, en este caso, el modo «número de líneas». Así, si la ejecutamos una vez nos indicará que el modo de número de líneas está activado. Si la ejecutamos otra vez lo desactiva. La siguiente lo vuelve a activar, y así sucesivamente.

Con este modo, como decimos, el número de línea aparece en la barra de estado de emacs (modeline).

Conocer la línea actual

Si queremos conocer el número de línea actual y no tenemos activado el modo «line-number-mode» visto antes, podemos ejecutar esta función en el minibuffer:

what-line

y nos lo dirá (¡qué listo que es este editor! ;-)).

También existe la función what-cursor-position, que en este caso nos dirá en qué caracter está el cursor y qué posición ocupa en el documento.

Mostrar números de línea a la izquierda

Si lo que queremos es mostrar a la izquierda el número de la línea podemos usar uno de los muchos modos que han creado otros usuarios. Aquí tenéis una buena descripción de los modos y funciones disponibles referentes a numeración de líneas en emacs. En particular, yo uso yo uso line-num.el.

Este modo muestra, a la izquierda de cada línea, el número de la misma. Si queréis usar este modo, tenéis que tener el fichero con el código (*) del mismo en el directorio $HOME/.emacs.d por un lado y, por el otro, en el fichero $HOME/.emacs.el incluir esta línea

(load "line-num.el")

Una vez hecho esto, para activar el modo en el editor, ejecutaremos esto en el minibuffer:

linum-mode

Esta función activa el modo linum, que es el que nos mostrará los números de línea a la izquierda. Si queremos desactivarlo haremos como en el caso anterior: volver a ejecutarlo, ya que es, también, una función de tipo conmutador.

Cuando usáis este modo, las líneas os aparecen así:

emacs-linum_mode

Espero que os haya resultado útil el artículo. Si tenéis alguna duda o sugerencia dejadme un comentario.

 

(*) Emacs es un editor extensible, al que se pueden añadir infinidad de funciones nuevas usando el lenguaje de programación emacs-lisp. Simplemente cargando al inicio el fichero con el código fuente de dichas funciones ya las tendremos disponbiles para su uso. Asimismo, se pueden cambiar funciones, comportamientos y combinaciones de teclas para personalizarlo y adaptarlo para nuestra comodidad.

Qué es la virtualización

En una entrada anterior (concretamente en ésta) os comentaba cómo virtualizar de forma muy sencilla usando el software VirtualBox.

En aquél artículo comentaba que no iba a entrar a explicar qué era la virtualización, los tipos que hay, etc. Bien, pues eso es lo que os voy a explicar en éste.

En lugar de escribiros un artículo, que puede ser un poco pesado para leer (me suelo enrollar bastante, lo reconozco), me remito a la presentación que hice allá por Julio de 2011 y que expuse en la Universidad durante un pequeño ciclo de charlas de Caldum.

Era una charla corta, así que intenté abreviar pero dejando -o intentándolo, al menos- los conceptos lo más claros posibles. Al final de la misma se explica brevemente cómo usar KVM.

Aquí os pongo el enlace para que los descarguéis la presentación en pdf.

 

Detectando fallos de disco con S.M.A.R.T.

En un anterior artículo os mencioné que existía una tecnología llamada S.M.A.R.T. que sirve para detectar los fallos de los discos duros y poder actuar antes de que sea demasiado tarde. Os comenté que ya os hablaría en otro artículo de ella. Bien, pues ha llegado el momento 😉

Las siglas de S.M.A.R.T. significan Self Monitoring Analysis and Reporting Technology, y como su nombre indica, es una tecnología que sirve para analizar, monitorizar y obtener informes de los parámetros que influyen en la vida de los discos duros.

Para poder usar esta tecnología, ésta debe estar soportada por el disco duro (prácticamente todos los discos duros actuales, si no todos, la soportan) y también por la BIOS (lo que también suele suceder), donde tiene que estar habilitada.

Dado que es una tecnología que sirve para almacenar datos estadísticos de errores y uso del disco duro que os permitirán anticiparos a la pérdida de datos, no hay razón para no activarla. En algún foro leí una vez que la única podría ser que usárais algún tipo de disco flash de los primeros que no soportaran esta tecnología y, por tanto, al estar activada en BIOS, os diera problemas para arrancar (puesto que el disco no la soporta). En cualquier otro caso (que será el 99,99%) os recomiendo que la activéis.

Para consultar los datos que se van guardando sobre el estado del disco duro, existen muchas utilidades (tanto para Linux como para Mac y Windows). En mi caso, me voy centrar en la utilidad para Linux llamada smartmontools.

Para instalarla, ya sabéis (en debian y derivadas):

aptitude install smartmontools (*)

Esto os proporciona el comando smartctl, con el que podréis realizar varios tests y ver la información recogida por S.M.A.R.T. en vuestro disco duro. A continuación vamos a ver algún ejemplo.

smartctl -i /dev/sdx

donde /dev/sdx el disco duro que queréis chequear (/dev/sda, /dev/sdb…; si son IDE: /dev/hda, /dev/hdb…).

Este comando nos da distinta información del disco duro (número de serie, versión del firmware, si está habilitada o no la funcionalidad SMART…):

# smartctl -i /dev/sdb
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-19-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Device Model: ST9750420AS
Serial Number: 5WS3JZ6F
LU WWN Device Id: 5 000c50 04521203c
Firmware Version: 0002DEM1
User Capacity: 750.156.374.016 bytes [750 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: Fri Nov 15 09:56:34 2013 CET
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

Otro ejemplo:

# smartctl -H /dev/sdb
smartctl 5.43 2012-06-30 r3573 [x86_64-linux-3.8.0-19-generic] (local build)
Copyright (C) 2002-12 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
Please note the following marginal Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
190 Airflow_Temperature_Cel 0x0022 067 035 045 Old_age Always In_the_past 33 (0 18 33 24 0)

Este comando muestra información sobre el estado de salud general del disco. Si pone PASSED, como en el ejemplo mostrado, el disco duro está Ok. Si mostrara algo como FAILING, entonces tenemos que pensar en hacer backup inmediatamente.

En concreto, os pongo el ejemplo de otro disco duro que tengo que me ha dado algún que otro problema últimamente:

# smartctl -H /dev/sdl
smartctl 6.2 2013-04-20 r3812 [x86_64-linux-3.11.0-13-generic] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: FAILED!
Drive failure expected in less than 24 hours. SAVE ALL DATA.
Failed Attributes:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
 5 Reallocated_Sector_Ct 0x0033 001 001 036 Pre-fail Always FAILING_NOW 4095

Como véis, tiene problemas (y no pequeños). El problema es que están fallando muchos sectores (ha habido muchos realojamientos de sectores). Total, que me tengo que comprar otro.

Ahora probemos este comando:

smartctl -A /dev/sdb

Con este comando se muestran diferentes atributos SMART del disco duro (en concreto, se muestran 30):

smartctl_a

En este caso ponemos una captura de pantalla para que se vean más claros los datos del ejemplo.

Aspectos interesantes de los datos aportados por el comando anterior:

  • RAW_VALUE es el valor crudo, es decir, el valor real. Por ejemplo, el número de horas que lleva el disco encendido.
  • VALUE. El valor RAW_VALUE es convertido a un número entre 1 y 253 por un algoritmo ejecutado en el propio firmware del disco. Aquí, los números bajos son malos y los altos son buenos. Si un valor es igual o está por debajo del umbral (columna THRES, de THREShold), diremos que el disco ha fallado y aparecerá en la columna WHEN_FAILED. Si esta columna aparece vacía es que todo va bien (las cosas no están fallando). Si hay valores en sus filas, entonces debemos empezar a pensar en hacer backup y cambiar de disco.
  • TYPE. Vemos dos posibilidades: Pre-fail y Old-age. Quiere decir que si observamos un fallo en algún atributo de tipo Pre-fail, se espera un fallo inminente del disco. Si falla en alguno de Old-age, es que se ha alcanzado el final de la vida del disco.

Además de smartctl se incluye, en el paquete smartmontools, el demonio smartd. Éste se encarga de realizar monitorización periódica de los discos del equipo y tomar las acciones que se le indiquen en su fichero de configuración, como enviar un mail al administrador de sistemas, por ejemplo.

Para más información al respecto podéis visitar la wiki oficial del proyecto aquí.

 

(*) Yo siempre uso aptitude, pero podéis usar igualmente apt-get. También podéis usar la utilidad de vuestra distro para instalar software (Synaptic, Muon…). Si queréis usar aptitude pero no está instalada (en las últimas versiones de Ubuntu/Kubuntu/… ocurre), haced esto:

apt-get install aptitude

Reparar disco duro con sectores defectuosos

Introducción

La vida útil de los discos duros es limitada, y más con el uso que les damos actualmente; ¿quién no se ha comprado un disco de 1 TB y al poco tiempo lo tenía completamente lleno?

Por eso, es bueno hacer copias de seguridad con cierta periodicidad, dependiendo ésta de la criticidad de los datos (del valor que tengan para nosotros) y de la frecuencia de modificación de los mismos.

Si no tenemos la precaución de hacer estas copias de seguridad y ocurre un fallo en el disco duro es probable que perdamos todo, y la recuperación de nuestros archivos, si aún es posible, puede tener un coste que se puede escapar de un bolsillo normal y corriente (como el mío por ejemplo). Vamos, que en estos casos casi merece más la pena hacer de nuevo el viaje al Caribe que enviar el disco a reparar para recuperar las fotos del que hicimos el año pasado.

En ocasiones no se estropea completamente el disco, sino que da fallo en algún sector (sector es la unidad lógica mínima de un disco duro, para entendernos). Esto lo notamos cuando vamos a copiar un archivo a o desde un disco duro y se queda un rato «pensando», dando error de copia al final (normalmente de «redundancia cíclica»).

El que en un disco duro comiencen a fallar los sectores es señal de que es el principio del fin del mismo. Esto no tiene por qué suponer que haya que tirarlo, ni mucho menos, pero yo no dejaría en dicho disco mis fotos más preciadas (al menos, no sin tener un par de copias más en otros lugares).

A pesar de estos pequeños fallos podemos seguir utilizándolo con la particularidad de que cuando vaya a usar ese sector o sectores defectuosos probablemente volverá a dar fallo. ¿Cómo aislamos estos sectores de forma que el sistema operativo no los use más y así no provoque estos fallos? Esto es lo que vamos a tratar de contestar en lo que resta de post, porque vamos a ver cómo hacer esto (en GNU/linux, por supuesto) con distintas herramientas, como badblocks o fsck -entre otras-.

Badblocks

Cito de la Wikipedia (lo explican genial, como siempre): «badblocks es una utilidad disponible para Linux que permite localizar y aislar los sectores defectuosos de una unidad de disco».

Por tanto, ejecutando dicha utilidad (aunque se puede usar también como parte de la utilidad e2fsck) podemos recopilar una lista de sectores defectuosos encontrados. Esta lista la podemos guardar en un fichero de texto plano que luego podemos pasarle como argumento al comando que realiza el formateo para que tenga en cuenta dichos sectores defectuosos y no los use.

Por tanto, primero ejecutaríamos la utilidad badblocks sobre nuestro disco (pongamos que es, por ejemplo /dev/sdb, aunque podemos especificar también una partición, como «/dev/sdb5»):

# badblocks -svn /dev/sdb -o sectores_defectuosos.txt

donde:

-s –> muestra una barra de proceso
-v –> modo verbose (muestra los errores encontrados)
-n –> usa el modo no destructivo
-o –> especifica el fichero donde se guarda la salida

Al ejecutar dicho comando aparecerá algo como:

Revisando los bloques dañados en modo lectura-escritura no destructiva

Esto quiere decir que no se van a borrar los datos que tenemos en el disco. Aparecerá un porcentaje que va subiendo muy lentamente, así que armaros de paciencia porque es un proceso lento (pensad que va sector a sector y en un disco de 500 GB, por ejemplo, tiene más de 1000 millones de sectores (de 512 bytes cada uno).

Ahora formatearíamos el disco duro (o partición). Si lo queremos en fat32, lo haríamos así:

mkdosfs -F32 -v -l sectores_defectuosos.txt -n LABEL /dev/sdb

Si lo queremos en ext4 haríamos esto:

mkfs.ext4 -v -l sectores_defecuosos.txt -L LABEL /dev/sdb

donde:

-v –> modo verbose (muestra toda la salida de mensajes)
-l –> Le indicamos el fichero que contiene la lista de sectores defectuosos
-n/-L –> Especifica la etiqutea (LABEL o nombre de Volumen) del disco o partición (en mkdosfs esta opción es con «-n» y en mkfs.ext4 -en mke2fs en general- se usa la opción «-L»)

Otras posibilidades

Con mkfs.ext4

También se podría hacer ambas cosas al mismo tiempo de esta forma:

mkfs.ext4 -c /dev/sdb

donde:

-c Es para marcar los bloques defectuosos. Si pusiéramos -cc hace una búsqueda pero no destructiva

Con fsck.ext4

También se puede pasar un chequeo (con fsck) y pedirle que repare todos los fallos que encuentre:

fsck.ext4 -c -p /dev/sdb

donde:

-c (ídem del anterior)
-p Busca y repara los errores

Utilidades de los fabricantes de discos duros

Cada marca tiene su propia utilidad (la cuál, en principio, sólo vale para los discos de esa marca). Suelen funcionar bastante bien. En particular, yo he probado la de Seagate en alguna ocasión con buen resultado. En este caso, la utilidad se llama Seatools y tenéis la posibilidad de descargaros una iso con la que podéis arrancar (previo a quemar un CD con ella, obviamente) vuestro equipo y lanzarla directamente para revisar vuestro(s) disco(s) duro(s).

S.M.A.R.T

Por último, comentaros que existe una tecnología llamada SMART que permite monitorizar el estado del disco de forma que se pueda uno anticipar a un fallo grave pudiendo recuperar los datos antes. Pero de esto hablaremos en otro artículo.

Apuntes finales

Con las utilidades badblocks (en windows tendríamos chkdsk, con resultados similares), estamos solucionando el problema a nivel del sistema de ficheros. Esto quiere decir que nosotros lanzamos la utilidad para que se marquen los sectores defectuosos y el sistema operativo será consciente de ello, de forma que la próxima vez que vaya a escribir en los mismos, al verlos marcados, no lo haga y busque otros «sanos».

Sin embargo, es menester comentar -ya para terminar este artículo- que los propios discos duros también realizan su detección de sectores defectuosos, de tal forma que si en una escritura de un sector observan que éste tiene algún problema, directamente lo descartan y usan otro, siendo todo esto transparente al sistema operativo. Mediante S.M.A.R.T. al que hacíamos referencia antes (y del que probablemente hablaremos en un artículo próximo) se pueden consultar estos cambios, de forma que si vemos que se están produciendo muchos, podemos comenzar a plantearnos cambiar de disco duro.

Hay mucha información sobre esto en Internet. En partcicular, os recomiendo empezar por aquí.

Espero que os haya resultado útil el artículo.

Mostrar barra de progreso cuando se usa dd

dd es una herramienta muy útil para la copia de disco a disco o incluso para crear imágenes de cds, dvds, pendrives e incluso discos duros. Su uso es sencillo, os lo muestro con un ejemplo:

dd if=/dev/dvd of=/mnt/images/kubuntu_13.10.iso

El parámetro if especifica el dispositivo de entrada y of el dispositivo de salida. Así pues, lo que hacemos con esto es crear una imagen del DVD (suponemos que el dispositivo es /dev/dvd (*)) en el archivo kubuntu_13.10.iso que se guardará en /mnt/images. Obviamente, podéis poner cualquier dispositivo y cualquier fichero de salida, amén de otros muchos usos que se puede dar a esta utilidad.

Cuando se ejecuta este comando no aparece nada en la línea de comandos, sino que se queda en espera hasta que finaliza y muestra entonces los bytes copiados y la velocidad. Por tanto, mientras dura el proceso no tenemos ningún feedback que nos indique cómo va la cosa, cuánto queda, qué velocidad lleva…

Para esto podemos usar una utilidad llamada pv (**). Este comando copia la entrada estándar a la salida estándar mostrando un indicador de progreso cuando se ejecutan procesos en la línea de comandos. Así, usando pipelines, podemos combinar muchas utilidades con ésta para que durante el proceso de las mismas podamos ver el avance.

En nuestro caso, siguiendo el ejemplo de arriba, para ver el progreso de ejecución del mismo, pondríamos lo siguiente:

dd if=/dev/dvd | pv | dd of=/mnt/images/kubuntu_13.10.iso

Aquí tenéis más ejemplos de uso de esta utilidad.

Con esta sencilla sintaxis podéis tener un feedback cuando usáis dd para realizar procesos largos (normalmente de backup, que es el uso mayoritario de dd) y así saber que todo va bien.

 

(*) /dev/dvd suele ser un enlace simbólico al dispositivo real, que normalmente suele ser /dev/sr0 (si tenemos una segunda unidad de cd sería /dev/sr1 y así sucesivamente…).

(**) Si bien dd viene instalado por defecto en todos los Unix/Linux, la utilidad pv tendréis que instalarla manualmente. Está en los repositorios, así que no tendréis problema:

aptitude install pv