Hace tiempo que el backup de los ficheros sensibles de mi server no cabe en un único CDROM. El resultado práctico de esto es que el proceso automatico de backup requiere ahora de intervención humana, por lo que hace tiempo que no hago backups a soportes fisicos.
Hoy por fin, me he decidido a solventar el problema. Para ello he sustituido la actual unidad de CDs, por una de DVDs. Concretamente una regrabadora de DVDs/CDs 16x de LG GSA-4167B.
A continuación explico como instalar una grabadora de DVDs/CDs en FreeBSD 5.3 y como utilizar growisofs
para quemar DVDs.
Grabando CDs en FreeBSD:
Actualmente, utilizaba un sencillo script que metia todos los datos sensibles del server (las webs básicamente) en en tarball, creaba la imagen mediante mkisofs
y lo volcaba todo al CD mediante burncd
.
Esta tool forma parte de la base del sistema FreeBSD, por lo que suele funcionar sin problemas si tienes las suerte de que tu grabadora este entre las soportadas. Si no lo está, simpre te queda la opción de tratar de acceder al dispositivo a traves del subsistema SCSI. Para ello, hemos de recompilar el kernel y ańadir soporte ATAPI/CAM.
Una vez hecho esto, deberiamos poder utilizar el programa cdrecord
para para quemar nuestros CDs.
Grabando DVDs en FreeBSD:
Para trabajar con DVDs, utilizaremos growisofs
.
Esta tool es en realidad un frontend a mkisofs
pero además nos brinda la posibilidad de quemar directamente los DVDs. De esta manera, con growisofs
podemos crear la imagen ISO y quemarla al DVD en un sólo paso.
growisofs
es parte del paquete dvd+rw-tools
, y accede a la grabadora utilizando el subsistema SCSI. Así pues necesitaremos un kernel con soporte ATAPI/CAM.
En primer lugar, instalaremos las dvd+rw-tools
en nuestros sistema:
cd /usr/ports/sysutils/dvd+rw-tools
make install && make clean
Ahora necesitamos compilar un kernel con soporte ATAPI/CAM:
cd /usr/src/sys/i386/conf/
cp GENERIC GENERIC_wtih_ATAPI_CAM
Editamos el fichero GENERIC_wtih_ATAPI_CAM
y ańadimos esto:
device atapicam # ATAPI/CAM Support using the SCSI subsystem
config GENERIC_wtih_ATAPI_CAM
cd ../compile/GENERIC_wtih_ATAPI_CAM/
make depend
make
make install
Ahora, tras rebotar deberiamos tener acceso a nuestra grabadora utilizando el subsistema SCSI:
Antes de rebotar vemos esto:
root@patxi:~# camcontrol devlist
QUANTUM ATLAS10K2-TY184L DA40 at scbus0 target 0 lun 0 (pass0,da0)
root@patxi:~# cdrecord --scanbus
Cdrecord 2.00.3 (i386-unknown-freebsd5.3) Copyright (C) 1995-2002 Jg Schilling
Using libscg version 'schily-0.7'
0,0,0 0) 'QUANTUM ' 'ATLAS10K2-TY184L' 'DA40' Disk
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) *
Si todo va bien, tras reiniciar el sistema deberiamos ver algo asi como:
root@patxi:~# cdrecord --scanbus
Cdrecord 2.00.3 (i386-unknown-freebsd5.3) Copyright (C) 1995-2002 Jg Schilling
Using libscg version 'schily-0.7'
scsibus0:
0,0,0 0) 'QUANTUM ' 'ATLAS10K2-TY184L' 'DA40' Disk
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) *
scsibus1:
1,0,0 100) 'HL-DT-ST' 'CD-RW GCE-8400B ' '1.02' Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
Bien! Ya tenemos soporte. Ahora sólo hemos de pinchar la grabadora de DVDs y ver si el sistema también es capaz de detectarla.
root@patxi:~# cdrecord --scanbus
Cdrecord 2.00.3 (i386-unknown-freebsd5.3) Copyright (C) 1995-2002 Jg Schilling
Using libscg version 'schily-0.7'
scsibus0:
0,0,0 0) 'QUANTUM ' 'ATLAS10K2-TY184L' 'DA40' Disk
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) *
scsibus1:
1,0,0 100) 'HL-DT-ST' 'CD-RW GCE-8400B ' '1.02' Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
Bueno, parece que vamos por el buen camino. A ver si además de verlo somos capaces de leer y/o grabar algo. En primer lugar hemos de saber a traves de qué dispositivo accederemos a la unidad. Para ello, el comando camcontrol puede sernos de utilidad:
root@patxi:~# camcontrol devlist
QUANTUM ATLAS10K2-TY184L DA40 at scbus0 target 0 lun 0 (pass0,da0)
HL-DT-ST DVDRAM GSA-4167B DL12 at scbus1 target 0 lun 0 (pass1,cd0)
Ahora ya lo sabemos (/dev/cd0
) introducimos un DVD en la unidad y utilizando el siguiente comando veremos si somos capaces de reconocer el DVD que hemos introducido:
root@patxi:~# dvd+rw-mediainfo /dev/cd0
INQUIRY: [HL-DT-ST][DVDRAM GSA-4167B][DL12]
GET [CURRENT] CONFIGURATION:
Mounted Media: 10h, DVD-ROM
Speed Descriptor#0: 02/404849 R@2.5x1385=3503KB/s W@6.1x1385=8467KB/s
Speed Descriptor#1: 02/404849 R@2.5x1385=3503KB/s W@5.1x1385=7056KB/s
Speed Descriptor#2: 02/404849 R@2.5x1385=3503KB/s W@4.1x1385=5645KB/s
Speed Descriptor#3: 02/404849 R@2.5x1385=3503KB/s W@3.1x1385=4234KB/s
Speed Descriptor#4: 02/404849 R@2.5x1385=3503KB/s W@2.0x1385=2822KB/s
Speed Descriptor#5: 02/404849 R@2.5x1385=3503KB/s W@1.0x1385=1411KB/s
Speed Descriptor#6: 02/404849 R@2.5x1385=3503KB/s W@0.5x1385=706KB/s
READ DVD STRUCTURE[#0h]:
Media Book Type: 01h, DVD-ROM book [revision 1]
Legacy lead-out at: 2080080*2KB=4260003840
READ DISC INFORMATION:
Disc status: complete
Number of Sessions: 1
State of Last Session: complete
Number of Tracks: 1
READ TRACK INFORMATION[#1]:
Track State: complete
Track Start Address: 0*2KB
Free Blocks: 0*2KB
Track Size: 2080080*2KB
FABRICATED TOC:
Track#1 : 14@0
Track#AA : 14@2080080
Multi-session Info: #1@0
READ CAPACITY: 2080080*2048=4260003840
Vale, ahora metemos el primer DVD que tengamos a mano e intentaremos montarlo:
root@patxi:~# mount_cd9660 /dev/cd0 /mnt
root@patxi:~# ls /mnt
Bueno, la prueba final es tratar de grabar algo en un DVD:
root@patxi:~# growisofs -dvd-compat -Z /dev/cd0 -J -R /home/melmak/backup.tar
Executing '/usr/local/bin/mkisofs -J -R /home/melmak/backup.tar | builtin_dd of=/dev/pass1 obs=32k seek=0'
/dev/pass1: "Current Write Speed" is 8.2x1385KBps.
1.13% done, estimate finish Thu Feb 2 23:32:49 2006
2.27% done, estimate finish Thu Feb 2 23:17:23 2006
3.40% done, estimate finish Thu Feb 2 23:12:15 2006
.
.
.
98.48% done, estimate finish Thu Feb 2 23:02:22 2006
99.62% done, estimate finish Thu Feb 2 23:02:21 2006
Total translation table size: 0
Total rockridge attributes bytes: 251
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used bac4
441712 extents written (862 Mb)
builtin_dd: 441712*2KB out @ average 6.5x1385KBps
/dev/pass1: flushing cache
/dev/pass1: updating RMA
/dev/pass1: closing disc
Ahora podemos montar el DVD para comprobar que los datos se han grabado correctamente.
En el caso de utilizar un DVD regrabable, antes de quemarlo deberemos formatearlo. Pata ello utilizaremos la herramienta dvd+rw-format:
dvd+rw-format -blank /dev/cd0
Esto es todo. Os dejo unas fotos de todo el proceso aquí.
Más info en el Freebsd Handbook:
Creating and Using Optical Media (CDs)
Creating and Using Optical Media (DVDs)