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