lunes, 5 de septiembre de 2022

Grabación de CD/DVD/BD en Linux

Con conexiones a internet de gran ancho de banda y discos duros o memorias flash de gran capacidad, se ha reducido el uso de discos ópticos. Aún así la grabación en discos CD, DVD o BD (Blu-Ray Disk) puede ser útil para copias de seguridad, archivo de datos, paso de datos a dispositivos antiguos o intercambio de alguna información. En Linux se pueden usar varios programas, yo suelo utilizar wodim para CD y growisofs para DVD/BD. La grabadora que uso es una Hitachi-LG BH16NS40.

Los medios de almacenamiento electrónicos como discos duros o memorias flash tienen el problema de que sus componentes electrónicos pueden fallar en cualquier momento y hacer muy difícil la recuperación de los datos. Esto hace que no sean buen medio para copias de seguridad. El disco óptico no tiene estos problemas y cuenta con algunas de las ventajas de los sistemas profesionales de copia de seguridad en cinta magnética. Almacenando los discos en un lugar donde no estén expuestos a altas temperaturas, humedad o luz pueden durar muchos años. Si queremos estar más seguros de que se conserven los datos durante mucho tiempo podemos usar discos M-DISC.

A la hora de elegir un tipo de disco debemos conocer su capacidad y cuanto ocupan los archivos que queremos grabar. En informática para medir cantidades se utilizan dos tipos de unidades: decimales potencia de 10 y binarias potencia de 2. Por ejemplo, un megabyte (MB) es 106 bytes y un mebibyte (MiB) es 220 bytes. En muchas ocasiones no se indica correctamente cual es la unidad. En el caso de los CD pone que su capacidad es 700 MB cuando en realidad es 700 MiB. En los DVD/BD no existe este problema, se indica correctamente su capacidad en gigabytes (GB), 109 bytes. También hay que tener en cuenta que la capacidad indicada en los discos no es exacta sino un redondeo.

Por otro lado los administradores de archivos u otro software no suelen distinguir entre unas unidades u otras. Es común que con un archivo de 1.000.000 bytes unos programas indiquen que su tamaño es 1 MB (1.000.000/1000/1000) y otros 0.95 MB (1.000.000/1024/1024), cuando lo correcto seria 0,95 MiB. En el artículo Megabits, Megabytes y Mebibytes ya traté estos problemas. Al calcular el tamaño de los archivos y elegir el tipo de disco necesario para almacenarlos debemos asegurarnos de usar la misma unidad de medida para los archivos y el disco. A continuación se muestra la capacidad de los discos más usados en las diferentes unidades.

DiscoBytesMegabytesMebibytesGigabytesGibibytesRedondeo
CD-R737.280.000737,28703,125700 MiB
DVD-R4.707.319.8084,7073198084,3840332031254,7 GB
DVD+R4.700.372.9924,7003729924,37756347656254,7 GB
DVD-R Doble Capa8.543.666.1768,5436661767,95690917968758,5 GB
DVD+R Doble Capa8.547.991.5528,5479915527,96093758,5 GB
BD-R25.025.314.81625,02531481623,30664062525 GB
BD-R Doble Capa50.050.629.63250,05062963246,6132812550 GB
BD-R XL - Triple Capa100.103.356.416100,10335641693,228515625100 GB

La grabación de archivos en el disco óptico se suele hacer con el sistema de archivos ISO 9660. También es posible utilizar el sistema de archivos UDF, que ofrece la posibilidad de crear, eliminar y modificar archivos después de grabar el disco. ISO 9660 tiene varios niveles de compatibilidad. En el nivel 1 el nombre de los archivos tiene el formato 8.3, nombres de hasta 8 caracteres y extensión de hasta 3 caracteres. En los siguientes niveles el nombre del archivo puede tener hasta 31 caracteres incluyendo nombre y extensión. Además solo se pueden usar letras ASCII mayúsculas, números y guion bajo. Para superar estas limitaciones se crearon las extensiones Joliet y Rock Ridge. Esta última además añade las características de los sistemas de archivos de sistemas UNIX. Los datos del sistema de archivos ocupan espacio en el disco, dejando menos espacio para los archivos.

Las grabadoras se controlan mediante SCSI Multimedia Commands (MMC). En Linux podemos ver las grabadoras instaladas con el comando lsscsi y se accede a ellas mediante los dispositivos /dev/sr*. El programa sginfo permite ver información SCSI de las grabadoras.

# lsscsi
 
[6:0:0:0]    cd/dvd  HL-DT-ST BD-RE  BH16NS40  1.05  /dev/sr1
 
 
# sginfo -a /dev/sr1

INQUIRY response (cmd: 0x12)
----------------------------
Device Type                        5
Vendor:                    HL-DT-ST
Product:                   BD-RE  BH16NS40
Revision level:            1.05

No serial number (error doing INQUIRY, supported VPDs)

Read-Write Error Recovery (cdvd) mode page (0x1)
------------------------------------------------
AWRE                               0
ARRE                               0
TB                                 0
RC                                 0
PER                                0
DTE                                0
DCR                                0
Read Retry Count                   32
EMCDR                              0
Write Retry Count                  0

Write parameters mode page (0x5)
--------------------------------
BUFE                               0
LS_V                               0
Test Write                         0
Write Type                         1
MultiSession                       0
FP                                 0
Copy                               0
Track Mode                         4
Data Block type                    8
Link size                          0
Initiator app. code                0
Session Format                     0
Packet size                        32
Audio Pause Length                 150
Media Catalog number               0x00000000000000000000000000000000
Int. standard recording code       0x00000000000000000000000000000000
Subheader byte 1                   0x00
Subheader byte 2                   0x00
Subheader byte 3                   0x00
Subheader byte 4                   0x00

Caching mode page (0x8)
-----------------------
Write Cache Enabled                1
Read Cache Disabled                0

CD device parameters mode page (0xd)
------------------------------------
Inactivity timer multiplier        0
MSF-S units per MSF_M unit         60
MSF-F units per MSF_S unit         75

CD audio control mode page (0xe)
--------------------------------
IMMED                              1
SOTC                               0
CDDA out port 0, channel select    1
Channel port 0 volume              255
CDDA out port 1, channel select    2
Channel port 1 volume              255
CDDA out port 2, channel select    0
Channel port 2 volume              0
CDDA out port 3, channel select    0
Channel port 3 volume              0

>>> Unable to read Feature set support & version mode page (0x18) [mode_sense_10]

Power Condition mode page (0x1a)
--------------------------------
Idle                               1
Standby                            1
Idle Condition counter (100ms)     600
Standby Condition counter (100ms)  1200

Fault/failure reporting control mode page (0x1c)
-----------------------------------------
PERF                               0
EBF                                0
EWASC                              0
DEXCPT                             0
TEST                               0
EBACKERR                           0
LOGERR                             0
MRIE                               4
Interval Timer                     600
Report Count                       0

Time-out & protect mode page (0x1d)
-----------------------------------
G3Enable                           0
TMOE                               0
DISP                               0
SWPP                               0
Group 1 minimum time-out           9
Group 2 minimum time-out           10800

mode page: 0x20
---------------
0x02                               0x01
0x03                               0x00
0x04                               0x00
0x05                               0x64
0x06                               0x00
0x07                               0x03
0x08                               0x00
0x09                               0x00
0x0a                               0x00
0x0b                               0x00

MM capabilities & mechanical status mode page (0x2a)
----------------------------------------------------
DVD-RAM read                       1
DVD-R read                         1
DVD-ROM read                       1
Method 2                           1
CD-RW read                         1
CD-R read                          1
DVD-RAM write                      1
DVD-R write                        1
DVD-ROM write                      0
Test Write                         1
CD-RW write                        1
CD-R write                         1
BUF                                1
MultiSession                       1
Mode 2 Form 2                      1
Mode 2 Form 1                      1
Digital port (2)                   0
Digital port (1)                   0
Composite                          0
Audio play                         1
Read bar code                      0
UPC                                1
ISRC                               1
C2 pointers supported              1
R-W de-interleaved & corrected     0
R-W supported                      1
CD-DA stream is accurate           1
CD-DA commands supported           1
Loading mechanism type             1
Eject (individual or magazine)     1
Prevent jumper                     0
Lock state                         0
Lock                               1
R-W in lead-in                     1
Side change capable                0
S/W slot selection                 0
Changer supports disc present      0
Separate channel mute              1
Separate volume levels             1
number of volume level supported   256
Buffer size supported              4064
Length                             1
LSBF                               0
RCK                                0
BCKF                               0
Copy management revision supported 1
Rotation control selected          0
Current write speed selected       8468
# of lu speed performance tables   0

mode page: 0x30
---------------
0x02                               0x11
0x03                               0x11
0x04                               0x00
0x05                               0x00
0x06                               0x00
0x07                               0x00
0x08                               0x00
0x09                               0x00
0x0a                               0x00
0x0b                               0x00
0x0c                               0x00
0x0d                               0x00
0x0e                               0x00
0x0f                               0x00

Para grabar un CD podemos usar el programa wodim. Con el parámetro dev se le indica el dispositivo de la grabadora, con -v que muestre el progreso de la grabación y con speed la velocidad de grabación. Con el valor 1 se hace que grabe a la mínima velocidad posible para aumentar la calidad de la grabación y facilitar su posterior lectura.

A wodim hay que pasarle la imagen del sistema de archivos ISO 9660. La creación de esta imagen se puede hacer con un programa como genisoimage. Con los parámetros -J y -R se indica que utilice las extensiones Joliet y Rock Ridge. La extensión Joliet permite nombres de archivo de hasta 64 caracteres. Con el parámetro -joliet-long se aumenta el número máximo de caracteres hasta 103 saltándose la especificación de Joliet, lo que puede causar problemas de compatibilidad. Por último hay que indicarle el directorio donde se encuentran los archivos a grabar. La imagen se puede guardar en un archivo con el parámetro -o o pasar directamente a wodim mediante una tubería.

# genisoimage -R -J -joliet-long -o imagen.iso /datos-a-grabar
# wodim -v speed=1 dev=/dev/sr1 imagen.iso
# genisoimage -R -J -joliet-long /datos-a-grabar | wodim -v speed=1 dev=/dev/sr1 -

wodim: No write mode specified.
wodim: Assuming -tao mode.
wodim: Future versions of wodim may have different drive dependent defaults.
TOC Type: 1 = CD-ROM
scsidev: '/dev/sr1'
devname: '/dev/sr1'
scsibus: -2 target: -2 lun: -2
Linux sg driver version: 3.5.27
Wodim version: 1.1.11
SCSI buffer size: 64512
Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   : 
Vendor_info    : 'HL-DT-ST'
Identification : 'BD-RE  BH16NS40 '
Revision       : '1.05'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Current: 0x0009 (CD-R)
Profile: 0x0043 (BD-RE) 
Profile: 0x0042 (BD-R random recording) 
Profile: 0x0041 (BD-R sequential recording) 
Profile: 0x0040 (BD-ROM) 
Profile: 0x002B (DVD+R/DL) 
Profile: 0x001B (DVD+R) 
Profile: 0x001A (DVD+RW) 
Profile: 0x0016 (DVD-R/DL layer jump recording) 
Profile: 0x0015 (DVD-R/DL sequential recording) 
Profile: 0x0014 (DVD-RW sequential recording) 
Profile: 0x0013 (DVD-RW restricted overwrite) 
Profile: 0x0012 (DVD-RAM) 
Profile: 0x0011 (DVD-R sequential recording) 
Profile: 0x0010 (DVD-ROM) 
Profile: 0x000A (CD-RW) 
Profile: 0x0009 (CD-R) (current)
Profile: 0x0008 (CD-ROM) 
Profile: 0x0002 (Removable disk) 
I: -input-charset not specified, using utf-8 (detected in locale settings)
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE 
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 3004672 = 2934 KB
Beginning DMA speed test. Set CDR_NODMATEST environment variable if device
communication breaks or freezes immediately after that.
FIFO size      : 12582912 = 12288 KB
Track 01: data  unknown length
Total size:        0 MB (00:00.00) = 0 sectors
Lout start:        0 MB (00:02/00) = 0 sectors
Current Secsize: 2048
ATIP info from disk:
  Indicated writing power: 5
  Is not unrestricted
  Is not erasable
  Disk sub type: Medium Type A, high Beta category (A+) (3)
  ATIP start of lead in:  -11634 (97:26/66)
  ATIP start of lead out: 359846 (79:59/71)
Disk type:    Short strategy type (Phthalocyanine or similar)
Manuf. index: 3
Manufacturer: CMC Magnetics Corporation
wodim: WARNING: Total disk size unknown. Data may not fit on disk.
  1.41% done, estimate finish Sat Aug 27 15:49:54 2022
Speed set to 2823 KB/s
Starting to write CD/DVD at speed  16.0 in real TAO mode for single session.
Last chance to quit, starting real write in    0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01:    7 MB written (fifo 100%) [buf 100%]  17.3x.  2.82% done, estimate finish Sat Aug 27 15:58:45 2022
Track 01:   17 MB written (fifo 100%) [buf 100%]  17.1x.  4.24% done, estimate finish Sat Aug 27 15:57:22 2022
Track 01:   27 MB written (fifo 100%) [buf 100%]  17.0x.  5.64% done, estimate finish Sat Aug 27 15:56:41 2022
Track 01:   37 MB written (fifo 100%) [buf 100%]  16.8x.  7.06% done, estimate finish Sat Aug 27 15:56:16 2022
Track 01:   46 MB written (fifo 100%) [buf 100%]  17.2x.  8.47% done, estimate finish Sat Aug 27 15:56:00 2022
Track 01:   56 MB written (fifo 100%) [buf 100%]  17.0x.  9.88% done, estimate finish Sat Aug 27 15:55:58 2022
Track 01:   66 MB written (fifo 100%) [buf 100%]  16.8x. 11.29% done, estimate finish Sat Aug 27 15:55:48 2022
Track 01:   76 MB written (fifo 100%) [buf 100%]  16.6x. 12.70% done, estimate finish Sat Aug 27 15:55:40 2022
Track 01:   86 MB written (fifo 100%) [buf 100%]  16.5x. 14.11% done, estimate finish Sat Aug 27 15:55:34 2022
Track 01:   95 MB written (fifo 100%) [buf 100%]  16.8x. 15.52% done, estimate finish Sat Aug 27 15:55:29 2022
Track 01:  105 MB written (fifo 100%) [buf 100%]  16.7x. 16.94% done, estimate finish Sat Aug 27 15:55:24 2022
Track 01:  115 MB written (fifo 100%) [buf 100%]  16.5x. 18.34% done, estimate finish Sat Aug 27 15:55:21 2022
Track 01:  125 MB written (fifo 100%) [buf 100%]   7.6x. 19.76% done, estimate finish Sat Aug 27 15:55:22 2022
Track 01:  134 MB written (fifo 100%) [buf 100%]  16.7x. 21.17% done, estimate finish Sat Aug 27 15:55:19 2022
Track 01:  144 MB written (fifo 100%) [buf 100%]  16.5x. 22.58% done, estimate finish Sat Aug 27 15:55:17 2022
Track 01:  154 MB written (fifo 100%) [buf 100%]  16.4x. 23.99% done, estimate finish Sat Aug 27 15:55:14 2022
Track 01:  164 MB written (fifo 100%) [buf 100%]  17.3x. 25.40% done, estimate finish Sat Aug 27 15:55:12 2022
Track 01:  173 MB written (fifo 100%) [buf 100%]  16.6x. 26.81% done, estimate finish Sat Aug 27 15:55:11 2022
Track 01:  183 MB written (fifo 100%) [buf 100%]  16.4x. 28.22% done, estimate finish Sat Aug 27 15:55:09 2022
Track 01:  193 MB written (fifo 100%) [buf 100%]  17.3x. 29.63% done, estimate finish Sat Aug 27 15:55:07 2022
Track 01:  203 MB written (fifo 100%) [buf 100%]  17.1x. 31.05% done, estimate finish Sat Aug 27 15:55:06 2022
Track 01:  213 MB written (fifo 100%) [buf 100%]  17.0x. 32.46% done, estimate finish Sat Aug 27 15:55:05 2022
Track 01:  222 MB written (fifo 100%) [buf 100%]  17.3x. 33.87% done, estimate finish Sat Aug 27 15:55:04 2022
Track 01:  232 MB written (fifo 100%) [buf 100%]  17.2x. 35.28% done, estimate finish Sat Aug 27 15:55:05 2022
Track 01:  242 MB written (fifo 100%) [buf 100%]  17.0x. 36.69% done, estimate finish Sat Aug 27 15:55:04 2022
Track 01:  252 MB written (fifo 100%) [buf 100%]  16.8x. 38.10% done, estimate finish Sat Aug 27 15:55:03 2022
Track 01:  261 MB written (fifo 100%) [buf 100%]  17.2x. 39.51% done, estimate finish Sat Aug 27 15:55:02 2022
Track 01:  271 MB written (fifo 100%) [buf 100%]  17.0x. 40.92% done, estimate finish Sat Aug 27 15:55:01 2022
Track 01:  281 MB written (fifo 100%) [buf 100%]  16.8x. 42.33% done, estimate finish Sat Aug 27 15:55:01 2022
Track 01:  291 MB written (fifo 100%) [buf 100%]  16.7x. 43.75% done, estimate finish Sat Aug 27 15:55:00 2022
Track 01:  300 MB written (fifo 100%) [buf 100%]  17.1x. 45.16% done, estimate finish Sat Aug 27 15:54:59 2022
Track 01:  310 MB written (fifo 100%) [buf 100%]  16.9x. 46.57% done, estimate finish Sat Aug 27 15:54:58 2022
Track 01:  320 MB written (fifo 100%) [buf 100%]  16.7x. 47.98% done, estimate finish Sat Aug 27 15:55:00 2022
Track 01:  330 MB written (fifo 100%) [buf 100%]  16.5x. 49.39% done, estimate finish Sat Aug 27 15:54:59 2022
Track 01:  339 MB written (fifo 100%) [buf 100%]  16.9x. 50.80% done, estimate finish Sat Aug 27 15:54:59 2022
Track 01:  349 MB written (fifo 100%) [buf 100%]  16.7x. 52.21% done, estimate finish Sat Aug 27 15:54:58 2022
Track 01:  359 MB written (fifo 100%) [buf 100%]  16.6x. 53.62% done, estimate finish Sat Aug 27 15:54:57 2022
Track 01:  369 MB written (fifo 100%) [buf 100%]  16.4x. 55.03% done, estimate finish Sat Aug 27 15:54:57 2022
Track 01:  379 MB written (fifo 100%) [buf 100%]  17.3x. 56.44% done, estimate finish Sat Aug 27 15:54:56 2022
Track 01:  388 MB written (fifo 100%) [buf 100%]  16.6x. 57.85% done, estimate finish Sat Aug 27 15:54:58 2022
Track 01:  398 MB written (fifo 100%) [buf 100%]  16.5x. 59.27% done, estimate finish Sat Aug 27 15:54:57 2022
Track 01:  408 MB written (fifo 100%) [buf 100%]  17.3x. 60.68% done, estimate finish Sat Aug 27 15:54:57 2022
Track 01:  418 MB written (fifo 100%) [buf 100%]  17.2x. 62.09% done, estimate finish Sat Aug 27 15:54:56 2022
Track 01:  427 MB written (fifo 100%) [buf 100%]  16.5x. 63.50% done, estimate finish Sat Aug 27 15:54:56 2022
Track 01:  437 MB written (fifo 100%) [buf 100%]  17.3x. 64.91% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  447 MB written (fifo 100%) [buf 100%]  17.2x. 66.32% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  457 MB written (fifo 100%) [buf 100%]  17.0x. 67.73% done, estimate finish Sat Aug 27 15:54:56 2022
Track 01:  466 MB written (fifo 100%) [buf 100%]  16.4x. 69.14% done, estimate finish Sat Aug 27 15:54:56 2022
Track 01:  476 MB written (fifo 100%) [buf 100%]  17.2x. 70.56% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  486 MB written (fifo 100%) [buf 100%]  17.1x. 71.96% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  496 MB written (fifo 100%) [buf 100%]  16.9x. 73.38% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  505 MB written (fifo 100%) [buf 100%]  17.2x. 74.79% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  515 MB written (fifo 100%) [buf 100%]  17.1x. 76.20% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  525 MB written (fifo 100%) [buf 100%]  16.9x. 77.61% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  535 MB written (fifo 100%) [buf 100%]  16.7x. 79.02% done, estimate finish Sat Aug 27 15:54:55 2022
Track 01:  545 MB written (fifo 100%) [buf 100%]  16.6x. 80.43% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  554 MB written (fifo 100%) [buf 100%]  17.0x. 81.84% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  564 MB written (fifo 100%) [buf 100%]  16.8x. 83.25% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  574 MB written (fifo 100%) [buf 100%]  16.6x. 84.66% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  584 MB written (fifo 100%) [buf 100%]  16.5x. 86.08% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  593 MB written (fifo 100%) [buf 100%]  16.8x. 87.48% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  603 MB written (fifo 100%) [buf 100%]  16.6x. 88.90% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  613 MB written (fifo 100%) [buf 100%]  16.5x. 90.31% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  623 MB written (fifo 100%) [buf 100%]  17.3x. 91.72% done, estimate finish Sat Aug 27 15:54:53 2022
Track 01:  632 MB written (fifo 100%) [buf 100%]  16.7x. 93.13% done, estimate finish Sat Aug 27 15:54:53 2022
Track 01:  642 MB written (fifo 100%) [buf 100%]  16.5x. 94.54% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  652 MB written (fifo 100%) [buf 100%]  16.4x. 95.95% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  662 MB written (fifo 100%) [buf 100%]  17.2x. 97.37% done, estimate finish Sat Aug 27 15:54:53 2022
Track 01:  672 MB written (fifo 100%) [buf 100%]  17.1x. 98.77% done, estimate finish Sat Aug 27 15:54:54 2022
Track 01:  680 MB written (fifo 100%) [buf 100%]  16.9x.Total translation table size: 0
Total rockridge attributes bytes: 3119
Total directory bytes: 19660
Path table size(bytes): 100
Max brk space used 1c000
354348 extents written (692 MB)
Track 01:  692 MB written (fifo 100%) [buf 100%]  16.7x.
Track 01: Total bytes read/written: 725704704/725704704 (354348 sectors).
Writing  time:  304.671s
Min drive buffer fill was 100%
Fixating...
Fixating time:   17.073s
BURN-Free was never needed.
wodim: fifo had 11432 puts and 11432 gets.
wodim: fifo was 0 times empty and 11212 times full, min fill was 93%.

La grabación de DVD/BD con growisofs es muy similar. La mayor diferencia es que growisofs se encarga de ejecutar genisoimage. Con el parámetro -Z se indica el dispositivo de la grabadora y con -speed la velocidad de grabación. Por último se pasan los parámetros para genisoimage.

Además de los nombres más largos permitidos por las extensiones Joliet y Rock Ridge, todos los archivos y directorios grabados deben tener un nombre con formato 8.3 o 31 caracteres, dependiendo del nivel de compatibilidad utilizado, para cumplir con la especificación ISO 9660. Este nombre puede ser usado por los sistemas que no sean capaces de utilizar las extensiones. genisoimage se encarga de crear el nombre para archivos y directorios con nombre más largo. Con el parámetro -iso-level se puede indicar el nivel de compatibilidad, por defecto se usa el nivel 1.

# growisofs -speed=1 -Z /dev/sr1 -R -J -joliet-long /datos-a-grabar

Executing 'genisoimage -R -J -joliet-long /datos-a-grabar | builtin_dd of=/dev/sr1 obs=32k seek=0'
I: -input-charset not specified, using utf-8 (detected in locale settings)

....................

Using PORTA00D.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-cable-ide-flex.jpg (portatil-tandon-nb-386sx-disco-duro-adaptador-usb.jpg)
Using PORTA00E.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-disco-duro-adaptador-usb.jpg (portatil-tandon-nb-386sx-abajo.jpg)
Using PORTA00F.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-abajo.jpg (portatil-tandon-nb-386sx-tapa-memoria-quitada.jpg)
Using PORTA00G.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-tapa-memoria-quitada.jpg (portatil-tandon-nb-386sx-modelo.jpg)
Using PORTA00H.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-modelo.jpg (portatil-tandon-nb-386sx-puerto-ps2-teclado.jpg)
Using PORTA00I.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-puerto-ps2-teclado.jpg (portatil-tandon-nb-386sx-comando-fdisk.jpg)
Using PORTA00J.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-comando-fdisk.jpg (portatil-tandon-nb-386sx-configuracion-bios.jpg)
Using PORTA00K.JPG;1 for  /datos-a-grabar/cuadernoinformatica.com/portatil-tandon/imagenes/portatil-tandon-nb-386sx-configuracion-bios.jpg (portatil-tandon-nb-386sx-placa-memorias-panel-control-titulos.jpg)

....................

/dev/sr1: pre-formatting blank BD-R for 24.8GB...
/dev/sr1: "Current Write Speed" is 4.1x4390KBps.
  0.42% done, estimate finish Fri Aug 26 16:25:35 2022
  0.50% done, estimate finish Fri Aug 26 16:15:36 2022
  0.59% done, estimate finish Fri Aug 26 16:08:31 2022
  0.67% done, estimate finish Fri Aug 26 16:03:11 2022
  0.75% done, estimate finish Fri Aug 26 16:01:15 2022
  0.84% done, estimate finish Fri Aug 26 15:57:43 2022
  0.92% done, estimate finish Fri Aug 26 15:54:49 2022
  1.00% done, estimate finish Fri Aug 26 15:52:24 2022
  1.09% done, estimate finish Fri Aug 26 15:50:22 2022
  1.17% done, estimate finish Fri Aug 26 15:50:02 2022

....................

 99.21% done, estimate finish Fri Aug 26 15:30:53 2022
 99.29% done, estimate finish Fri Aug 26 15:30:53 2022
 99.38% done, estimate finish Fri Aug 26 15:30:54 2022
 99.46% done, estimate finish Fri Aug 26 15:30:54 2022
 99.54% done, estimate finish Fri Aug 26 15:30:53 2022
 99.63% done, estimate finish Fri Aug 26 15:30:53 2022
 99.71% done, estimate finish Fri Aug 26 15:30:54 2022
 99.80% done, estimate finish Fri Aug 26 15:30:54 2022
 99.88% done, estimate finish Fri Aug 26 15:30:53 2022
 99.96% done, estimate finish Fri Aug 26 15:30:53 2022
Total translation table size: 0
Total rockridge attributes bytes: 8692486
Total directory bytes: 24266292
Path table size(bytes): 118058
Max brk space used 5316000
5972199 extents written (11664 MB)
/dev/sr1: flushing cache
/dev/sr1: closing track
/dev/sr1: reloading tray

growisofs además de ejecutar automáticamente genisoimage también permite grabar imágenes de disco ya creadas de la siguiente forma:

# growisofs -speed=1 -dvd-compat -Z /dev/sr1=imagen.iso

Una vez terminada la grabación es conveniente comprobar que los datos se han grabado correctamente. Por ejemplo podemos montar el disco y comparar los archivos del disco con los del directorio grabado. Antes de montar el disco es necesario expulsarlo de la grabadora y volver a introducirlo.

# mount /dev/sr1 /mnt/

mount: /mnt: ATENCIÓN: origen protegido contra escritura; se monta como solo lectura.


# diff -r /datos-a-grabar/ /mnt/

Si hemos creado un archivo imagen podemos compararlo directamente con el disco sin montarlo. Es necesario tener en cuanta que durante la grabación del disco se pueden haber añadido ceros al final, por eso tenemos que hacer la comparación solo con el número de bytes de la imagen. Con el comando stat podemos ver el tamaño de la imagen para pasárselo al programa cmp para que solo compare ese número de bytes.

# stat -c %s imagen.iso

725704704

# cmp -n 725704704 imagen.iso /dev/sr1

Las imágenes de sistema de archivos ISO 9660 se pueden montar como cualquier partición para acceder a su contenido. El sistema de archivos es de solo lectura, si queremos modificar algo será necesario crear otra imagen.

# mount imagen.iso /mnt/

mount: /mnt: ATENCIÓN: origen protegido contra escritura; se monta como solo lectura.

Si utilizamos discos regrabables, en wodim podemos usar el parámetro blank para borrar el contenido del disco y poder volver a grabar. En la documentación se pueden ver los diferentes tipos de borrado que permite. Junto con el programa growisofs se incluye dvd+rw-format para dar formato a discos DVD/BD.

# wodim speed=1 dev=/dev/sr1 blank=fast

Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   : 
Vendor_info    : 'HL-DT-ST'
Identification : 'BD-RE  BH16NS40 '
Revision       : '1.05'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE 
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Speed set to 2823 KB/s
Starting to write CD/DVD at speed  16.0 in real BLANK mode for single session.
Last chance to quit, starting real write in    0 seconds. Operation starts.

El sistema de archivos de los discos se puede pasar a un archivo imagen mediante el comando dd. Esta imagen se puede utilizar para hacer copias del disco o cualquier otro uso. Si además de la grabadora tenemos otro lector, podemos hacer la copia directamente de lector a grabadora usando el dispositivo lector como parámetro imagen en los programas de grabación.

# dd if=/dev/sr1 of=imagen.iso

48353280+0 registros leídos
48353280+0 registros escritos
24756879360 bytes (25 GB, 23 GiB) copied, 783,885 s, 31,6 MB/s
# growisofs -speed=1 -Z /dev/sr1=/dev/sr0

Cada grabación en un disco óptico recibe el nombre de "sesion" y es posible realizar múltiples sesiones para añadir más archivos al disco. Se puede impedir que se graben más sesiones realizando la operación de finalizar el disco. wodim por defecto finaliza el disco después de hacer una grabación. Para que no lo finalice y permita más sesiones hay que utilizar el parámetro -multi.

En la primera sesión solo es necesario añadir el parámetro -multi, en las siguientes sesiones además se debe pasar a genisoimage cierta información. Con el parámetro -C se indica el principio de la sesión anterior y el principio de la siguiente sesión. Esta información se puede averiguar ejecutando el comando wodim con el parámetro -msinfo. El parámetro -M indica a genisoimage el dispositivo de grabación con la imagen a la que se va a añadir la sesión. En la última sesión no se utiliza el parámetro -multi para que wodim finalice el disco. Ejecutando wodim con el parámetro -toc se muestra información sobre las sesiones. Antes de montar el disco para ver su contenido es necesario expulsarlo y volver a introducirlo

# genisoimage -R -J -joliet-long /datos-a-grabar | wodim -v -multi speed=1 dev=/dev/sr1 -

# wodim dev=/dev/sr1 -msinfo

0,11702

# genisoimage -R -J -joliet-long -C 0,11702 -M /dev/sr1 /mas-datos-a-grabar-1 | wodim -v -multi speed=1 dev=/dev/sr1 -

# wodim dev=/dev/sr1 -msinfo

11702,18904

# genisoimage -R -J -joliet-long -C 11702,18904 -M /dev/sr1 /mas-datos-a-grabar-2 | wodim -v speed=1 dev=/dev/sr1 -

# wodim dev=/dev/sr1 -toc

Device type    : Removable CD-ROM
Version        : 0
Response Format: 2
Capabilities   : 
Vendor_info    : 'HL-DT-ST'
Identification : 'BD-RE  BH16NS40 '
Revision       : '1.05'
Device seems to be: Generic mmc2 DVD-R/DVD-RW.
Using generic SCSI-3/mmc   CD-R/CD-RW driver (mmc_cdr).
Driver flags   : MMC-3 SWABAUDIO BURNFREE 
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
first: 1 last 3
track:   1 lba:         0 (        0) 00:02:00 adr: 1 control: 4 mode: 2
track:   2 lba:     11702 (    46808) 02:38:02 adr: 1 control: 4 mode: 2
track:   3 lba:     18904 (    75616) 04:14:04 adr: 1 control: 4 mode: 1
track:lout lba:     19206 (    76824) 04:18:06 adr: 1 control: 4 mode: -1

Con growisofs el proceso es más sencillo, el propio programa se encarga de pasar a genisoimage los parámetros necesarios para crear la imagen de la sesión. Solo es necesario utilizar el parámetro -M en lugar de -Z a partir de la segunda sesión. Para finalizar el disco se escriben ceros hasta el final con el archivo especial /dev/zero.

# growisofs -speed=1 -M /dev/sr1 -R -J -joliet-long /mas-datos-a-grabar

# growisofs -M /dev/sr1=/dev/zero

Con esta información ya podemos realizar la grabación de archivos en discos ópticos con las opciones más comunes. En la documentación de los programas se pueden ver muchas más opciones para adaptar los discos a nuestras necesidades.

No hay comentarios:

Publicar un comentario