Saltar al contenido
La bitácora de FreeMEM by Francisco Tapias Bravo

Apuntes, proyectos, conocimiento libre y hacktivismo

2 min de lecturaArchivo de tapiasbravo.com

Grabar CDs con un solo comando

Cada vez me convenzo más, que la linea de comandos puede llegar a ser infinitamente más potente que el mejor entorno gráfico. El ejemplo de hoy es crear isos y grabarlos «on the fly» con un único comando. En realidad vamos a usar dos programas, el mkisofs y el cdrecord. Ambos, debidamente organizados en un scriptillo, ofrecerán tal potencia.

Al grano:

Creamos un archivo txt que se llame «graba» con permisos de ejecución

chmod +x graba

editamos el archivo y ponemos esto:

#!/bin/bash

mkisofs -JR «$1″|cdrecord -v -eject speed=10 dev=0,0,0 –

El dev=0,0,0 puede variar de una máquina a otra y eso se averigua así:

cdrecord –scanbus

Cdrecord 2.0 (i686-pc-linux-gnu) Copyright (C) 1995-2002 Jörg Schilling

Linux sg driver version: 3.1.24

Using libscg version ‘schily-0.7’

scsibus0:

0,0,0 0) ‘HP ‘ ‘CD-Writer+ 9300 ‘ ‘1.0c’ Removable CD-ROM

0,1,0 1) *

0,2,0 2) *

0,3,0 3) *

0,4,0 4) *

0,5,0 5) *

0,6,0 6) *

0,7,0 7) *

Como se puede ver yo tengo en el dev 0,0,0 una ‘HP ‘ ‘CD-Writer+ 9300 ‘ ‘1.0c’

creado el archivo solo nos queda meter el cd virgen en la grabadora y teclear

./graba [nombre del archivo o directorio]

o si quieres grabar el contenido de un directorio puedes situarte en él y teclear

./graba .

Explicación de lo que hace nuuestro script. Mkisofs crea un iso en formato Joliet+Rock Ridge que es pasado por tubería a cdrecord que finalmente quema el CD. Así de fácil.

Aquí os paso el script mucho más mejorado capaz de comprobar el tamaño de lo que vamos a grabar para ver si cabe o no en el CD además de poder meterle el nombre al VOLUMEN del CD. Este script mejorado me lo mandó mi amigo Daniel Fernández.

#!/bin/sh

#NOTA: Para usar este script hay que poner el nombre de volumen:
#
# Ej:
#
# grabafile /home/pepe «Directorio de pepe»
#

# Configuracion
MKISOFS=»mkisofs»
CDRECORD=»cdrecord»
MKIOPTIONS=»-quiet -RJ -V»
CDROPTIONS=»-v -dao -eject speed=10 dev=0,0,0″
CDBLOCKS=`${MKISOFS} -print-size ${MKIOPTIONS} «$2» «$1″`

# Comandos
${MKISOFS} ${MKIOPTIONS} «$2» «$1» |
${CDRECORD} ${CDROPTIONS} tsize=${CDBLOCKS}s –

Publicado en old.tapiasbravo.com el 7 de octubre de 2004. Recuperado de la Wayback Machine en 2026.