Juan
Perón exponía durante los distintos actos públicos la ideología
benefactora del Estado Justicialista, y propalaba paternalmente aquellos
conocimientos que podían servir al Pueblo. En un discurso en la
inauguración del Tambo Nuevo en Santa Fé explica cómo controlar las
antiguas unidades de cinta para hacer respaldos en Ubuntu.
Vean señores, en nuestra era, no cabe duda que el medio de almacenamiento mas extendido está constituido por los discos rígidos magnéticos.
De un tamaño original de un lavarropa, la evolución los ha hecho miniaturizarse, de manera tal que hoy no tienen más de 3 pulgadas de ancho y ocupan menos espacio que un atado de Pall Mall.
Si necesitamos transportabilidad y viajar con ellos, a estos chiquitos se le suele adosar de fábrica una interfaz USB, con lo que logramos un disco rígido externo. También, si nuestras necesidades de espacio y velocidad no son tan acuciantes, contamos ya con las prácticas memorias Flash (también con la misma interfaz, conformando un pendrive). Ello los convierte en los más peronistas de los medios de almacenamiento.
Sin embargo, existen medios de almacenamiento que - a pesar de su veteranía - no cejan en dar pelea y constituyen un verdadero "primer peronismo". Esto es así pues la confiabilidad de su almacenamiento y la gran durabilidad y estabilidad de su medio se une al bajo precio que pueden llegar a tener en ciertas condiciones (si lo comparamos con su capacidad). Uno de estos dispositivos para el almacenamiento ha superado la barrera del tiempo y siempre se renueva tecnológicamente: es la cinta magnética.
Desde las unidades de IBM que acompañaban a las mainframe (de un tamaño individual que superaba a una heladera Siam), hasta el simpático Datasette del microordenador Commodore 64, la cinta ha sido protagonista del almacenamiento de Masa.
A nivel empresarial, se utiliza la cinta como medio de respaldo de la información, y actualmente conserva su valía en tal accionar. Es por ello que hoy, a pesar de la inmensidad de los Terabytes disponibles en sistemas de disco duro, la cinta aún conserva su vialidad como medio de resguardo.
Su principal desventaja es tal vez la secuencia lineal que normalmente tiene su operación de escritura (lo cual lo desaconseja para tareas diarias), y también lo lenta de su acción de lectura. Su ventaja radica en la alta capacidad relativa y en el bajo costo del medio de almacenamiento.
En este caso, explicaré el uso de una unidad marca HP modelo C1533A adosada a una placa controladora PCI Adaptec Scsi-2.
Se trata de una unidad tecnológicamente superada pero que puede servir para practicar y para emprender para pequeñas tareas de resguardo a una velocidad de 1,2GB/h. Esto es así pues la unidad de cinta junto con su placa controladora la recibimos como donación, y emplea extendidos casettes de cinta DAT de los cuales conseguimos en cajas bulk de 20 unidades por muy bajo costo.
Específicamente en este caso del Verbatim DataLife formato DDS-2 (cassette con 120 metros cinta de 4mm de ancho (realmente 3,81mm), que permiten almancenar unos 4GB de datos sin compresión y 8GB con compresión.
Nos sirven como una buena opción para respaldar datos de trabajo de múltiples servidores, y distinta información en forma de documentos de texto y planillas electrónicas, así como guardar datos de páginas webs montadas en una miríada de servidores Apache...
Pues bien, los sistemas operativos GNU con Linux (y otros sistemas similares a Unix) son capaces de funcionar a través de estos dispositivos de cinta, que si bien son poco conocidos ya, en casos específicos siguen siendo útiles. Desde el punto de vista del software libre, se emplean el comando mt ("magnetic tape", o cinta magnética) para controlar la operación de la o las unidades de cinta magnética. Necesitaremos utilizarlo toda vez que operemos con este tipo de dispositivos.
Dispositivos de Unidades de Cinta
En primer lugar, debemos conocer cómo nuestro sistema llama o nomencla a nuestra unidad de cinta (en este caso la HP C1533A). Esto es así pues - desde un punto de vista lógico - en los sistemas GNU con Linux los dispositivos de cinta son dispositivos de caracteres nomenclado como simples archivos en nuestro sistema de archivos. O sea, como todos los demás dispositivos, encontraremos un fichero especial en el directorio /dev/ al cual nos referiremos como la unidad de cinta.Sin embargo, podríamos encontrar varios tipos distintos de dispositivos de cinta, al cual el sistema nomencla dependiendo sus características propias. Por ejemplo:
-
Las unidades de cinta de interfaz SCSI usan los nombres /dev/st0, /dev/nst0, /dev/st1, /dev/nst1, etcétera. La interfaz SCSI y su controlador es considerado de las más confiables, pero naturalmente las unidades de cinta SCSI son más caras que las otras.
-
Los dispositivos de cinta ATAPI comienzan con /dev/ht0 y /dev/nht0.
-
También existe un soporte limitado para unidades de cinta a través del viejo controlador floppy, localizados en /dev/ft0 y /dev/ntf0.
Existen dos versiones de cada dispositivo de cinta en los sistemas GNU con Linux:
Ahora bien, para identificar nuestra unidad de cinta, podremos ingresar el comando:
dmesg
...y buscar en el mismo las identificadores de la misma:
-
Un dispositivo rewind rebobina la cinta después de cada operación, por ejemplo /dev/st0 es un dispositivo rewind (con capacidad de rebobinado).
-
Un dispositivo de cinta no-rewind no rebobinará la cinta después de sus operaciones. Los dispositivos No-rewind comenzarán con una n; por ejemplo, /dev/nst0 es un dispositivo no-rewind.
Ahora bien, para identificar nuestra unidad de cinta, podremos ingresar el comando:
dmesg
...y buscar en el mismo las identificadores de la misma:
Vendor: HP Model: C1533A Rev: 9503
Type: Sequential-Access ANSI SCSI revision: 02
st: Version 20010812, bufsize 32768, wrt 30720, max init. bufs 4, s/g segs 16
Attached scsi tape st0 at scsi0, channel 0, id 4, lun 0
Configurar el entorno
Ya que hemos visto qué nombre recibe la unidad de cinta en nuestro sistema, será útil especificarlo en nuestro archivo de entorno .bashrc. Esto es particularmente útil si siempre usaremos la misma unidad de cinta en el sistema, o si sólo tenemos una de ellas, pues nos ahorrará tener que expecificar en cada comando que la unidad de cinta es /dev/st0 o lo que fuese.Configuraremos entonces la variable de entorno TAPE para que represente el dispositivo que tenemos. En nuestro caso podríamos ingresar:
nano ~/.bashrc
...esto abrirá el editor de texto GNU Nano con archivo de ejecución .bashrc (ya debería tener contenido, no modificamos nada de lo que ya está escrito). Al final del archivo le agregamos las siguientes líneas:
## Agregado de Variable TAPE por Usuario Perón ##
TAPE=/dev/st0
export TAPE
export TAPE
Finalmente, guardamos el archivo con Ctrl+q y salimos del editor GNU Nano con Ctrl+x.
Trabajando con Unidades de Cinta
La
cinta es una de los medios de almacenamiento más simples en existencia.
Podríamos pensar en la cinta como una secuencia de archivadas, con una
marca de archivo al final de cada una de ellas que la separa de la siguiente, como se muestra en la figura 1. Presten particular atención a que no existe
una marca de archivo al principio de la cinta, y que la primera
archivada (llamamos así a la tanda de ficheros que se graban secuencialmente) recibirá el número 0.
Figura 1: Archivadas y marcas de archivo en la cinta.
A diferencia de otros dispositivos de almacenamiento más complejo, la cinta normalmente carece de un sistema de archivos. Por otro lado, no existe información en la cinta que indique el nombre de cada archivo (aunque los sistemas de respaldo automático usualmente incluyen un archivo de índice especial al comienzo de la cinta). Cuando operamos manualmente con la cinta, operaremos con los números de archivo y las marcas de archivo, y nada mas.
Por ello tomamos un casette DDS-2 y lo colocamos en la unidad de cinta. Como operaremos "a pelo", debemos tener cuidado de lo que hacemos. Tal es el motivo por el cual usamos una cinta virgen para practicar.
Para acceder a los datos en la cinta, debemos manipular el cabezal de la unidad de lectura. La figura 2 nos muestra la posición inicial del cabezal. Suponiendo que que nuestro dispositivo de cinta sea st0, empleamos el dispositivo /dev/st0.
Primero, verificamos la posición de la cinta con el comnado status mt (la variable -f /dev/st0 especifica el archivo de dispositivo de la unidad de cinta. No es necesario poner dicha variable si ya especificamos nuestra variable de entorno TAPE.
mt -f /dev/st0 status
Figura 2: El cabezal al comienzo de la cinta.
El sistema debería devolvernos algo así (en el ejemplo, una unidad de cinta DAT):
SCSI 2 tape drive: File number=0, block number=0, partition=0. Tape block size 0 bytes. Density code 0x13 (DDS (61000 bpi)). Soft error count since last status=0 General status bits on (41010000): BOT ONLINE IM_REP_EN
Esto nos representa mucha información:
-
El número de archivo actual es 0.
-
El número de bloque actual es 0, de modo que el cabezal está al comienzo del archivo.
-
Debemos ignorar la partición, sólo las unidades de tipo moderno los soportan y esta unidad de cinta tipo DDS-2 no lo hace.
-
El tamaño de bloque es 0, lo que en realidad significa que la unidad de cinta no tienen un tamaño de bloque fijo específico.
-
El código de densidad especifica cuánta información puede caber en la cinta.
-
El soft error count es la cantidad de errores recuperables que han ocurrido desde la última vez que ejecutamos mt status.
-
Los status bits explican más acerca del estado de la cinta y de la unidad de cinta. BOT significa "comienzo de cinta", y ONLINE reporta que la unidad de cinta está lista y cargada.
Creando Archivadas en una cinta
Es
difícil entender cómo una unidad de cinta opera pasando a través de
varios ficheros en una cinta cualquiera de una colección de respaldos.
Por lo tanto, para explicar el proceso de búsqueda en una cinta, lo imaginaremos creando algunas archivadas por nosotros mismos, antes de
especificar cómo descargar sus datos. Una vez que hayamos comprendido
esto, seremos capaces de avanzar y rebobinar la cinta sin grandes
confusiones que nos hagan preocupar por la pérdida de datos. Seremos entonces verdaderos peronistas de pelo en pecho.
Imaginemos que queremos crear tres archivadas en la cinta magnética. Específicamente, usaremos tar para encadenar todos los ficheros que se encuentran en los directorios /lib, /boot y /dev de nuestro sistema GNU con Linux. Estos directorios son algunos de los importantes de sistema y los usaremos como ejemplos.
Imaginemos que queremos crear tres archivadas en la cinta magnética. Específicamente, usaremos tar para encadenar todos los ficheros que se encuentran en los directorios /lib, /boot y /dev de nuestro sistema GNU con Linux. Estos directorios son algunos de los importantes de sistema y los usaremos como ejemplos.
- Colocamos un cartucho de cinta en la unidad (una casette DDS-2 virgen o cuyo contenido no nos interese)-
-
A diferencia del caso anterior, nos aseguramos que nuestra variable de entorno TAPE esté configurada como un dispositivo no-rewind (sin rebobinado), en este caso podremos emplear /dev/nst0.
-
Ejecutamos el comando mt status para verificar que la cinta está en la unidad y que la variable TAPE está configurada.
-
Cambiamos al directorio raíz de nuestro sistema de archivos con el comando cd /.
-
Creamos una archivada tar del primer archivo en la cinta (el directorio /lib) por medio del comando: tar zcv lib
-
Ejecutamos el comando mt status. La salida debería ser algo similar a esto, indicando que la cinta está en el siguiente archivo (archivo 1):
SCSI 2 tape drive: File number=1, block number=0, partition=0. Tape block size 0 bytes. Density code 0x13 (DDS (61000 bpi)). Soft error count since last status=0 General status bits on (81010000): EOF ONLINE IM_REP_EN
-
Luego creamos una archivada de nuestro directorio /boot con el comando: tar zcv boot
-
Creamos una archiva da nuestro directorio /dev con el comando: tar zcv dev
En cuanto a la performance, las viejas unidades DDS-2 transmiten unos 0,360MB/s sin compresión, y el doble con compresión 2:1. Esto es unos 1.23GB/h, y tarda unas 3h10m minutos para almacenar los 4GB del casette (sin compresión). Al utilizar compresión, la capacidad se duplica a 8GB, pero se tarda el mismo tiempo en grabar o leer.
Los contenidos de la cinta ahora deberían figurar así:
Figura 3: La cinta contiene tres archivadas, y el cabezal estar al comienzo de una nueva archivada.
Leer desde la cinta
Ahora que tenemos algunos archivos en la cinta, podremos intentar leerlos:
-
Nos posicionamos al directorio /tmp para evitar cualquier accidente (en caso de que accidentalmente tipeásemos x en vez de t en uno de los pasos que siguen). cd /tmp
-
Rebobinamos la cinta: mt rewind
-
Verificamos el primer archivo en la cinta, la archivada de /lib: tar ztvDebería aparecer un largo listado de los ficheros en la archivada que están duplicados de nuestra carpeta /lib.
-
Ejecutamos mt status. Debería devolvernos algo como:
SCSI 2 tape drive: File number=0, block number=4557, partition=0. Tape block size 0 bytes. Density code 0x13 (DDS (61000 bpi)). Soft error count since last status=0 General status bits on (1010000): ONLINE IM_REP_EN
La cinta aún está en
la Archivada 0, el primer archivo en la cinta. ¿Cómo sucede esto? La
respuesta es que tan pronto como termina su lectura, el comando tar se
detiende donde está en la cinta, porque uno podría querer hacer algo
loco (como cortar el archivo). El cabezal quedó posicionado al final de la Archivada 0 (notemos el contador de número de bloque, en la devolución del
comando mt status).
Figura 4: El cabezal está al final de la Archivada 0.
La consecuencia mas importante de esta nueva posición de la cinta es que otro comando tar ztv no accedería al archivo siguiente en la cinta, porque la cabeza no está al comienzo del nuevo archivo, sino que se encuentra al comienzo de la marca de archivo. Para avanzar la cinta hacia adelante hasta el siguiente archivo (que en este caso, sería la Archivada 1 formada por el directorio /boot), usamos el siguiente comando:
mt fsf
Este comando mueve la cinta de manera que el cabezal quede al final de la marca de archivo (al comienzo de la archivada 1 /boot), como se muestra en la figura:
Figura 5: El cabezal está al comienzo de la archivada 1.
13.6.4 Extraer Archivadas
Para extraer archivadas desde la cinta, necesitamos reemplazar la variable t que aparecía en los comandos de la sección anterior, con la variable xp, de modo que queden así:
tar zxpv
Como es usual, debemos revisar bien nuestro directorio de trabajo antes de extraer cualquier archivo. Os recomiendo siempre utilizar el directorio /tmp para estos menesteres, pues en cualquier situación podremos reever qué leímos en tal directorio... Hombre precavido vale por dos.
tar zxpv
Como es usual, debemos revisar bien nuestro directorio de trabajo antes de extraer cualquier archivo. Os recomiendo siempre utilizar el directorio /tmp para estos menesteres, pues en cualquier situación podremos reever qué leímos en tal directorio... Hombre precavido vale por dos.
Avanzando la cinta y haciendo respaldos
Para avanzar la cinta hasta la siguiente archivada ingresamos:
mt fsf
También existe un comando para rebobinar la cinta:
mt bsf
Sin embargo, es importante comprender que este comando rebobina la cinta hasta el final del archivo previo, o sea, hasta el comienzo de la siguiente marca de archivo que vea el cabezal.
Digamos que estamos al comienzo del archivo 1, como se muestra en la figura 4. Al ejecutar mt bsf, quedará como se muestra en la figura 5. Si en tal caso ejecutamos un mt status, el número de archivo debería ser 0 con un número de bloque de -1 (pues el controlador no puede calcular el largo del archivo por si mismo). En general, para volver al comienzo del archivo previo cuando estamos al comienzo de un archivo, debemos rebobinar dos veces y luego avanzar una vez el cabezal. Gracias a que la mayoría de los comandos de movimento de cinta mt soportan un conteo opcional (por ejemplo, un 2 en este caso), podremos ejecutar la siguiente secuencia:
mt bsf 2
mt fsf
Aún así debemos tomar otra consideración, porque la cinta en este ejemplo ya estaba al comienzo del archivo 1. Al correr mt bsf 2, se intentará rebobinar la cinta dos marcas de archivos. Como el principio de la cinta no tiene una marca de archivo, chocará con el inicio de la misma, produciendo un Error de entrada/salida (I/O error). El comando mt fsf subsiguiente adelantará nuevamente la cinta al archivo 1, esquivando el archivo 0. Si queremos volver al Archivo 0, debemos siempre rebobinar la cinta, con el comando:
mt rewind
Algunas modelos de unidades de cinta son capaces de detectar cuál es la última archivada con datos. En tal caso podríamos avanzar rápidamente la cinta hasta que el cabezal esté en dicho lugar, ingresando:
mt -f /dev/nst0 eod
En nuestro caso, el cabezal volvería a quedar como el la Figura 3...
En resúmen, debemos prestar gran atención a la posición del cabezal con respecto a las marcas de archivo, y elegir el comando apropiado. Si todo esto parece ridículo, probablemente podremos utilizar el direccionador a un n específico, que siempre funcionará (aunque será más lento).
mt rewind
mt fsf archivo
Para expulsar la cinta:
mt offline
mt fsf
También existe un comando para rebobinar la cinta:
mt bsf
Sin embargo, es importante comprender que este comando rebobina la cinta hasta el final del archivo previo, o sea, hasta el comienzo de la siguiente marca de archivo que vea el cabezal.
Digamos que estamos al comienzo del archivo 1, como se muestra en la figura 4. Al ejecutar mt bsf, quedará como se muestra en la figura 5. Si en tal caso ejecutamos un mt status, el número de archivo debería ser 0 con un número de bloque de -1 (pues el controlador no puede calcular el largo del archivo por si mismo). En general, para volver al comienzo del archivo previo cuando estamos al comienzo de un archivo, debemos rebobinar dos veces y luego avanzar una vez el cabezal. Gracias a que la mayoría de los comandos de movimento de cinta mt soportan un conteo opcional (por ejemplo, un 2 en este caso), podremos ejecutar la siguiente secuencia:
mt bsf 2
mt fsf
Aún así debemos tomar otra consideración, porque la cinta en este ejemplo ya estaba al comienzo del archivo 1. Al correr mt bsf 2, se intentará rebobinar la cinta dos marcas de archivos. Como el principio de la cinta no tiene una marca de archivo, chocará con el inicio de la misma, produciendo un Error de entrada/salida (I/O error). El comando mt fsf subsiguiente adelantará nuevamente la cinta al archivo 1, esquivando el archivo 0. Si queremos volver al Archivo 0, debemos siempre rebobinar la cinta, con el comando:
mt rewind
Algunas modelos de unidades de cinta son capaces de detectar cuál es la última archivada con datos. En tal caso podríamos avanzar rápidamente la cinta hasta que el cabezal esté en dicho lugar, ingresando:
mt -f /dev/nst0 eod
En nuestro caso, el cabezal volvería a quedar como el la Figura 3...
En resúmen, debemos prestar gran atención a la posición del cabezal con respecto a las marcas de archivo, y elegir el comando apropiado. Si todo esto parece ridículo, probablemente podremos utilizar el direccionador a un n específico, que siempre funcionará (aunque será más lento).
mt rewind
mt fsf archivo
Para expulsar la cinta:
mt offline
Variables del comando mt y estatus
En resúmen, estas son las variables más comunes del mt:
-
mt status Nos devuelve el reporte de estado.
-
mt fsf n Avanza hasta el comeinzo del primer bloque del archivo siguiente. El parámetro n es opcional, si está especificado avanza n archivadas en lugar de solo una.
-
mt bsf n Rebobina hasta el final del archivo previo. La n es un contador opcional de archivos.
-
mt rewind Rebobina la cinta.
-
mt offline Rebobina la cinta, y luego la prepara para su remoción. En algunas unidades de cinta, la unidad de cinta eyecta el cartucho. En otros, destraba la unidad de modo que la podemos sacar a mano.
-
mt retension Avanza la cinta hasta el final y luego la rebobina. Esto a veces ayuda con las cintas que tienen problemas de lectura.
-
mt erase Borra toda la cintas. Usualmente esto lleva un largo tiempo.
Hay una gran variedad de variables para el
comando, listados en su página de manual, pero normalmente no son muy
útiles a no ser que intentemos extraer bloques desde el centro de una
archivada o que busquemos opciones específicas para una unidad de cintas
SCSI.
Al ejecutar mt status se nos devolverá una serie de códigos de bit de estado (como el código BOT explicado anteriormente. Aquí hay algunos de ellos:
Al ejecutar mt status se nos devolverá una serie de códigos de bit de estado (como el código BOT explicado anteriormente. Aquí hay algunos de ellos:
-
ONLINE La unidad está lista, con una cinta cargada.
-
DR_OPEN La unidad está vacía (posiblemente con la puerta abierta).
-
BOT La posición del cabezal es al principio de la cinta.
-
EOF La posición del cabezal es la de comienzo de un archivo (al final de la marca de archivo).. Este es un código algo confuso, porque se puede confundir con el de "final de archivo".
-
EOT El cabezal está al final de la cinta.
-
EOD El cabezal está al final de la parte grabada de la cinta.
-
WR_PROT La cinta actual está protegida contra escritura.
Comandos para respaldar a cinta
El siguiente es un resumen de los comandos necesarios para controlar una unidad de cinta con el propósito de respaldar/restaurar datos.
En estos ejemplos se utiliza siempre la variable -f /dev/st0 para aclararle al sistema que en los ejemplos, tal dispositivo es nuestra unidad de cinta. Naturalmente debemos cambiarlo si nuestro dispositivo es distinto. Asimismo, si ya configuramos la variable de entorno TAPE como se indicó en el paso anterior, podremos omitir "-f /dev/st0" del comando, o lo que corresponda a nuestro dispositivo.
Para rebobinar la cinta:
mt -f /dev/st0 rewind
Para respadar en la cinta los directorios /www del servidor web Apache y /home con el comando tar (z: usa compresión Gzip):
tar -czf /dev/st0 /www /home
Para saber en qué bloque estamos con el comando mt:
mt -f /dev/st0 tell
Para mostrar una lista de archivos en la unidad de cinta:
tar -tzf /dev/st0
Para restaurar el directorio /www desde la cinta:
cd /
mt -f /dev/st0 rewind
tar -xzf /dev/st0 www
Para descargar el cartucho de cinta:
mt -f /dev/st0 offline
Para mostrar la información de status de la unidad de cinta:
mt -f /dev/st0 status
Para borrar el cartucho de cinta:
mt -f /dev/st0 erase
Podremos avanzar o rebobinar la cinta con el comando mt:
a) ir al final de los datos:
mt -f /dev/st0 eod
b) Ir a la grabación previa:
mt -f /dev/nst0 bsfm 1
c) Avanzar la cinta:
mt -f /dev/nst0 fsf 1
Ejemplo de Respaldos en múltiples cartuchos de cinta en Linux
Para respaldar a múltiples cintas empleamos el siguiente comando (por ejemplo, para respaldar nuestra carpeta de usuario /home):tar -clpMzvf /dev/st0 /home
Para comparar el respaldo de cintas, ingresamos:
tar -dlpMzvf /dev/st0 /home
Para restaurar los datos desde la cinta, en caso de pérdida de datos o fallo de disco duro:
tar -xlpMzvf /dev/st0 /home
...donde,
d: encuentra diferencias entre la archivada y el sistema de archivos.
x: extra los ficheros desde una archivada
l: lista los contenidos de un archivo
p: ignora umask cuando extrae los archivos
M: Crea/lista/extrae un archivo multivolúmen (múltiples cintas).
z: comprime el respaldo enpleando gzip
v: Lista detalladamente los archivos siendo comprimidos,
f /dev/st0 es el dispositivo de cinta
/home: Respalda nuestra carpeta de usuario (puede ser cualquier otra).
Acceso directo a los Archivos de la cinta
tar no es el único comando capaz de escribir archivadas a la cinta. Muchas veces podremos no saber qué hay en la cinta, e incluso si sabemos, podríamos querer copiar un archivo desde la cinta al sistema de archivos local para un análisis más profundo (y mas simple). Para ello podremos emplear al viejo y peludo dd, por ejemplo:
dd if=/dev/nst0 of=archivo_de_salida
dd if=/dev/nst0 of=archivo_de_salida
Esto a veces podría fallar: podríamos recibir un error de E/S debido a que no especificamos el tamaño de bloque correcto. ¿Por qué? La respuesta requiere ciertas explicaciones. Cuando trabajamos con
cintas, a menudo necesitaremos conocer el tamaño de bloque de la cinta.
Las aplicaciones tienden a escribir en la cinta en un tamaño de bloque
predeterminado, y muchas unidades de cinta no permitirán la lectura desde la cinta
a no ser que especificamos correctamente el tamaño de bloque. Esto casi
nunca es un problema, porque normalmente escribimos y leemos con el
mismo programa. Sin embargo, si queremos usar dd para obtener acceso
directo a los archivos de la cinta, podríamos necesitar especificar el
tamaño de bloque manualmente.
El programa que escribe el archivo en la cinta normalmente es quien determina el tamaño de bloque a utilizar. En el caso del programa tar, el tamaño de bloque por defecto es de 10KB (especificado en dd como 10k). Como en el programa dd el tamaño bloque por defecto es diferente (usa normalmente 512 bytes), habremos de alterar su parámetro bs ("tamaño de bloque", block size) para que se adapte al contenido hecho con tar en la cinta. Para ello usaríamos:
El programa que escribe el archivo en la cinta normalmente es quien determina el tamaño de bloque a utilizar. En el caso del programa tar, el tamaño de bloque por defecto es de 10KB (especificado en dd como 10k). Como en el programa dd el tamaño bloque por defecto es diferente (usa normalmente 512 bytes), habremos de alterar su parámetro bs ("tamaño de bloque", block size) para que se adapte al contenido hecho con tar en la cinta. Para ello usaríamos:
dd bs=10k if=/dev/nst0 of=archivo_de_salida
Os listaré los tamaño de bloques comunes para diferentes programas utilizados para el copiado o volcado de datos:
Archivador
|
Tamaño de bloque
|
Parámetro bs
|
---|---|---|
tar
|
10KB (20 x 512 bytes)
|
bs=10k
|
dd
|
512 bytes
|
bs=512
|
cpio
|
512 bytes
|
bs=512
|
dump
|
10KB (20 x 512 bytes)
|
bs=10k
|
Amanda
|
32KB
|
bs=32k
|
Nota: |
A diferencia de tar, dd avanza el cabezal hasta el siguiente archivo en la cinta, en vez de sólo moverlo hasta la marca del archivo.
|
|
No hay comentarios:
Publicar un comentario