New option -device_links

This commit is contained in:
Thomas Schmitt 2011-07-27 21:14:49 +00:00
parent baf61c3aee
commit 7cc669396e
10 changed files with 241 additions and 92 deletions

View File

@ -308,7 +308,7 @@ int Dirseq_new(struct DirseQ **o, char *adr, int flag)
m->buffer_rpt= 0;
m->next= NULL;
if(Sfile_str(m->adr, adr, 0)<=0)
{ret= 0; goto failed;}
{ret= -1; goto failed;}
m->buffer= TSOB_FELD(char *,Dirseq_buffer_sizE);
if(m->buffer==NULL)
{ret= -1; goto failed;}

View File

@ -1119,9 +1119,92 @@ ex:;
}
/* @param link_adr must point to NULL or to allocated memory that may be freed
*/
int Xorriso_lookup_device_link(struct XorrisO *xorriso, char *dev_adr,
char **link_adr, int flag)
{
struct DirseQ *dirseq= NULL;
struct stat link_stbuf;
char *adr= NULL, *namept, *sys_adr= NULL;
int ret, name_rank, found_rank= 0x7fffffff;
static char ranks[][8] = {"cdrw", "dvdrw", "cdrom", "dvd", "cd", ""};
adr= calloc(SfileadrL + 5, 1);
sys_adr= calloc(BURN_DRIVE_ADR_LEN, 1);
if(adr == NULL || sys_adr == NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex;}
}
namept= adr + 5;
/* Search for candidates in /dev */
ret= Dirseq_new(&dirseq, "/dev", 1);
if(ret<0) {
sprintf(xorriso->info_text, "Cannot obtain disk directory iterator");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FATAL", 0);
{ret= -1; goto ex;}
}
strcpy(adr, "/dev/");
while(1) {
ret= Dirseq_next_adr(dirseq, namept, 0);
if(ret < 0)
goto ex;
if(ret == 0)
break;
if(lstat(adr, &link_stbuf) == -1)
{ret= 0; goto ex;}
if((link_stbuf.st_mode & S_IFMT) != S_IFLNK)
continue;
/* Determine rank and omit uninteresting ones */
for(name_rank= 0; ranks[name_rank][0]; name_rank++)
if(strncmp(namept, ranks[name_rank], strlen(ranks[name_rank])) == 0)
break;
if(ranks[name_rank][0] == 0 ||
name_rank >= found_rank) /* we look for lowest rank */
continue;
/* Does name point to the same device as dev_adr ? */
ret= burn_drive_convert_fs_adr(adr, sys_adr);
if(ret < 0)
goto ex;
if(ret == 0)
continue;
if(strcmp(dev_adr, sys_adr) == 0) {
if(*link_adr != NULL)
free(*link_adr);
*link_adr= strdup(adr);
if(*link_adr == NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex;}
}
found_rank= name_rank;
if(found_rank == 0)
break;
}
}
ret= 2;
if(found_rank < 0x7fffffff)
ret= 1;
ex:;
Xorriso_process_msg_queues(xorriso,0);
if(dirseq != NULL)
Dirseq_destroy(&dirseq, 0);
if(adr != NULL)
free(adr);
if(sys_adr != NULL)
free(sys_adr);
return(ret);
}
/* @param flag bit0= try to find 'meaningful' links for enumerated devices
*/
int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
{
char *adr= NULL;
char *adr= NULL, *link_adr= NULL, *adrpt;
int i, j, max_dev_len= 1, pad, ret;
struct burn_drive_info *drive_list= NULL;
unsigned int drive_count;
@ -1158,8 +1241,16 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
if(burn_drive_get_adr(&(drive_list[i]), adr)<=0)
strcpy(adr, "-get_adr_failed-");
Xorriso_process_msg_queues(xorriso,0);
if((int) strlen(adr) > max_dev_len)
max_dev_len= strlen(adr);
adrpt= adr;
if(flag & 1) {
ret= Xorriso_lookup_device_link(xorriso, adr, &link_adr, 0);
if(ret < 0)
goto ex;
if(ret == 1)
adrpt= link_adr;
}
if((int) strlen(adrpt) > max_dev_len)
max_dev_len= strlen(adrpt);
}
for(i= 0; i < (int) drive_count && !(xorriso->request_to_abort); i++) {
if(burn_drive_get_adr(&(drive_list[i]), adr)<=0)
@ -1176,8 +1267,16 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
if(stbuf.st_mode&S_IROTH) perms[4]= 'r';
if(stbuf.st_mode&S_IWOTH) perms[5]= 'w';
}
sprintf(respt, "%d -dev '%s' ", i, adr);
pad= max_dev_len-strlen(adr);
adrpt= adr;
if(flag & 1) {
ret= Xorriso_lookup_device_link(xorriso, adr, &link_adr, 0);
if(ret < 0)
goto ex;
if(ret == 1)
adrpt= link_adr;
}
sprintf(respt, "%d -dev '%s' ", i, adrpt);
pad= max_dev_len-strlen(adrpt);
if(pad>0)
for(j= 0; j<pad; j++)
strcat(respt, " ");
@ -1189,9 +1288,9 @@ int Xorriso_show_devices(struct XorrisO *xorriso, int flag)
Xorriso_info(xorriso,0);
burn_drive_info_free(drive_list);
Xorriso_process_msg_queues(xorriso,0);
ret= 1;
ex:;
Xorriso_process_msg_queues(xorriso,0);
Xorriso_free_meM(adr);
return(ret);
}

View File

@ -101,8 +101,9 @@ int Xorriso_option_dev(struct XorrisO *xorriso, char *in_adr, int flag)
}
/* Option -devices */
/* @return <=0 error , 1 success, 2 revoked by -reassure
/* Option -devices , -device_links */
/* @param flag bit0= perform -device_links rather than -devices
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_devices(struct XorrisO *xorriso, int flag)
{
@ -138,7 +139,7 @@ int Xorriso_option_devices(struct XorrisO *xorriso, int flag)
}
Xorriso_give_up_drive(xorriso, 3);
}
ret= Xorriso_show_devices(xorriso, 0);
ret= Xorriso_show_devices(xorriso, flag & 1);
return(ret);
}
@ -1510,6 +1511,8 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
" -gid gid Group id for the same purpose.",
"",
" -devices Show list of available optical drives and their addresses.",
" -device_links Like devices, but showing link paths which are hopefully",
" persistent over reboot on modern Linux systems.",
"",
" -toc Show media specific table of content (sessions).",
"",

View File

@ -1157,6 +1157,9 @@ return:
ret= Xorriso_afile_fopen(xorriso, adr, "rb", &fp, 0);
if(ret <= 0)
return(0);
sprintf(xorriso->info_text, "Command file: ");
Text_shellsafe(adr, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
while(1) {
ret= Xorriso_read_lines(xorriso, fp, &linecount, &linec, &linev, 1 | 8);
if(ret <= 0)
@ -1211,6 +1214,9 @@ ex:;
strcat(xorriso->info_text, "\n");
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 1);
}
sprintf(xorriso->info_text, "Command file end: ");
Text_shellsafe(adr, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "DEBUG", 0);
if(ret!=1)
return(ret);
return(!was_failure);

View File

@ -447,7 +447,8 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
int ret, was_dashed= 0, i, cmd_data_size= 2 * SfileadrL;
char *cmd, *cmd_data= NULL;
static char arg0_commands[][40]= {
"ban_stdio_write","close_filter_list","commit","devices","end",
"ban_stdio_write","close_filter_list","commit",
"device_links","devices","end",
"for_backup", "help",
"list_formats","list_speeds",
"no_rc","print_size","pvd_info","pwd","pwdi","pwdx",
@ -844,6 +845,9 @@ next_command:;
(*idx)++;
ret= Xorriso_option_dev(xorriso, arg1, 3);
} else if(strcmp(cmd,"device_links")==0) {
ret= Xorriso_option_devices(xorriso, 1);
} else if(strcmp(cmd,"devices")==0) {
ret= Xorriso_option_devices(xorriso, 0);

View File

@ -9,7 +9,7 @@
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH XORRISO 1 "Version 1.1.3, Jul 24, 2011"
.TH XORRISO 1 "Version 1.1.3, Jul 27, 2011"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
@ -305,7 +305,7 @@ On OpenSolaris:
.br
Get a list of accessible drives by command
.br
\-devices
\-device_links
.br
It might be necessary to do this as
\fBsuperuser\fR
@ -3067,6 +3067,17 @@ who is able to see all drives.
.br
Drives which are occupied by other processes get not shown.
.TP
\fB\-device_links\fR
Like \-devices, but presenting the drives with addresses of symbolic links
which point to the actual device files.
.br
Modern GNU/Linux systems may shuffle drive addresses from boot to boot.
The udev daemon is supposed to create links which always point to the
same drive, regardless of its system address.
The command \-device_links shows the addresses of such links if they begin
by "/dev/dvd" or "/dev/cd".
Precedence is: "cdrw", "dvdrw", "cdrom", "dvd", "cd".
.TP
\fB\-toc\fR
.br
Show media specific table of content. This is the media session history,
@ -4130,13 +4141,13 @@ which shall be able to use the drives with \fBxorriso\fR.
On Solaris use pfexec. Consider to restrict privileges of \fBxorriso\fR to
"base,sys_devices" and to give r\-permission to user or group.
.br
$ xorriso \-devices
$ xorriso \-device_links
.br
0 \-dev '/dev/sr0' rwrw\-\- : '_NEC ' 'DVD_RW ND\-4570A'
1 \-dev '/dev/cdrom1' rwrw\-\- : 'TSSTcorp' 'DVD\-ROM SH\-D162C
.br
1 \-dev '/dev/sr1' rwrw\-\- : 'HL\-DT\-ST' 'DVDRAM GSA\-4082B'
1 \-dev '/dev/cdrw' rwrw\-\- : 'TSSTcorp' 'CDDVDW SH\-S223B'
.br
2 \-dev '/dev/sr2' rwrw\-\- : 'PHILIPS ' 'SPD3300L'
2 \-dev '/dev/cdrw3' rwrw\-\- : 'HL\-DT\-ST' 'BDDVDRW_GGC\-H20L'
.SS
.B Blank media and compose a new ISO image as batch run
Aquire drive /dev/sr2, make media ready for writing a new image,

View File

@ -790,7 +790,8 @@ int Xorriso_option_cut_out(struct XorrisO *xorriso, char *disk_path,
int Xorriso_option_dev(struct XorrisO *xorriso, char *adr, int flag);
/* Option -devices */
/* @return <=0 error , 1 success, 2 revoked by -reassure
/* @param flag bit0= perform -device_links rather than -devices
@return <=0 error , 1 success, 2 revoked by -reassure
*/
int Xorriso_option_devices(struct XorrisO *xorriso, int flag);

View File

@ -274,7 +274,7 @@ On FreeBSD the device files have names like
On OpenSolaris:
-dev /dev/rdsk/c4t0d0s2
Get a list of accessible drives by command
-devices
-device_links
It might be necessary to do this as *superuser* in order to see all
drives and to then allow rw-access for the intended users. Consider to
bundle the authorized users in a group like old "floppy".
@ -2690,6 +2690,16 @@ File: xorriso.info, Node: Inquiry, Next: Navigate, Prev: DialogCtl, Up: Opti
*superuser* who is able to see all drives.
Drives which are occupied by other processes get not shown.
-device_links
Like -devices, but presenting the drives with addresses of
symbolic links which point to the actual device files.
Modern GNU/Linux systems may shuffle drive addresses from boot to
boot. The udev daemon is supposed to create links which always
point to the same drive, regardless of its system address. The
command -device_links shows the addresses of such links if they
begin by "/dev/dvd" or "/dev/cd". Precedence is: "cdrw", "dvdrw",
"cdrom", "dvd", "cd".
-toc
Show media specific table of content. This is the media session
history, not the ISO image directory tree.
@ -3627,10 +3637,10 @@ groups which shall be able to use the drives with `xorriso'. On
Solaris use pfexec. Consider to restrict privileges of `xorriso' to
"base,sys_devices" and to give r-permission to user or group.
$ xorriso -devices
0 -dev '/dev/sr0' rwrw-- : '_NEC ' 'DVD_RW ND-4570A'
1 -dev '/dev/sr1' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4082B'
2 -dev '/dev/sr2' rwrw-- : 'PHILIPS ' 'SPD3300L'
$ xorriso -device_links
1 -dev '/dev/cdrom1' rwrw-- : 'TSSTcorp' 'DVD-ROM SH-D162C
1 -dev '/dev/cdrw' rwrw-- : 'TSSTcorp' 'CDDVDW SH-S223B'
2 -dev '/dev/cdrw3' rwrw-- : 'HL-DT-ST' 'BDDVDRW_GGC-H20L'

File: xorriso.info, Node: ExCreate, Next: ExDialog, Prev: ExDevices, Up: Examples
@ -4235,6 +4245,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -cpx copies files to disk: Restore. (line 88)
* -cut_out inserts piece of data file: Insert. (line 126)
* -dev aquires one drive for input and output: AqDrive. (line 12)
* -device_links gets list of drives: Inquiry. (line 18)
* -devices gets list of drives: Inquiry. (line 7)
* -dialog enables dialog mode: DialogCtl. (line 7)
* -disk_dev_ino fast incremental backup: Loading. (line 189)
@ -4303,8 +4314,8 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -md5 controls handling of MD5 sums: Loading. (line 155)
* -mkdir creates ISO directory: Insert. (line 166)
* -mount issues mount command for ISO session: Restore. (line 122)
* -mount_cmd composes mount command line: Inquiry. (line 31)
* -mount_cmd controls mount command: Inquiry. (line 47)
* -mount_cmd composes mount command line: Inquiry. (line 41)
* -mount_cmd controls mount command: Inquiry. (line 57)
* -mv renames file in ISO image: Manip. (line 35)
* -no_rc disables startup files: Scripting. (line 7)
* -not_leaf sets exclusion pattern: SetInsert. (line 62)
@ -4327,12 +4338,12 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -print prints result text line: Scripting. (line 81)
* -print_info prints message text line: Scripting. (line 84)
* -print_mark prints synchronizing text line: Scripting. (line 87)
* -print_size predicts image size: Inquiry. (line 69)
* -print_size predicts image size: Inquiry. (line 79)
* -prog sets program name: Frontend. (line 30)
* -prog_help prints help text: Frontend. (line 33)
* -prompt prompts for enter key: Scripting. (line 92)
* -publisher sets publisher id: SetWrite. (line 113)
* -pvd_info shows image id strings: Inquiry. (line 82)
* -pvd_info shows image id strings: Inquiry. (line 92)
* -pwd tells working directory in ISO: Navigate. (line 20)
* -pwdx tells working directory on disk: Navigate. (line 23)
* -quoted_not_list sets exclusions: SetInsert. (line 72)
@ -4351,7 +4362,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 168)
* -scsi_log reports SCSI commands: Scripting. (line 125)
* -session_log logs written sessions: Scripting. (line 116)
* -session_string composes session info line: Inquiry. (line 56)
* -session_string composes session info line: Inquiry. (line 66)
* -set_filter applies filter to file: Filter. (line 60)
* -set_filter_r applies filter to file tree: Filter. (line 85)
* -setfacl sets ACL in ISO image: Manip. (line 73)
@ -4371,9 +4382,9 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
* -stdio_sync controls stdio buffer: SetWrite. (line 245)
* -stream_recording controls defect management: SetWrite. (line 226)
* -system_id sets system id: SetWrite. (line 128)
* -tell_media_space reports free space: Inquiry. (line 78)
* -tell_media_space reports free space: Inquiry. (line 88)
* -temp_mem_limit curbs memory consumption: Scripting. (line 74)
* -toc shows list of sessions: Inquiry. (line 18)
* -toc shows list of sessions: Inquiry. (line 28)
* -uid sets global ownership: SetWrite. (line 191)
* -update inserts path if different: Insert. (line 99)
* -update_l inserts paths if different: Insert. (line 121)
@ -4447,6 +4458,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Drive, for input and output, -dev: AqDrive. (line 12)
* Drive, for input, -indev: AqDrive. (line 24)
* Drive, for output, -outdev: AqDrive. (line 31)
* Drive, get drive list, -device_links: Inquiry. (line 18)
* Drive, get drive list, -devices: Inquiry. (line 7)
* Drive, list supported media, -list_profiles: Writing. (line 150)
* Drive, reduce activity, -calm_drive: Loading. (line 235)
@ -4487,7 +4499,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Image, set volume id, -volid: SetWrite. (line 89)
* Image, set volume set id, -volset_id: SetWrite. (line 108)
* Image, set volume timestamp, -volume_date: SetWrite. (line 135)
* Image, show id strings, -pvd_info: Inquiry. (line 82)
* Image, show id strings, -pvd_info: Inquiry. (line 92)
* Insert, enable overwriting, -overwrite: SetInsert. (line 127)
* Insert, file exclusion absolute, -not_paths: SetInsert. (line 55)
* Insert, file exclusion from file, -not_list: SetInsert. (line 67)
@ -4598,17 +4610,17 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Rock Ridge, _definiton: Extras. (line 6)
* Session, _definition: Model. (line 6)
* Session, altered start address, -displacement: Loading. (line 35)
* Session, info string, -session_string: Inquiry. (line 56)
* Session, info string, -session_string: Inquiry. (line 66)
* Session, issue mount command, -mount: Restore. (line 122)
* Session, log when written, -session_log: Scripting. (line 116)
* Session, mount command line, -mount_cmd: Inquiry. (line 31)
* Session, mount parameters, -mount_opts: Inquiry. (line 47)
* Session, mount command line, -mount_cmd: Inquiry. (line 41)
* Session, mount parameters, -mount_opts: Inquiry. (line 57)
* Session, select as input, -load: Loading. (line 11)
* SUN Disk Label, production: Bootable. (line 187)
* SUN SPARC boot images, activation: Bootable. (line 220)
* System area, _definiton: Bootable. (line 121)
* Table-of-content, search sessions, -rom_toc_scan: Loading. (line 210)
* Table-of-content, show, -toc: Inquiry. (line 18)
* Table-of-content, show, -toc: Inquiry. (line 28)
* Timestamps, set in ISO image, -alter_date: Manip. (line 147)
* Timestamps, set in ISO image, -alter_date_r: Manip. (line 167)
* Tree, disk, traverse, -findx: Navigate. (line 106)
@ -4628,12 +4640,12 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
* Write, defect management, -stream_recording: SetWrite. (line 226)
* Write, enable Joliet, -joliet: SetWrite. (line 10)
* Write, fifo size, -fs: SetWrite. (line 255)
* Write, free space, -tell_media_space: Inquiry. (line 78)
* Write, free space, -tell_media_space: Inquiry. (line 88)
* Write, log problematic disk files, -errfile_log: Scripting. (line 96)
* Write, log written sessions, -session_log: Scripting. (line 116)
* Write, padding image, -padding: SetWrite. (line 268)
* Write, pending ISO image, -commit: Writing. (line 13)
* Write, predict image size, -print_size: Inquiry. (line 69)
* Write, predict image size, -print_size: Inquiry. (line 79)
* Write, set speed, -speed: SetWrite. (line 211)
* Write, simulation, -dummy: SetWrite. (line 251)
* xattr, _definiton: Extras. (line 52)
@ -4653,53 +4665,53 @@ Node: Model3264
Node: Media6148
Node: Methods8814
Node: Drives11363
Node: Extras14671
Node: Processing18136
Node: Dialog21606
Node: Options23269
Node: AqDrive24877
Node: Loading27914
Node: Insert42181
Node: SetInsert51886
Node: Manip60454
Node: CmdFind69181
Node: Filter80443
Node: Writing84781
Node: SetWrite92774
Node: Bootable106820
Node: Jigdo120038
Node: Charset124284
Node: Exception127043
Node: DialogCtl133156
Node: Inquiry135743
Node: Navigate140071
Node: Verify148039
Node: Restore156704
Node: Emulation163364
Node: Scripting173167
Node: Frontend179295
Node: Examples180594
Node: ExDevices181765
Node: ExCreate182403
Node: ExDialog183677
Node: ExGrowing184939
Node: ExModifying185741
Node: ExBootable186242
Node: ExCharset186791
Node: ExPseudo187611
Node: ExCdrecord188509
Node: ExMkisofs188824
Node: ExGrowisofs190162
Node: ExException191297
Node: ExTime191751
Node: ExIncBackup192210
Node: ExRestore196134
Node: ExRecovery197092
Node: Files197660
Node: Seealso198958
Node: Bugreport199546
Node: Legal200127
Node: CommandIdx201057
Node: ConceptIdx215871
Node: Extras14676
Node: Processing18141
Node: Dialog21611
Node: Options23274
Node: AqDrive24882
Node: Loading27919
Node: Insert42186
Node: SetInsert51891
Node: Manip60459
Node: CmdFind69186
Node: Filter80448
Node: Writing84786
Node: SetWrite92779
Node: Bootable106825
Node: Jigdo120043
Node: Charset124289
Node: Exception127048
Node: DialogCtl133161
Node: Inquiry135748
Node: Navigate140592
Node: Verify148560
Node: Restore157225
Node: Emulation163885
Node: Scripting173688
Node: Frontend179816
Node: Examples181115
Node: ExDevices182286
Node: ExCreate182945
Node: ExDialog184219
Node: ExGrowing185481
Node: ExModifying186283
Node: ExBootable186784
Node: ExCharset187333
Node: ExPseudo188153
Node: ExCdrecord189051
Node: ExMkisofs189366
Node: ExGrowisofs190704
Node: ExException191839
Node: ExTime192293
Node: ExIncBackup192752
Node: ExRestore196676
Node: ExRecovery197634
Node: Files198202
Node: Seealso199500
Node: Bugreport200088
Node: Legal200669
Node: CommandIdx201599
Node: ConceptIdx216486

End Tag Table

View File

@ -50,7 +50,7 @@
@c man .\" First parameter, NAME, should be all caps
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
@c man .\" other parameters are allowed: see man(7), man(1)
@c man .TH XORRISO 1 "Version 1.1.3, Jul 24, 2011"
@c man .TH XORRISO 1 "Version 1.1.3, Jul 27, 2011"
@c man .\" Please adjust this date whenever revising the manpage.
@c man .\"
@c man .\" Some roff macros, for reference:
@ -431,7 +431,7 @@ On OpenSolaris:
@*
Get a list of accessible drives by command
@*
-devices
-device_links
@*
It might be necessary to do this as
@strong{superuser}
@ -3612,6 +3612,19 @@ who is able to see all drives.
@*
Drives which are occupied by other processes get not shown.
@c man .TP
@item -device_links
@kindex -device_links gets list of drives
@cindex Drive, get drive list, -device_links
Like -devices, but presenting the drives with addresses of symbolic links
which point to the actual device files.
@*
Modern GNU/Linux systems may shuffle drive addresses from boot to boot.
The udev daemon is supposed to create links which always point to the
same drive, regardless of its system address.
The command -device_links shows the addresses of such links if they begin
by "/dev/dvd" or "/dev/cd".
Precedence is: "cdrw", "dvdrw", "cdrom", "dvd", "cd".
@c man .TP
@item -toc
@*
@kindex -toc shows list of sessions
@ -4898,13 +4911,13 @@ On Solaris use pfexec. Consider to restrict privileges of @command{xorriso} to
"base,sys_devices" and to give r-permission to user or group.
@*
@sp 1
$ xorriso -devices
$ xorriso -device_links
@*
0 -dev '/dev/sr0' rwrw@minus{}@minus{} : '_NEC ' 'DVD_RW ND-4570A'
1 -dev '/dev/cdrom1' rwrw@minus{}@minus{} : 'TSSTcorp' 'DVD-ROM SH-D162C
@*
1 -dev '/dev/sr1' rwrw@minus{}@minus{} : 'HL-DT-ST' 'DVDRAM GSA-4082B'
1 -dev '/dev/cdrw' rwrw@minus{}@minus{} : 'TSSTcorp' 'CDDVDW SH-S223B'
@*
2 -dev '/dev/sr2' rwrw@minus{}@minus{} : 'PHILIPS ' 'SPD3300L'
2 -dev '/dev/cdrw3' rwrw@minus{}@minus{} : 'HL-DT-ST' 'BDDVDRW_GGC-H20L'
@c man .SS
@c man .B Blank media and compose a new ISO image as batch run
@node ExCreate, ExDialog, ExDevices, Examples

View File

@ -1 +1 @@
#define Xorriso_timestamP "2011.07.25.103809"
#define Xorriso_timestamP "2011.07.27.211423"