Nombre del volumen de un cd-rom

Ernesto Hernandez-Novich emhn at telcel.net.ve
Thu Sep 6 14:28:10 CDT 2001


On Thu, 6 Sep 2001, Ernesto Hernandez-Novich wrote:
> On Thu, 6 Sep 2001, Horst von Brand wrote:
> > Ernesto Hernandez-Novich <emhn at telcel.net.ve> dijo:
> > 
> > > Esto lo preguntan tanto que yo diría que debe estar en el CD-ROM HOWTO;
> > 
> > Hazte famoso! Contacta al autor del HOWTO con un parche...
> 
> No podría ni que quisiera, ya alguien más apuntó que allí estaba :-)

No obstante, antes que alguien pregunte "¿puedo saber quién preparó el CD?
¿cuándo? ¿para cuál empresa? ¿forma parte de un conjunto de varios CDs?
¿cuál es el nombre de dicho conjunto?" y como eso seguro que no está en
el HOWTO, me permito contribuir un pequeño fragmento de código que puede
resultar útil. Por cierto, los comentarios adjuntos a la lista de
campos del Volume Descriptor son las opciones de mkisofs que pueden
utilizarse para llenarlos durante la preparación de un ISO; supongo que
están en el man.

#!/usr/bin/perl -w
# latcd.pl
sub sar {
  seek CD,32767+$_->[1],0; read CD,my $d,$_->[2];
  $d = unpack("s2",$d) if $_->[3]; $d =~ s/ *$//;
  return $d;
}

@w = ( 
       [ qw/ standard_id                 2   5/ ],      # Fijo 'CD0001'
       [ qw/ system_identifier           9  32/ ],      # --sysid
       [ qw/ volume_identifier          41  32/ ],      # -V
       [ qw/ volume_set_size           121   4  n/ ],   # --volset-size
       [ qw/ volume_sequence_number    125   4  n/ ],   # --volset-seqno
       [ qw/ volume_set_identifier     191 128/ ],      # -volset ID
       [ qw/ publisher_identifier      319 128/ ],      # -P
       [ qw/ data_preparer_identifier  447 128/ ],      # -p
       [ qw/ application_identifier    575 128/ ],      # -A
       [ qw/ volume_creation_date_time 814  16/ ],
     );

open CD,$ARGV[0];
foreach (map { [ $_->[0], sar($_) ] } @w) {
  write;
}
close CD;

format =
@<<<<<<<<<<<<<<<<<<<<<<<< = ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$_->[0],                    $_->[1]
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
			    $_->[1]
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
			    $_->[1]
~                           ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                            $_->[1]
.

Y puede usarse, por ejemplo,

$ mkisofs -A "CD Volume Reading" -sysid 42 \
          -P "BOFHs 'R US" -p "Your's truyly" \
          -volset 'ISO-9660 for dummies is the only way to learn' \
	  -volset-size 4 -volset-seqno 2 \
	  -V 'Volume Name Is Not Important' \
	  -o foo.iso ~/hacks
$ latcd.pl foo.iso
standard_id               = CD001
system_identifier         = 42
volume_identifier         = Volume Name Is Not Important
volume_set_size           = 4
volume_sequence_number    = 2
volume_set_identifier     = ISO-9660 for dummies is the only
                            way to learn
publisher_identifier      = BOFHs 'R US
data_preparer_identifier  = Your's truly
application_identifier    = CD Volume Reading
volume_creation_date_time = 2001090614444100

Puede usarse /dev/cdrom en lugar de foo.iso, obviamente.

No creo que con esto me haga famoso tampoco, después de todo cualquiera
puede saberse el standard ISO-9660 a.k.a. ECMA-119 si lo estudia, ¿no?
-- 
Ernesto Hernández-Novich - Running Linux 2.4.8 i686 - Unix: Live free or die!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/E d+(++) s+: a C+++$ UBLAVHIOSC*+++++$ P++++$ L+++$ E--- W+ N++ o K+++ w--
O- M- V- PS+ PE Y+ PGP>++ t+ 5- X+ R* tv+ b++ DI+++$ D++ G++ e++>+++ h r% y+
-----END GEEK CODE BLOCK-----


------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list