sábado 29 de agosto de 2009

No permitir ver amigos de Facebook

Como ocultar amigos de facebook.
Para ocultar tus amigos de facebook, debes ir a; "Amigos" de la barra superior de Facebook, no hagas clic, espera que se desplegue la ventana y hacé click en "Todos mis amigos", ahi vas a ver un boton que dice: "Crear una lista nueva" haz click en él y aparecerá una ventana; don de dice "Escribe un nombre" puedes poner lo que quieras por ejemplo privado, Luego selecciona con un click sobre cada uno de los contactos que quieres agregar a tu lista y por último dale clic al boton "Crear una lista"
Luego vamos a la parte superior derecha de la barra de Facebook y le damos clic a "Configuración" ahi buscamos donde dice Privacidad y le damos click a "Administrar"
aqui buscamos "Perfil" y le damos click qui es donde le vamos a decir a Facebook que no muestre los Amigos de nuestra lista. Entonces vamos hasta donde dice Amigos, abrimos el desplegable y seleccionamos "Personalizar" vamos hasta donde dice "Excepto estas personas" y colocar en la caja de texto el nombre de nuestra lista, en nuestro ejemplo era privado " Por último le damos click al boton "Aceptar" y listo ya tenemos nuestros amigos ocultos.
Quienes quieran seguir los pasos un poco mas rápido o no quieren leer...sigan lo que está en negrita.

lunes 15 de junio de 2009

miércoles 20 de mayo de 2009

Encryptar particiones y archivos linux / Guardar archivos dentro de archivos

Encryptar particiones y archivos linux / Guardar archivos dentro de archivos

Debemos contar con espacio libre en nuestro disco rígido

Luego instalamos cryptsetup.

#sudo aptitude install cryptsetup

El cryptsetup te instalará además los módulos del kernel para realizar encriptación al vuelo.
El criptsetup es el encargado de servir de capa intermedia para encriptar los datos hacia el disco (y desencriptarlos), le llamaré mapper o dispositivo de mapper.

Ahora procedo a crear un dispositivo de mapper para esta partición que encriptaré:

#sudo cryptsetup --verbose --verify-passphrase create sda3 /dev/sda3

si el comando anterior no funciona vean el manual de cryptsetup poniendo en consola

#man cryptsetup

en mi caso funcionó de la siguiente forma.

#cryptsetup -v -y create sda5 /dev/sda3

El comando anterior nos pedirá la clave de encriptación dos veces.
Pongan una clave medio que compleja para que no sea fácil de averiguar.
recomiendo que ponga formatos que comienzan con número y finalizan con número
ejemplo: "22letrasletras2288"
recomiendo evitar los simbolos, si bien son buenos para las claves pueden traernos problemas los tipos de teclados.
Desde ya les comento: NO hay forma trivial de recuperar esta clave. Y aquí está la ganancia. Si no te acuerdas de la clave: olvídate de los datos.
Esta clave no se almacenará en ningún lugar más que en tu mente y en el sticker que seguramente NO pegarás al display de la máquina, pero dentro de la máquina no se almacenará.

Sugiero que no la escriban.

Al terminar de ejecutar el anterior comando, tendrás ahora un dispositivo llamado: /dev/mapper/sda3

mira:

#sudo ls -l /dev/mapper/

A partir de ahora, cualquier cosa que hagamos con /dev/mapper/sda3 realmente se escribirá al disco de forma encriptada.

Así que hagamos algo con esta nueva partición encriptada, formateémosla:

#sudo mkfs.ext3 /dev/mapper/sda3

Fíjense que formateo a la partición encriptada... de esta forma estará lista para recibir datos.

Y listo, podemos montarla donde querramos, por ejemplo podría montarla así:

#sudo mount /dev/mapper/sda3 /home/cristian/Documents

En este caso he montado la partición encriptada en /home/cristian/Documents... ahora todo lo que yo copie hacia /home/cristian/Documents se escribirá de forma encriptada.

Si quisiera que este punto de montaje fuera permanente hago lo siguiente:

Edito /etc/crypttab

sudo vi /etc/crypttab

Al final de este archivo agrego esto:

sda3 /dev/sda3 none checkargs=ext3,tries=3

Grabo y salgo.

Este anterior cambio lo que hará es que cada vez que ubuntu arranque, nos pedirá la clave conque encriptamos el FS y una vez le pongamos la clave continuará arrancando ubuntu ya con /dev/mapper/sda5 creado.

Entonces edito /etc/fstab:

#sudo vi /etc/fstab

y al final agrego esto:

/dev/mapper/sda3 /home/cristian/Documents ext3 defaults,noatime 0 0

Grabo y salgo.

el comando en vi es, dos puntos para poder ejecutar comando, la letra "w" grabar, la letra "q" para salir y enter

:wq enter

El anterior cambio en el archivo /etc/fstab lo que hará es montar /dev/mapper/sda3 en /home/cristian/Documents siempre que arranque el sistema.

Deben saber que ningun sistema de 100% confiable, con mucho conocimiento y sobre todo mucho tiempo es posible bulnerar cualquier sistemas de seguridad.

OJO que dije “es posible heeeeeeeeeeee!!!”

Ahora les voy a dar un ejemplo práctico que consiste en encriptar dos veces la información y ocultarla dentro de un archivo.
Un sistema seguro no se compone por un software que lo proteje bajo una llave es bueno saber que lo mejor es aprender a combinar técnicas de seguridad.
Si les interesa lean esteganografia.

La idea es la siguiente.

Punto 1- Debemos contar con espacio en el dico. El tamaño que nos parezca adecuado de acuerdo a los trabajos que realizamos en mi ejemplo lo que yo guardo son código fuente por lo que no necesito gran cantidad de espacio realizaré el ejemplo lo daremos con 12 GB libres.

Creamos la partición encriptada

#cryptsetup -v -y create sda3 /dev/sda3

la formateamos

#mkfs.ext3 /dev/mapper/sda3

Creamos un directorio para montarla

#mkdir /usr/datos

la montamos en

#mount /dev/mapper/sda3 /usr/datos

ya esta lista para escribir datos en ella

Punto 2- Como todos sabemos en linux todo es un archivo por lo que voy a crear dentro de esta partición un archivo un poco mas chico que la partición, formatearlo y usarlo como si fuese una partición. (espero que se entienda)

Para ello vamos a crear un archivo de 10 GB

#dd if=/dev/zero of=/usr/datos/archivo bs=10240 count=1048576

bs es el número de bits que escribimos cada vez y count el número de veces que lo escribimos.

Luego de creado nuestro archivo, lo formateamos.

Para ello utilizamos el comando

#mkfs.ext3 /usr/datos/archivo

Hecho esto tenemos un archivo con formato de partición que podemos montar en un directorio para que se

vea con mas claridad vamos a crear un directorio en /opt llamado crypt

#mkdir /opt/crypt

montamos nuestro archivo en /opt/crypt

#mount -o loop -t ext3 /usr/datos/archivo /opt/crypt

Aquí puede pasar que no tengan permiso en el directorio o en el archivo chequeen eso antes.

si no lanzo ningún mensaje es porque todo esta bien y podemos escribir normalmente en /opt/crypt

lo bueno de esto es que todo lo que nosotros escribimos en /opt/crypt en realidad se escribe dentro del
archivo que tenemos creamos en /usr/datos con nombre "archivo" y que ademas está dentro de una partición encriptada

ahora podemos encriptar nuestro archivo tambien con gnupg y crear uno o si quieren dos script que se ejecuten en el inicio de linux tal como explique en la nota anterior traten de combinar la técnica de encriptado de particiones con encriptado de información y obtendrán resultados superadores.
Para mas seguridad pueden encriptar los archivos que guarden en su archivo encriptado dentro de su partición encripada

Resumen.
Contamos con espacio libre en nuestro HD /dev/sda

1- Encriptamos la partición sda3

#cryptsetup -v -y create sda5 /dev/sda5

Nos pedirá dos veces la clave

Luego, nos pedira una clave siempre mientras arranca nuetro linux, si la clave es incorrecta no podremos ver el los datos de ella.

2- Formateamos la partición

#mkfs.ext3 /dev/mapper/sda3

Creamos un directorio para montarla

#mkdir /usr/datos

3-La montamos

#mount /dev/mapper/sda3 /usr/datos

4- Creamos un archivo en nuestro caso de 10 GB

#dd if=/dev/zero of=/usr/datos/archivo bs=10240 count=1048576

5- Lo formateamos.

#mkfs.ext3 /usr/datos/archivo

6- Creamos un directorio para montar el archivo

mkdir /opt/crypt

7- Lo montamos

#mount -o loop -t ext3 /usr/datos/archivo /opt/crypt

Espero que les sea útil.

ejecutar un script en el arranque de linux

Si lo que deseamos es iniciar un script o programa al arranque del sistema, sin tener que iniciar la sesion, entonces para eso explico lo siguiente.

Primero debes comprender que al arrancar el sistema entras en un nivel de ejecución o Runlevel.

Para saber que runlevel te encuentras puedes escribir en una Terminal.

#runlevel

sin embargo normalmente ubuntu (como hijo de Debian) corre en el runlevel 2 por defecto.

Esto quiere decir, que si entras en /etc/rc2.d/ encontraras alli una lista de todos los scripts que se ejecutan al arrancar el sistema. Si nos fijamos bien todos son enlaces simbolicos a archivos que se encuentran en /etc/init.d/ que es donde están todos los daemon es decir, todo lo que funciona independientemente y sin emitir a la Terminal un mensaje para el usuario.

De modo que para ejecutar un script o programa al arranque del sistema, primero es necesario darle caracteristicas de daemon y posteriormente crees un enlace simbolico de este daemon en la carpeta /etc/rc2.d/ de la siguiente forma:

1) Darle permiso de ejecucion al script, en la Terminal y en la carpeta donde esta el script escribimos:

#sudo chmod -x nombrescript

Usamos el comando sudo si no somos root para ejecutar comandos con permisos de root

2) Copiarlo a la carpeta /etc/init.d/

#sudo cp /etc/init.d/nombrescript

3) Lo hacemos daemon, es decir que se ejecute al incio de la sesion

#sudo update-rc.d nombrescript

4) Nos cambiamos al directorio /etc/rc2.d/

cd /etc/rc2.d/

5) Listamos todo lo que hay en el directorio, observa que todos los archivos comienzan con una S (start) mayuscula y seguidos de un numero entre el 00 y el 99. Estos numeros determinan el orden en que se ejecutan cada uno de los proceso en este archivo. Elije un numero (##) que no exista, de preferencia de los ultimos ya que lo utilizaremos en el siguiente paso.

#ls

6) Y hacemos un enlace simbolico del script en la carpeta /etc/rc2.d/

#sudo ln -s /etc/init.d/nombrescript /etc/rc2.d/S##nombrescript

Con eso hemos logrado que nuestro script o programa se ejecute al encender la PC.

Como ejemplo mas practico veamos el caso del daemon de ddclient, en ESTA entrada explico como instalar ddclient en modo daemon, porterior a eso solo nos queda hacer


#sudo ln -s /etc/init.d/ddclient /etc/rc2.d/90ddclient

y listo el ddclient se ejecutara al encender nuestra PC.

viernes 27 de marzo de 2009

Como recuperar tu grub despues de instalar Windows 7 en otra partición

Existen tres formas de hacerlo pero explicare la menos comentada en los foros, ya que las otras dos son comunmente mencionadas.

Lo que voy a hacer es recuperar el grub con un live cd de ubuntu y cambiando el directorio raiz.

Vale aclarar que lo que me llevo a investigar esto fue que instalé Windows XP en mi notebook, luego instale Ubuntu 8.10 en otra particion y luego Windows 7 en otra.

Despues de intalar Windows 7 lo que paso es que aparecia un booloader que permitia seleccionar Windows XP y Windows 7 pero no podía arrancar con Ubuntu
Iniciando con un live cd de ubuntu y haciendo un

#fdisk -l
Veia lo siguiente

/dev/sda1 * HPFS/NTFS
/dev/sda2 HPFS/NTFS
/dev/sda3 Extendida
/dev/sda5 Linux
/dev/sda6 Linux swap / Solaris

Relatado el problema, daré la solución

1. Antes que nada, crear un directorio y montar allí la partición de Ubuntu:

$ sudo mkdir /media/ubuntu

$ sudo mount /dev/hda5 /media/ubuntu

asegurense de poder escribir en la particion montada si no se puede hagan

$ sudo mount -t ext3 -o rw /dev/hda5 /media/ubuntu

2. Luego conectar el directorio dev del livecd con el de la partición Ubuntu:

$ sudo mount --bind /dev /media/ubuntu/dev

3. Cambiamos de directorio raíz

El comando necesario para cambiar el origen del directorio raiz es:

$ sudo chroot /media/ubuntu/

4. Ahora instalamos el GRUB en el MBR del primer disco duro, que normalmente estará configurado como Primary Master (sda):

# grub-install /dev/sda

Reiniciar y listo, problema solucionado.
En mi caso aparece grub con los kernels compilados y cuando selecciono windows aparece el bootloader de windows 7 que me permite elegir xp o 7.
Si alguien necesita que publique las otras dos formas solo tiene que pedirlo y con gusto lo haré

lunes 23 de marzo de 2009

Buscar archivos

1- Buscar Archivos accedidos y modificados hace n días

#find /lugar -atime -n

2- Buscar Archivos que no fueron cambiados o accedidos

#find /lugat -atime +n

3- Buscar Archivos accedidos hace exactamente n días

#find /lugar -atime n

find -atime cambiados
find -ctime lectura
find -ntime data

Existen variables para buscar por minuto.

# man find
mmin

Eliminar beep de escritorio gráfico

Ya les comenté anteriormente como se elimina el beep de la consola y agregué que desactivar el módulo puede causar un mal funcionamiento de alguna tecla ejemplo la "m" min.

Con la siguiente línea se desactiva el sonido beep pero del escritorio X.

# xset b off

Ver como progresa el tamaño de un archivo

Ver como progresa el tamaño de un archivo mientras se copia o crea

#tail -f nombre_del_archivo

como filtrar texto de archivo en linux

Filtrar texto de archivo

#send -n -e '/*/d' -e'palabrax'/p' < nombre del archivo > nombre de archivo1

Esto hace que las líneas que no contienen la palabra (palabrax) se borren

#egrep -i “expresion” 'find . -type f -print' > archivo

#find . Type f -exec egrep -i “expresion” /dev/null{};

Runlevels Unix

Runlevels son los distintos niveles en los que pueden operar los sistemas UNIX

Runlevel 1 (Modo administrador del sistema)
Runlevel 2 y 3 (Modo multi-usuario)
Runlevel (Modo definible por el usuario)
Runlevel 0 y 6 (Modo Shutdown)
Runlevel 5 (Modo firmware)

Cambiar nivels de ejecución.

¿Como?

#/sbin/init (nivel)
#/sbin/telinit (nivel)

¿Qué pasa?

El comando init lee el archivo /etc/inittab
RC (nivel) es corrido por /sbin/init
Los sistemas de archivos son verificados y montados o desmontados tal como lo requiera el nuevo nivel
Los servicios de puertos I/O (entrada/salida) son habilitados o deshbilitados según corresponda.

#/sbin/init q

Reconoce los cambios efectuados en el archivo /etc/inittab desde el último cambio en el nivel de ejecucion.

Correr los niveles a, b y c

Son pseudoniveles de ejecución utilizado para acceder a recursos que generalmente no estan disponible
No cambia el nivel de ejecucion vijente en el sistema.

Clonar disco por red

Cliente

#nc -L -P 4000 | dd of=/donde_lo_guardo/image.img

Server

#dd if=/dev/hda |nc ip 4000

sábado 21 de marzo de 2009

MySQL nociones básicas

Instalación

Para instalar MySQL, debes instalar los siguientes paquetes: mysql-server y mysql-client.
Existe un entorno gráfico del programa llamado mysql administrator, dependiente de los anteriores paquetes Y opcionalmente el paquete 'mysql-query-browser, que servirá para realizar consultas.

Configuración

Se te pedirá crear la contraseña del administrador cuando se instale el programa.

En versiones antiguas no se crea con la instalación. Debemos crearla manualmente, nada más instalar el servidor. Para hacerlo teclea en un Terminal.

$ sudo /usr/bin/mysqladmin -u root password clavenueva

Puedes cambiar el archivo /etc/mysql/my.cnf para configurar las opciones básicas -- archivo de registro, número de puerto, etc.
Mira el archivo /etc/mysql/my.cnf para más detalles.

Una vez asignada una contraseña al administrador, puedes conectar con el servidor mySQL de la manera siguiente:

$ mysql -h localhost -u root -p

Donde "localhost" és la dirección de tu host y "root" el nombre de usuario. A continuación introduce el password de la base de datos. Te aparece la siguiente pantala:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20 to server version: 5.0.24a-Debian_9ubuntu2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

Para desconectar,

mysql> QUIT
Bye

Conexión desde un host remoto

Por defecto, MySQL no permite que cualquier usuario puede acceder a las bases de datos usando un conexión TCP. Para que lo permita debes crear un usuario con los permisos correspondientes.

También tendrás que editar el fichero /etc/mysql/my.cnf y modificar la línea:

bind-address = 127.0.0.1

Cambiándola por la direccion IP del servidor, o en caso de que se quiera escuchar en todas las IPs:

bind-address = 0.0.0.0 o la IP que tengas en tu seridor si tienes IP fija

Despues reinicia el servicio.

shell>cd etc/init.d
shell>./mysql restart

Para que todos los demás ordenadores tengan acceso al servidor. Para más seguridad puedes poner solamente una lista de las IPs de los ordenadores que quieres que tengan acceso.

Si aún no te puedes conectar desde un ordenador remoto tendrás que editar el fichero /etc/hosts.allow y añadir la línea:

mysqld: all

Gestión de usuarios

Crear un usuario

Para la creación de usuarios tendremos que conectarnos al servidor MySQL (ver más arriba) con un usuario que tenga el permiso global CREATE USER o el permiso INSERT para la base de datos mysql. La sintaxis es la siguiente:

CREATE USER usuario IDENTIFIED BY 'password';

Más información en Sintaxis de CREATE USER.

Eliminar un usuario

El usuario que usemos en la conexión debe tener el permiso global CREATE USER o el permiso DELETE para la base de datos mysql. La sintaxis es la siguiente:

DROP USER usuario;

Más información en Sintaxis de DROP USER.

Dar permisos a un usuario

Los permisos pueden darse en varios niveles:

* Nivel global
* Nivel de base de datos
* Nivel de tabla

La sintaxis es:

GRANT tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} TO usuario;

Así para dar el permito SELECT al usuario pepe sería:

GRANT SELECT ON *.* TO pepe;

Más información en Sintaxis de GRANT y REVOKE.

Quitar permisos a un usuario

La sintaxis es:

REVOKE tipo_privilegio ON {nombre_tabla | * | *.* | nombre_bd.*} FROM usuario;

Más información en Sintaxis de GRANT y REVOKE.

Gestión de las bases de datos

Crear una Base de datos

Para crear una base de datos nueva puedes hacerlo de, al menos, dos formas. Abre un Terminal y ejecuta lo siguiente.

$ mysql -h servidor -u usuario -p
Enter password:
mysql> CREATE DATABASE nombre_de_la_base_de_datos;
quit

Más información en Sintaxis de CREATE DATABASE. También puedes usar la orden mysqladmin.

$ mysqladmin -h servidor -u usuario -p create nombre_de_la_base_de_datos

Eliminar una Base de datos

Para eliminar una base de datos que ya no es necesaria en el sistema también tenemos, al menos, dos métodos. En un ventana de Terminal ejecuta.

$ mysql -h servidor -u usuario -p
Enter password:
mysql> DROP DATABASE nombre_de_la_base_de_datos;
quit

Más información en Sintaxis de DROP DATABASE. También puedes obtener el mismo resultado con el comando mysqladmin.

$ mysqladmin -h servidor -u usuario -p drop nombre_de_la_base_de_datos

Hacer Backup de una Base de datos

Para hacer una copia de seguridad de una base de datos tiene el siguiente comando:

$ mysqldump -h servidor -u usuario -p nombre_de_la_base_de_datos > backup.sql

Para hacer una copia de seguridad de las bases de datos MySQL de un servidor puedes usar el siguiente script:

#!/bin/bash

## BEGIN CONFIG ##
HOST=localhost
USER=usuario
PASS=secreto
BACKUP_DIR=Backup
## END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi

# Backup de MySQL
MYSQL_DBS=$(mysqlshow -h $HOST -u $USER -p$PASS | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /mysql/) { print $2 }');

for DB in $MYSQL_DBS ; do
echo "* Backuping MySQL data from $DB@$HOST..."
mysqldump -h $HOST -u $USER -p$PASS $DB > $BACKUP_DIR/mysql_$DB.sql
done

Restaurar el Backup de una Base de datos

Para restaurar una base de datos creada anteriormente ejecuta en un Terminal.

$ mysql -h servidor -u usuario -p nombre_de_la_base_de_datos < backup.sql
La base de datos “nombre_de_la_base_de_datos” debe existir en el sistema antes de restaurar el fichero backup.sql. Si no sabes como crear una base de datos lee Crear una Base de datos.

Recuperar la contraseña de ROOT del Serivor MySQL

Para recuperar,o mejor dicho resetear, la contraseña de ROOT del servidor MySQL se puede hacer lo siguiente:

$ /etc/init.d/mysql stop
$ mysqld_safe --skip-grant-tables &
$ mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('nueva_contraseña') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> \q
$ killall mysqld;
$ /etc/init.d/mysql start

Comparación: Lenguajes de programación - cuchillos

viernes 20 de marzo de 2009

Montar directorios, CDs y Diskettes en consola Linux

Montar una carpeta compartida

(El término “montar” en linux es similar a conectar una unidad de otra pc en el explorer de windows). Es es conveniente siempre que la carpeta destino esté vacia.

#mount -t smbfs -o username=usuario //maquina/carpeta_origen /destino

destino: Es la carpeta del ordenador local donde se va a mostrar el contenido de la carpeta origen.

IMPORTANTE:

Si la carpeta fue compartida por contraseña, hay que poner la contraseña de la carpeta, no la del usuario. No hay que omitir “-o username=usuario”.

Montar Cds:

#mount /dev/sr0 /mnt/cdrom

en algunos linux nuevos podemos montar la unidad de cd

#mount /dev/cdrom /media/cdrom0

Montar Diskettes:

Puede que alguien piense que es inutil decir como montar un Diskette en el año 2009 pero creanme que hay que conocer como se hace esta operación ya que existiendo muchos servidores no poseen otro tipo de unidad o poseen cinta y al momento de hacer tareas de mantenimiento no resulta útil el diskette.

La forma de hacerlo es:

#mount /dev/fd0 /mnt/floppy

Para desmontar cualquier dispositivo

#umount dispositivo

Ejemplo: Para desmontar un CD

#umount /dev/sr0

#umount /dev/cdrom0

o

#umount /media/cdrom

Grabación de Cd/DVD usando consola LINUX

Grabación de Cd

Vamos a suponer que estamos en /usr/public, que esta compartido para todos los usuarios como en red de windows

Debemos instalar mkisofs y cdrecord

#apt-get install mkisofs cdrecord

Grabaremos un cd de datos.

#cd /usr/public

Creamos la carpeta 'dirdata', que contiene los datos que deseamos grabar

#mkdir dirdata

desde otro host de la red transferimos el material a grabar

1- Single Session

Se hace en 3 steps:

a) crear la imagen del directorio dirdata, a la que llamamos 'cdimage' con:

#mkisofs -v -r -J -o cdimage.iso -V cdimage /dirdata

donde 'cdimage.iso' es el nombre que queremos darle al archivo con la imagen, 'cdimage' el label del CD para Windows y '/dirdata' contiene los datos.

b) Testear la imagen montandola en /mnt/isotest

#mount -t iso9660 -o ro,loop=/dev/loop cdimage.iso /mnt/isotest

#cd /mnt/isotest


Verificamos que el contenido esté correcto

c) Grabar la imagen ya creada, con:

#cdrecord -v dev=4,0,0 -eject speed=24 -pad cdimage.iso

Si no conocen que cual es el dispositivo pueden averiguarlo con.

#cdrecord -scanbus


y les dirá algo asi como:

Linux sg driver version: 3.5.27
Using libscg version ’schily-0.8′.
cdrecord: Warning: using inofficial libscg transport code version (schily - Red Hat-scsi-linux-sg.c-1.83-RH ‘@(#)scsi-linux-sg.c 1.83 04/05/20 Copyright 1997 J. Schilling’).
scsibus4:
4,0,0 400) ‘HL-DT-ST’ ‘DVD-RAM GSA-H55N’ ‘1.02′ Removable CD-ROM
4,1,0 401) *
4,2,0 402) *
4,3,0 403) *
4,4,0 404) *
4,5,0 405) *
4,6,0 406) *
4,7,0 407) *

Lo cual nos dice que nuestro dispositivo es el 4,0,0, (dev=4,0,0)

Si agregamos la opcion '-dummy', ésta nos permite hacer un test previo a la grabación

#cdrecord -v dev=4,0,0 -eject speed=24 -pad -dummy cdimage.iso

2- Single session ON-THE-FLY

#mkisofs -v -r -J /dirdata | cdrecord -v dev=4,0,0 -eject speed=24 -pad

-Multisession

a) First Session:

#mkisofs -v -r -J -o cdimage.iso -V cdimage /directory

#cdrecord -v dev=4,0,0 -eject speed=24 -pad -multi cdimage.iso

b) Second and latter Session

Debe obtener el pointer de la última sesión con:

#cdrecord -v dev=4,0,0 -msinfo

Esto nos da dos números xx,yy, con ellos apuntamos mkisofs:

#mkisofs -v -r -J -C xx,yy -M 4,0,0 -o cdimage.iso /dirdata

#cdrecord -v dev=0,0,0 -eject speed=24 -pad -multi cdimage.iso

Cerramos el cd omitiendo la opción '-multi'

#cdrecord -v dev=4,0,0 -eject speed=24 -pad cdimage.iso

Copiar un CDRom

a) una forma es usando el comando dd:

#dd if=/dev/sr0 of=/usr/public/cdimage.iso

#cdrecord -v dev=4,0,0 -eject speed=24 -pad cdimage.iso

PD: si no sabes si tu dispositivo es el sr0 podes hacer

#cdrecord -scanbus

b) La otra forma de copiar un cd es usando readcd (que viene con cdrecord)

#readcd dev=4,0,0 f=cdimage.iso

#cdrecord -v dev=4,0,0 -eject speed=24 -pad cdimage.iso

5- Regrabables

Making iso and burning same as CD-R erase with:

#cdrecord -v dev=4,0,0 -force blank=all

tambien se puede usar

#cdrecord -v dev=/dev/hdb blank=fast

Grabar DVD

Si el original está en formato dvd-5, para hacerlo en 5 pasos desde la consola:

1) dvdbackup -M -i/dev/hdc -v 2 -n NOMBRE_DVD -o /mnt/folder_con_5gb_de_espacio
2) cd /mnt/folder_con5gb_de_espacio/NOMBRE_DVD; mkdir AUDIO_TS; chmod 0700 AUDIO_TS
3) cd VIDEO_TS; /usr/local/bin/region-zero
4) cd /mnt/folder_con5gb_de_espacio
5) growisofs -Z /dev/hdc -dvd-video -V NOMBRE_DVD NOMBRE_DVD

Donde /dev/hdc es el device correspondiente al dvd

PD : les dejo el codigo de region-zero

/* compile me: */
/* gcc -o region-zero region-zero.c */
/* set my perms: */
/* chmod 0755 region-zero */
/* move me to someplace useful: */
/* mv region-zero /usr/local/bin */
/* run me in directory VIDEO_TS */

main() {
FILE * fd;
fd = fopen("VIDEO_TS.IFO"
fseek(fd,0x23,SEEK_SET); /* hex position 0x23 is the region code byte */
putc(0x0,fd); /* write zeros to all the region code bits */
}