New command -drive_access, new -as cdrecord option --drive_not_exclusive
This commit is contained in:
parent
8828d6f465
commit
901939986a
@ -207,6 +207,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
m->displacement_sign= 0;
|
m->displacement_sign= 0;
|
||||||
m->read_fs= 0;
|
m->read_fs= 0;
|
||||||
m->drives_exclusive= 1;
|
m->drives_exclusive= 1;
|
||||||
|
m->drives_access= 1;
|
||||||
m->linux_scsi_dev_family= 0;
|
m->linux_scsi_dev_family= 0;
|
||||||
m->early_stdio_test= 0;
|
m->early_stdio_test= 0;
|
||||||
m->cache_num_tiles= 0;
|
m->cache_num_tiles= 0;
|
||||||
@ -219,6 +220,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
m->in_charset= NULL;
|
m->in_charset= NULL;
|
||||||
m->isofs_st_out= time(0) - 1;
|
m->isofs_st_out= time(0) - 1;
|
||||||
m->indev_is_exclusive= 1;
|
m->indev_is_exclusive= 1;
|
||||||
|
m->indev_access= 1;
|
||||||
m->indev_off_adr[0]= 0;
|
m->indev_off_adr[0]= 0;
|
||||||
m->isofs_st_in= 0;
|
m->isofs_st_in= 0;
|
||||||
m->volset_change_pending= 0;
|
m->volset_change_pending= 0;
|
||||||
@ -231,6 +233,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
m->out_charset= NULL;
|
m->out_charset= NULL;
|
||||||
m->dev_fd_1= -1;
|
m->dev_fd_1= -1;
|
||||||
m->outdev_is_exclusive= 1;
|
m->outdev_is_exclusive= 1;
|
||||||
|
m->outdev_access= 1;
|
||||||
m->outdev_off_adr[0]= 0;
|
m->outdev_off_adr[0]= 0;
|
||||||
m->grow_blindly_msc2= -1;
|
m->grow_blindly_msc2= -1;
|
||||||
m->ban_stdio_write= 0;
|
m->ban_stdio_write= 0;
|
||||||
@ -475,6 +478,7 @@ int Xorriso_new(struct XorrisO ** xorriso,char *progname, int flag)
|
|||||||
if(strcmp(leafname, "osirrox")==0) {
|
if(strcmp(leafname, "osirrox")==0) {
|
||||||
m->allow_restore= 1;
|
m->allow_restore= 1;
|
||||||
m->drives_exclusive= 0;
|
m->drives_exclusive= 0;
|
||||||
|
m->drives_access= 0;
|
||||||
} else if(strcmp(leafname, "xorrisofs")==0 || strcmp(leafname, "genisofs")==0 ||
|
} else if(strcmp(leafname, "xorrisofs")==0 || strcmp(leafname, "genisofs")==0 ||
|
||||||
strcmp(leafname, "mkisofs")==0 || strcmp(leafname, "genisoimage")==0) {
|
strcmp(leafname, "mkisofs")==0 || strcmp(leafname, "genisoimage")==0) {
|
||||||
m->argument_emulation= 1;
|
m->argument_emulation= 1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
/* xorriso - creates, loads, manipulates and burns ISO 9660 filesystem images.
|
||||||
|
|
||||||
Copyright 2007-2017 Thomas Schmitt, <scdbackup@gmx.net>
|
Copyright 2007-2019 Thomas Schmitt, <scdbackup@gmx.net>
|
||||||
|
|
||||||
Provided under GPL version 2 or later.
|
Provided under GPL version 2 or later.
|
||||||
|
|
||||||
@ -279,12 +279,16 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
|||||||
Xorriso_get_drive_handles(xorriso, &out_dinfo, &out_drive, "", 2 | 16);
|
Xorriso_get_drive_handles(xorriso, &out_dinfo, &out_drive, "", 2 | 16);
|
||||||
if(in_dinfo != NULL && (out_dinfo == NULL || out_dinfo == in_dinfo)) {
|
if(in_dinfo != NULL && (out_dinfo == NULL || out_dinfo == in_dinfo)) {
|
||||||
dinfo= in_dinfo;
|
dinfo= in_dinfo;
|
||||||
if(flag & 2)
|
if(flag & 2) {
|
||||||
xorriso->outdev_is_exclusive= xorriso->indev_is_exclusive;
|
xorriso->outdev_is_exclusive= xorriso->indev_is_exclusive;
|
||||||
|
xorriso->outdev_access= xorriso->indev_access;
|
||||||
|
}
|
||||||
} else if(out_dinfo != NULL && in_dinfo == NULL) {
|
} else if(out_dinfo != NULL && in_dinfo == NULL) {
|
||||||
dinfo= out_dinfo;
|
dinfo= out_dinfo;
|
||||||
if(flag & 1)
|
if(flag & 1) {
|
||||||
xorriso->indev_is_exclusive= xorriso->outdev_is_exclusive;
|
xorriso->indev_is_exclusive= xorriso->outdev_is_exclusive;
|
||||||
|
xorriso->indev_access= xorriso->outdev_access;
|
||||||
|
}
|
||||||
} else if(out_dinfo != NULL || in_dinfo != NULL) {
|
} else if(out_dinfo != NULL || in_dinfo != NULL) {
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"Two different drives shall be re-assed in one call");
|
"Two different drives shall be re-assed in one call");
|
||||||
@ -304,6 +308,7 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
|||||||
if(ret==1) {
|
if(ret==1) {
|
||||||
dinfo= out_dinfo;
|
dinfo= out_dinfo;
|
||||||
xorriso->indev_is_exclusive= xorriso->outdev_is_exclusive;
|
xorriso->indev_is_exclusive= xorriso->outdev_is_exclusive;
|
||||||
|
xorriso->indev_access= xorriso->outdev_access;
|
||||||
}
|
}
|
||||||
} else if((flag&3)==2 && xorriso->in_drive_handle!=NULL) {
|
} else if((flag&3)==2 && xorriso->in_drive_handle!=NULL) {
|
||||||
ret= Xorriso_get_drive_handles(xorriso, &in_dinfo, &in_drive,
|
ret= Xorriso_get_drive_handles(xorriso, &in_dinfo, &in_drive,
|
||||||
@ -314,6 +319,7 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
|||||||
if(ret==1) {
|
if(ret==1) {
|
||||||
dinfo= in_dinfo;
|
dinfo= in_dinfo;
|
||||||
xorriso->outdev_is_exclusive= xorriso->indev_is_exclusive;
|
xorriso->outdev_is_exclusive= xorriso->indev_is_exclusive;
|
||||||
|
xorriso->outdev_access= xorriso->indev_access;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,10 +368,14 @@ int Xorriso_aquire_drive(struct XorrisO *xorriso, char *adr, char *show_adr,
|
|||||||
if(flag&1)
|
if(flag&1)
|
||||||
if(xorriso->image_start_mode&(1u<<31)) /* used up setting */
|
if(xorriso->image_start_mode&(1u<<31)) /* used up setting */
|
||||||
xorriso->image_start_mode= 0; /* no need to perform auto setting */
|
xorriso->image_start_mode= 0; /* no need to perform auto setting */
|
||||||
if(flag & 1)
|
if(flag & 1) {
|
||||||
xorriso->indev_is_exclusive= xorriso->drives_exclusive;
|
xorriso->indev_is_exclusive= xorriso->drives_exclusive;
|
||||||
if(flag & 2)
|
xorriso->indev_access= xorriso->drives_access;
|
||||||
|
}
|
||||||
|
if(flag & 2) {
|
||||||
xorriso->outdev_is_exclusive= xorriso->drives_exclusive;
|
xorriso->outdev_is_exclusive= xorriso->drives_exclusive;
|
||||||
|
xorriso->outdev_access= xorriso->drives_access;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
drive= dinfo[0].drive;
|
drive= dinfo[0].drive;
|
||||||
volset= isoburn_get_attached_image(drive);
|
volset= isoburn_get_attached_image(drive);
|
||||||
@ -727,9 +737,9 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
|
|||||||
|
|
||||||
if(!in_is_out_too) {
|
if(!in_is_out_too) {
|
||||||
do_eject= !!(flag&4);
|
do_eject= !!(flag&4);
|
||||||
if((flag & 4) && !xorriso->indev_is_exclusive) {
|
if((flag & 4) && xorriso->indev_access == 0) {
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"Will not eject medium in non-exclusively acquired input drive.");
|
"Will not eject medium in readonly acquired input drive.");
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||||
do_eject= 0;
|
do_eject= 0;
|
||||||
}
|
}
|
||||||
@ -759,9 +769,9 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
|
|||||||
}
|
}
|
||||||
if((flag&2) && xorriso->out_drive_handle!=NULL) {
|
if((flag&2) && xorriso->out_drive_handle!=NULL) {
|
||||||
do_eject= !!(flag&4);
|
do_eject= !!(flag&4);
|
||||||
if((flag & 4) && !xorriso->outdev_is_exclusive) {
|
if((flag & 4) && xorriso->outdev_access == 0) {
|
||||||
sprintf(xorriso->info_text,
|
sprintf(xorriso->info_text,
|
||||||
"Will not eject medium in non-exclusively acquired drive.");
|
"Will not eject medium in readonly acquired drive.");
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||||
do_eject= 0;
|
do_eject= 0;
|
||||||
}
|
}
|
||||||
@ -795,16 +805,17 @@ int Xorriso_give_up_drive(struct XorrisO *xorriso, int flag)
|
|||||||
int Xorriso_may_burn(struct XorrisO *xorriso, int flag)
|
int Xorriso_may_burn(struct XorrisO *xorriso, int flag)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(xorriso->outdev_is_exclusive)
|
if(xorriso->outdev_access == 1)
|
||||||
return(1);
|
return(1);
|
||||||
sprintf(xorriso->info_text, "The output drive was not acquired exclusively.");
|
sprintf(xorriso->info_text, "The output drive was acquired readonly.");
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
sprintf(xorriso->info_text, "A possible remedy is: -osirrox 'o_excl_on'");
|
sprintf(xorriso->info_text, "Possible remedy: -drive_access \"exclusive:unrestricted\".");
|
||||||
if(xorriso->outdev[0]) {
|
strcat(xorriso->info_text," Then give up and re-acquire the drive.");
|
||||||
strcat(xorriso->info_text," -outdev ");
|
|
||||||
Text_shellsafe(xorriso->outdev, xorriso->info_text, 1);
|
|
||||||
}
|
|
||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
||||||
|
if(!xorriso->outdev_is_exclusive) {
|
||||||
|
sprintf(xorriso->info_text, "If you insist in -drive_access \"shared:unrestricted\", first read man xorriso about the risks.");
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0);
|
||||||
|
}
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1026,6 +1037,25 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
Xorriso_toc_line(xorriso, flag & 8);
|
Xorriso_toc_line(xorriso, flag & 8);
|
||||||
if(flag & 128)
|
if(flag & 128)
|
||||||
{ret= 1; goto ex;}
|
{ret= 1; goto ex;}
|
||||||
|
/* Report -drive_access if non-default or if long form */
|
||||||
|
respt[0]= 0;
|
||||||
|
if(flag & 2) {
|
||||||
|
if(xorriso->outdev_is_exclusive == 0 || xorriso->outdev_access == 0 ||
|
||||||
|
!(flag & 33)) {
|
||||||
|
sprintf(respt, "Drive access : %s:%s\n",
|
||||||
|
xorriso->outdev_is_exclusive ? "exclusive" : "shared",
|
||||||
|
xorriso->outdev_access == 0 ? "readonly" : "unrestricted");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(xorriso->indev_is_exclusive == 0 || xorriso->indev_access == 0 ||
|
||||||
|
!(flag & 33)) {
|
||||||
|
sprintf(respt, "Drive access : %s:%s\n",
|
||||||
|
xorriso->indev_is_exclusive ? "exclusive" : "shared",
|
||||||
|
xorriso->indev_access == 0 ? "readonly" : "unrestricted");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(respt[0])
|
||||||
|
Xorriso_toc_line(xorriso, flag & 8);
|
||||||
sprintf(respt, "Drive type : vendor '%s' product '%s' revision '%s'\n",
|
sprintf(respt, "Drive type : vendor '%s' product '%s' revision '%s'\n",
|
||||||
dinfo[0].vendor, dinfo[0].product, dinfo[0].revision);
|
dinfo[0].vendor, dinfo[0].product, dinfo[0].revision);
|
||||||
if((flag & 32) || !(flag & 1))
|
if((flag & 32) || !(flag & 1))
|
||||||
@ -1417,11 +1447,11 @@ int Xorriso_toc(struct XorrisO *xorriso, int flag)
|
|||||||
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (disc!=NULL)
|
|
||||||
isoburn_toc_disc_free(disc);
|
|
||||||
Xorriso_process_msg_queues(xorriso,0);
|
|
||||||
ret= 1;
|
ret= 1;
|
||||||
ex:;
|
ex:;
|
||||||
|
Xorriso_process_msg_queues(xorriso,0);
|
||||||
|
if (disc!=NULL)
|
||||||
|
isoburn_toc_disc_free(disc);
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -55,6 +55,7 @@ int Xorriso_cdrskin_help(struct XorrisO *xorriso, int flag)
|
|||||||
"\t--devices\tprint list of available MMC drives and exit emulation",
|
"\t--devices\tprint list of available MMC drives and exit emulation",
|
||||||
"\tdev=target\tpseudo-SCSI target to use as CD-Recorder",
|
"\tdev=target\tpseudo-SCSI target to use as CD-Recorder",
|
||||||
"\tdrive_scsi_dev_family=sr|scd|sg\t\tselect Linux device type",
|
"\tdrive_scsi_dev_family=sr|scd|sg\t\tselect Linux device type",
|
||||||
|
"\t--drive_not_exclusive\tdo not try to prevent use of busy drive",
|
||||||
"\t-v\t\tincrement verbose level by one",
|
"\t-v\t\tincrement verbose level by one",
|
||||||
"\t-V\t\tincrement SCSI command transport verbose level by one",
|
"\t-V\t\tincrement SCSI command transport verbose level by one",
|
||||||
"\t-checkdrive\tcheck if a driver for the drive is present",
|
"\t-checkdrive\tcheck if a driver for the drive is present",
|
||||||
@ -266,6 +267,8 @@ no_volunteer:;
|
|||||||
strcpy(dev_adr, cpt);
|
strcpy(dev_adr, cpt);
|
||||||
} else if(strcmp(argv[i], "--devices")==0) { /* intentional: argv[i] */
|
} else if(strcmp(argv[i], "--devices")==0) { /* intentional: argv[i] */
|
||||||
do_scanbus= 2;
|
do_scanbus= 2;
|
||||||
|
} else if(strcmp(argv[i], "--drive_not_exclusive") == 0) { /* intentional */
|
||||||
|
Xorriso_option_drive_access(xorriso, "shared:unrestricted", 0);
|
||||||
} else if(strncmp(argpt,"driveropts=", 11)==0 ||
|
} else if(strncmp(argpt,"driveropts=", 11)==0 ||
|
||||||
strncmp(argpt,"-driveropts=", 12)==0) {
|
strncmp(argpt,"-driveropts=", 12)==0) {
|
||||||
if(strcmp(argpt+11, "help")==0) {
|
if(strcmp(argpt+11, "help")==0) {
|
||||||
|
@ -257,6 +257,43 @@ int Xorriso_option_displacement(struct XorrisO *xorriso, char *value, int flag)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Command -drive_access "exclusive"|"shared":"readonly"|"unrestricted" */
|
||||||
|
int Xorriso_option_drive_access(struct XorrisO *xorriso, char *mode, int flag)
|
||||||
|
{
|
||||||
|
int l;
|
||||||
|
char *npt, *cpt;
|
||||||
|
|
||||||
|
npt= cpt= mode;
|
||||||
|
for(cpt= mode; npt != NULL; cpt= npt+1) {
|
||||||
|
npt= strchr(cpt, ':');
|
||||||
|
if(npt==NULL)
|
||||||
|
l= strlen(cpt);
|
||||||
|
else
|
||||||
|
l= npt - cpt;
|
||||||
|
if(l == 0 && mode[0] != 0)
|
||||||
|
goto unknown_mode;
|
||||||
|
if(strncmp(cpt, "shared", l) == 0 && l == 6) {
|
||||||
|
xorriso->drives_exclusive= 0;
|
||||||
|
} else if(strncmp(cpt, "exclusive", l) == 0 && l == 9) {
|
||||||
|
xorriso->drives_exclusive= 1;
|
||||||
|
} else if(strncmp(cpt, "readonly", l) == 0 && l == 8) {
|
||||||
|
xorriso->drives_access= 0;
|
||||||
|
} else if(strncmp(cpt, "unrestricted", l) == 0 && l == 12) {
|
||||||
|
xorriso->drives_access= 1;
|
||||||
|
} else {
|
||||||
|
unknown_mode:;
|
||||||
|
sprintf(xorriso->info_text, "-drive_access: unknown mode '");
|
||||||
|
if(l > 0 && l < SfileadrL)
|
||||||
|
strncat(xorriso->info_text, cpt, l);
|
||||||
|
strcat(xorriso->info_text, "'");
|
||||||
|
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Option -drive_class */
|
/* Option -drive_class */
|
||||||
int Xorriso_option_drive_class(struct XorrisO *xorriso,
|
int Xorriso_option_drive_class(struct XorrisO *xorriso,
|
||||||
char *d_class, char *pattern, int flag)
|
char *d_class, char *pattern, int flag)
|
||||||
@ -1737,13 +1774,16 @@ int Xorriso_option_help(struct XorrisO *xorriso, int flag)
|
|||||||
" -drive_class \"harmless\"|\"banned\"|\"risky\"|\"clear_list\" disk_pattern",
|
" -drive_class \"harmless\"|\"banned\"|\"risky\"|\"clear_list\" disk_pattern",
|
||||||
" Add a drive path pattern to one of the safety lists or make",
|
" Add a drive path pattern to one of the safety lists or make",
|
||||||
" those lists empty. Defaulty entry in \"risky\" is \"/dev\".",
|
" those lists empty. Defaulty entry in \"risky\" is \"/dev\".",
|
||||||
" -grow_blindly \"off\"|predicted_nwa",
|
" -drive_access \"exclusive\"|\"shared\":\"unrestricted\"|\"readonly\"",
|
||||||
" Switch between modifying and blind growing.",
|
" Enable or disable device file locking mechanisms.",
|
||||||
|
" Enable or disable status and content changes of drive.",
|
||||||
" -scsi_dev_family \"default\"|\"sr\"|\"scd\"|\"sg\"",
|
" -scsi_dev_family \"default\"|\"sr\"|\"scd\"|\"sg\"",
|
||||||
" Linux specific: Choose device file type.",
|
" Linux specific: Choose device file type.",
|
||||||
" -read_speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
|
" -read_speed number[\"k/s\"|\"m/s\"|\"[x]CD\"|\"[x]DVD\"|\"[x]BD\"]",
|
||||||
" Set the read speed. Default is \"none\" = do not set speed",
|
" Set the read speed. Default is \"none\" = do not set speed",
|
||||||
" before reading.",
|
" before reading.",
|
||||||
|
" -grow_blindly \"off\"|predicted_nwa",
|
||||||
|
" Switch between modifying and blind growing.",
|
||||||
" -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id",
|
" -load \"session\"|\"track\"|\"lba\"|\"sbsector\"|\"volid\"|\"auto\" id",
|
||||||
" Load a particular (outdated) ISO session from a -dev or",
|
" Load a particular (outdated) ISO session from a -dev or",
|
||||||
" -indev which hosts more than one session.",
|
" -indev which hosts more than one session.",
|
||||||
|
@ -541,7 +541,7 @@ int Xorriso_count_args(struct XorrisO *xorriso, int argc, char **argv,
|
|||||||
"close","close_damaged",
|
"close","close_damaged",
|
||||||
"commit_eject","compliance","copyright_file",
|
"commit_eject","compliance","copyright_file",
|
||||||
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
|
"dev","dialog","disk_dev_ino","disk_pattern","displacement",
|
||||||
"dummy","dvd_obs","early_stdio_test","ecma119_map","eject",
|
"drive_access","dummy","dvd_obs","early_stdio_test","ecma119_map","eject",
|
||||||
"iso_nowtime","iso_rr_pattern","file_name_limit","follow","format","fs",
|
"iso_nowtime","iso_rr_pattern","file_name_limit","follow","format","fs",
|
||||||
"gid","grow_blindly","hardlinks",
|
"gid","grow_blindly","hardlinks",
|
||||||
"hfsplus","history","indev","in_charset","joliet",
|
"hfsplus","history","indev","in_charset","joliet",
|
||||||
@ -684,17 +684,20 @@ int Xorriso_cmd_sorting_rank(struct XorrisO *xorriso,
|
|||||||
"print", "print_info", "print_mark", "prompt", "sleep",
|
"print", "print_info", "print_mark", "prompt", "sleep",
|
||||||
"sh_style_result",
|
"sh_style_result",
|
||||||
|
|
||||||
|
"* Influencing opening of drives:",
|
||||||
|
"drive_access","drive_class","early_stdio_test",
|
||||||
|
|
||||||
"* Drive and media related inquiry actions (1):",
|
"* Drive and media related inquiry actions (1):",
|
||||||
"devices", "device_links",
|
"devices", "device_links",
|
||||||
"mount_opts", "mount_cmd", "session_string",
|
"mount_opts", "mount_cmd", "session_string",
|
||||||
|
|
||||||
"* Influencing the behavior of image loading:",
|
"* Influencing the behavior of image loading:",
|
||||||
"read_speed", "load", "displacement", "read_fs",
|
"read_speed", "load", "displacement", "read_fs",
|
||||||
"drive_class", "assert_volid", "in_charset",
|
"assert_volid", "in_charset",
|
||||||
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
|
"auto_charset", "hardlinks", "acl", "xattr", "md5", "for_backup",
|
||||||
"ecma119_map",
|
"ecma119_map",
|
||||||
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
|
"disk_dev_ino", "rom_toc_scan", "calm_drive", "ban_stdio_write",
|
||||||
"early_stdio_test", "data_cache_size",
|
"data_cache_size",
|
||||||
"scsi_dev_family", "iso_nowtime",
|
"scsi_dev_family", "iso_nowtime",
|
||||||
|
|
||||||
"* Character sets:",
|
"* Character sets:",
|
||||||
@ -1255,6 +1258,10 @@ next_command:;
|
|||||||
(*idx)++;
|
(*idx)++;
|
||||||
ret= Xorriso_option_disk_pattern(xorriso, arg1, 0);
|
ret= Xorriso_option_disk_pattern(xorriso, arg1, 0);
|
||||||
|
|
||||||
|
} else if(strcmp(cmd,"drive_access")==0) {
|
||||||
|
(*idx)++;
|
||||||
|
ret= Xorriso_option_drive_access(xorriso, arg1, 0);
|
||||||
|
|
||||||
} else if(strcmp(cmd,"drive_class")==0) {
|
} else if(strcmp(cmd,"drive_class")==0) {
|
||||||
(*idx)+= 2;
|
(*idx)+= 2;
|
||||||
ret= Xorriso_option_drive_class(xorriso, arg1, arg2, 0);
|
ret= Xorriso_option_drive_class(xorriso, arg1, arg2, 0);
|
||||||
|
@ -2058,6 +2058,8 @@ int Xorriso_sieve_big(struct XorrisO *xorriso, int flag)
|
|||||||
1, 1},
|
1, 1},
|
||||||
{"DVD obs 64 kB:", 3, "DVD obs 64 kB:", "", 1, { 0, -1, -1, -1, -1, -1},
|
{"DVD obs 64 kB:", 3, "DVD obs 64 kB:", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||||
1, 0},
|
1, 0},
|
||||||
|
{"Drive access :", 3, "Drive access : ", ": ", 2, { 0, 1, -1, -1, -1, -1},
|
||||||
|
2, 0},
|
||||||
{"Drive current:", 3, "Drive current:", "", 2, { 0, 1, -1, -1, -1, -1},
|
{"Drive current:", 3, "Drive current:", "", 2, { 0, 1, -1, -1, -1, -1},
|
||||||
2, 0},
|
2, 0},
|
||||||
{"Drive id :", 3, "Drive id :", "", 1, { 0, -1, -1, -1, -1, -1},
|
{"Drive id :", 3, "Drive id :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||||
@ -2771,6 +2773,7 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
|||||||
{
|
{
|
||||||
int is_default, no_defaults, i, ret, adr_mode, do_single, behavior;
|
int is_default, no_defaults, i, ret, adr_mode, do_single, behavior;
|
||||||
int show_indev= 1, show_outdev= 1, show_dev= 0;
|
int show_indev= 1, show_outdev= 1, show_dev= 0;
|
||||||
|
int do_drive_access, did_drive_access;
|
||||||
int part_table_implicit= 0;
|
int part_table_implicit= 0;
|
||||||
char *line, *sfe= NULL, mode[80], *form, *treatment;
|
char *line, *sfe= NULL, mode[80], *form, *treatment;
|
||||||
char *in_pt, *out_pt, *nl_charset, *local_charset, *mode_pt;
|
char *in_pt, *out_pt, *nl_charset, *local_charset, *mode_pt;
|
||||||
@ -3814,13 +3817,20 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
is_default= (xorriso->drives_exclusive == 1 && xorriso->drives_access == 1);
|
||||||
|
sprintf(line, "-drive_access %s:%s\n",
|
||||||
|
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||||
|
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||||
|
if(!(is_default && no_defaults))
|
||||||
|
Xorriso_status_result(xorriso, filter, fp, flag & 2);
|
||||||
|
|
||||||
is_default= (xorriso->linux_scsi_dev_family == 0);
|
is_default= (xorriso->linux_scsi_dev_family == 0);
|
||||||
sprintf(line, "-scsi_dev_family %s\n",
|
sprintf(line, "-scsi_dev_family %s\n",
|
||||||
scsi_family[xorriso->linux_scsi_dev_family & 7]);
|
scsi_family[xorriso->linux_scsi_dev_family & 7]);
|
||||||
if(!(is_default && no_defaults))
|
if(!(is_default && no_defaults))
|
||||||
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
Xorriso_status_result(xorriso,filter,fp,flag&2);
|
||||||
|
|
||||||
do_single= 0;
|
do_single= do_drive_access= 0;
|
||||||
dev_filter= filter;
|
dev_filter= filter;
|
||||||
if(dev_filter != NULL) {
|
if(dev_filter != NULL) {
|
||||||
show_dev= Xorriso_status_filter(xorriso, filter, "-dev", 0);
|
show_dev= Xorriso_status_filter(xorriso, filter, "-dev", 0);
|
||||||
@ -3833,43 +3843,52 @@ int Xorriso_status(struct XorrisO *xorriso, char *filter, FILE *fp, int flag)
|
|||||||
if(show_outdev > 0 || show_indev > 0)
|
if(show_outdev > 0 || show_indev > 0)
|
||||||
do_single= 1;
|
do_single= 1;
|
||||||
}
|
}
|
||||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
if((xorriso->drives_exclusive != xorriso->indev_is_exclusive ||
|
||||||
xorriso->indev[0])
|
xorriso->drives_access != xorriso->indev_access) && xorriso->indev[0]) {
|
||||||
do_single= 1;
|
do_single= 1;
|
||||||
else if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
do_drive_access|= 1;
|
||||||
xorriso->outdev[0])
|
}
|
||||||
|
if((xorriso->drives_exclusive != xorriso->outdev_is_exclusive ||
|
||||||
|
xorriso->drives_access != xorriso->outdev_access) &&
|
||||||
|
xorriso->outdev[0]) {
|
||||||
do_single= 1;
|
do_single= 1;
|
||||||
|
do_drive_access|= 2;
|
||||||
|
}
|
||||||
if(strcmp(xorriso->indev, xorriso->outdev) == 0 && !do_single) {
|
if(strcmp(xorriso->indev, xorriso->outdev) == 0 && !do_single) {
|
||||||
sprintf(line,"-dev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
sprintf(line,"-dev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
||||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||||
} else {
|
} else {
|
||||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
did_drive_access= 0;
|
||||||
xorriso->indev[0] && show_indev) {
|
if((do_drive_access & 1) && xorriso->indev[0] && show_indev) {
|
||||||
sprintf(line,"-osirrox o_excl_%s\n",
|
sprintf(line,"-drive_access %s:%s\n",
|
||||||
xorriso->indev_is_exclusive ? "on" : "off");
|
xorriso->indev_is_exclusive ? "exclusive" : "shared",
|
||||||
|
xorriso->indev_access == 0 ? "readonly" : "unrestricted");
|
||||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||||
|
did_drive_access= 1;
|
||||||
}
|
}
|
||||||
sprintf(line,"-indev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
sprintf(line,"-indev %s\n", Text_shellsafe(xorriso->indev,sfe,0));
|
||||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||||
if(xorriso->drives_exclusive != xorriso->indev_is_exclusive &&
|
if(did_drive_access) {
|
||||||
xorriso->indev[0] && show_indev) {
|
sprintf(line,"-drive_access %s:%s\n",
|
||||||
sprintf(line,"-osirrox o_excl_%s\n",
|
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||||
xorriso->drives_exclusive ? "on" : "off");
|
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
did_drive_access= 0;
|
||||||
xorriso->outdev[0] && show_outdev) {
|
if((do_drive_access & 2) && xorriso->outdev[0] && show_outdev) {
|
||||||
sprintf(line,"-osirrox o_excl_%s\n",
|
sprintf(line,"-drive_access %s:%s\n",
|
||||||
xorriso->outdev_is_exclusive ? "on" : "off");
|
xorriso->outdev_is_exclusive ? "exclusive" : "shared",
|
||||||
|
xorriso->outdev_access == 0 ? "readonly" : "unrestricted");
|
||||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||||
|
did_drive_access= 1;
|
||||||
}
|
}
|
||||||
sprintf(line,"-outdev %s\n", Text_shellsafe(xorriso->outdev,sfe,0));
|
sprintf(line,"-outdev %s\n", Text_shellsafe(xorriso->outdev,sfe,0));
|
||||||
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
Xorriso_status_result(xorriso, dev_filter, fp, flag & 2);
|
||||||
if(xorriso->drives_exclusive != xorriso->outdev_is_exclusive &&
|
if(did_drive_access) {
|
||||||
xorriso->outdev[0] && show_outdev) {
|
sprintf(line,"-drive_access %s:%s\n",
|
||||||
sprintf(line,"-osirrox o_excl_%s\n",
|
xorriso->drives_exclusive ? "exclusive" : "shared",
|
||||||
xorriso->drives_exclusive ? "on" : "off");
|
xorriso->drives_access == 0 ? "readonly" : "unrestricted");
|
||||||
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
Xorriso_status_result(xorriso, NULL, fp, flag & 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRECORD 1 "Version 1.5.1, Nov 11, 2018"
|
.TH XORRECORD 1 "Version 1.5.1, Sep 04, 2019"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -531,6 +531,16 @@ Afterwards end emulation without performing any drive operation.
|
|||||||
Only if used as first command line argument this option
|
Only if used as first command line argument this option
|
||||||
prevents reading and interpretation of startup files. See section FILES below.
|
prevents reading and interpretation of startup files. See section FILES below.
|
||||||
.TP
|
.TP
|
||||||
|
\fB--drive_not_exclusive\fR
|
||||||
|
This option disables the use of device file locking mechanisms when acquiring
|
||||||
|
the drive. On GNU/Linux the locking is done by open(O_EXCL), on FreeBSD by
|
||||||
|
flock(LOCK_EX).
|
||||||
|
.br
|
||||||
|
Be aware that it can cause problems if you use a drive which is mounted,
|
||||||
|
or opened by some other process, or guarded by /dev/pktcdvd*.
|
||||||
|
Make sure that other users of the drive do not cause drive activities
|
||||||
|
while a xorrecord burn run is going on.
|
||||||
|
.TP
|
||||||
\fBdrive_scsi_dev_family=sr|scd|sg|default\fR
|
\fBdrive_scsi_dev_family=sr|scd|sg|default\fR
|
||||||
GNU/Linux specific:
|
GNU/Linux specific:
|
||||||
.br
|
.br
|
||||||
@ -870,7 +880,7 @@ Thomas Schmitt <scdbackup@gmx.net>
|
|||||||
.br
|
.br
|
||||||
for libburnia\-project.org
|
for libburnia\-project.org
|
||||||
.SH COPYRIGHT
|
.SH COPYRIGHT
|
||||||
Copyright (c) 2011 \- 2018 Thomas Schmitt
|
Copyright (c) 2011 \- 2019 Thomas Schmitt
|
||||||
.br
|
.br
|
||||||
Permission is granted to distribute this text freely. It shall only be
|
Permission is granted to distribute this text freely. It shall only be
|
||||||
modified in sync with the technical properties of xorriso. If you make use
|
modified in sync with the technical properties of xorriso. If you make use
|
||||||
|
@ -3,7 +3,7 @@ xorrecord.texi.
|
|||||||
|
|
||||||
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
|
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
|
||||||
|
|
||||||
Copyright (C) 2011 - 2018 Thomas Schmitt
|
Copyright (C) 2011 - 2019 Thomas Schmitt
|
||||||
|
|
||||||
Permission is granted to distrubute this text freely.
|
Permission is granted to distrubute this text freely.
|
||||||
INFO-DIR-SECTION Archiving
|
INFO-DIR-SECTION Archiving
|
||||||
@ -501,6 +501,14 @@ File: xorrecord.info, Node: NonCdrecord, Next: ExDevices, Prev: Verbous, Up:
|
|||||||
Only if used as first command line argument this option prevents
|
Only if used as first command line argument this option prevents
|
||||||
reading and interpretation of startup files. See section FILES
|
reading and interpretation of startup files. See section FILES
|
||||||
below.
|
below.
|
||||||
|
--drive_not_exclusive
|
||||||
|
This option disables the use of device file locking mechanisms when
|
||||||
|
acquiring the drive. On GNU/Linux the locking is done by
|
||||||
|
open(O_EXCL), on FreeBSD by flock(LOCK_EX).
|
||||||
|
Be aware that it can cause problems if you use a drive which is
|
||||||
|
mounted, or opened by some other process, or guarded by
|
||||||
|
/dev/pktcdvd*. Make sure that other users of the drive do not
|
||||||
|
cause drive activities while a xorrecord burn run is going on.
|
||||||
drive_scsi_dev_family=sr|scd|sg|default
|
drive_scsi_dev_family=sr|scd|sg|default
|
||||||
GNU/Linux specific:
|
GNU/Linux specific:
|
||||||
By default, cdrskin tries to map Linux drive addresses to /dev/sr*
|
By default, cdrskin tries to map Linux drive addresses to /dev/sr*
|
||||||
@ -868,7 +876,7 @@ for libburnia-project.org
|
|||||||
10.2 Copyright
|
10.2 Copyright
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Copyright (c) 2011 - 2018 Thomas Schmitt
|
Copyright (c) 2011 - 2019 Thomas Schmitt
|
||||||
Permission is granted to distribute this text freely. It shall only be
|
Permission is granted to distribute this text freely. It shall only be
|
||||||
modified in sync with the technical properties of xorriso. If you make
|
modified in sync with the technical properties of xorriso. If you make
|
||||||
use of the license to derive modified versions of xorriso then you are
|
use of the license to derive modified versions of xorriso then you are
|
||||||
@ -894,10 +902,11 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
|||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* --devices get list of drives: DriveAddr. (line 8)
|
* --devices get list of drives: DriveAddr. (line 8)
|
||||||
|
* --drive_not_exclusive use drive even if busy: NonCdrecord. (line 12)
|
||||||
* --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord.
|
* --grow_overwriteable_iso emulate ISO 9660 multi-session: NonCdrecord.
|
||||||
(line 29)
|
(line 37)
|
||||||
* --multi_if_possible apply -multi if medium is suitable: NonCdrecord.
|
* --multi_if_possible apply -multi if medium is suitable: NonCdrecord.
|
||||||
(line 49)
|
(line 57)
|
||||||
* --no_rc do not execute xorriso startup files: NonCdrecord. (line 8)
|
* --no_rc do not execute xorriso startup files: NonCdrecord. (line 8)
|
||||||
* -atip inquire medium state: Inquire. (line 14)
|
* -atip inquire medium state: Inquire. (line 14)
|
||||||
* -checkdrive inquire drive CD capabilities: Inquire. (line 11)
|
* -checkdrive inquire drive CD capabilities: Inquire. (line 11)
|
||||||
@ -910,7 +919,7 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
|||||||
* -inq inquire drive identifiers: Inquire. (line 8)
|
* -inq inquire drive identifiers: Inquire. (line 8)
|
||||||
* -isosize obtain track size from ISO 9660 superblock: SetBurn.
|
* -isosize obtain track size from ISO 9660 superblock: SetBurn.
|
||||||
(line 137)
|
(line 137)
|
||||||
* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 73)
|
* -modesty_on_drive keep drive buffer hungry: NonCdrecord. (line 81)
|
||||||
* -msinfo retrieve multi-session info: Inquire. (line 43)
|
* -msinfo retrieve multi-session info: Inquire. (line 43)
|
||||||
* -multi keep media appendable after burn run: SetBurn. (line 89)
|
* -multi keep media appendable after burn run: SetBurn. (line 89)
|
||||||
* -nopad disable adding of bytes to end of track: SetBurn. (line 151)
|
* -nopad disable adding of bytes to end of track: SetBurn. (line 151)
|
||||||
@ -926,19 +935,19 @@ File: xorrecord.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: T
|
|||||||
* blank= make media re-usabable or format media: SetBurn. (line 28)
|
* blank= make media re-usabable or format media: SetBurn. (line 28)
|
||||||
* dev= address the drive to be used: DriveAddr. (line 21)
|
* dev= address the drive to be used: DriveAddr. (line 21)
|
||||||
* drive_scsi_dev_family= Linux device type to be used: NonCdrecord.
|
* drive_scsi_dev_family= Linux device type to be used: NonCdrecord.
|
||||||
(line 12)
|
(line 20)
|
||||||
* dvd_obs= set write transaction payload size: NonCdrecord. (line 66)
|
* dvd_obs= set write transaction payload size: NonCdrecord. (line 74)
|
||||||
* fs= set program fifo size: SetBurn. (line 174)
|
* fs= set program fifo size: SetBurn. (line 174)
|
||||||
* minbuf= keep drive buffer hungry: SetBurn. (line 205)
|
* minbuf= keep drive buffer hungry: SetBurn. (line 205)
|
||||||
* padsize= add bytes to end of track: SetBurn. (line 144)
|
* padsize= add bytes to end of track: SetBurn. (line 144)
|
||||||
* speed= set write speed: SetBurn. (line 189)
|
* speed= set write speed: SetBurn. (line 189)
|
||||||
* stdio_sync= control stdio buffer: NonCdrecord. (line 125)
|
* stdio_sync= control stdio buffer: NonCdrecord. (line 133)
|
||||||
* stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord.
|
* stream_recording= try to get full speed on DVD-RAM, BD: NonCdrecord.
|
||||||
(line 56)
|
(line 64)
|
||||||
* tsize= set a fixed track size: SetBurn. (line 126)
|
* tsize= set a fixed track size: SetBurn. (line 126)
|
||||||
* use_immed_bit= control use of Immed bit: NonCdrecord. (line 110)
|
* use_immed_bit= control use of Immed bit: NonCdrecord. (line 118)
|
||||||
* write_start_address= set block address for write start: NonCdrecord.
|
* write_start_address= set block address for write start: NonCdrecord.
|
||||||
(line 119)
|
(line 127)
|
||||||
|
|
||||||
|
|
||||||
File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
||||||
@ -950,25 +959,27 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* Menu:
|
* Menu:
|
||||||
|
|
||||||
* Accessing drive, wait for stdin, -waiti: SetBurn. (line 113)
|
* Accessing drive, wait for stdin, -waiti: SetBurn. (line 113)
|
||||||
* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 110)
|
* Blank, format, Immed bit, use_immed_bit=: NonCdrecord. (line 118)
|
||||||
* Bugs, reporting: Bugreport. (line 6)
|
* Bugs, reporting: Bugreport. (line 6)
|
||||||
* Data track, announce, -data: SetBurn. (line 157)
|
* Data track, announce, -data: SetBurn. (line 157)
|
||||||
* Defect management, control, stream_recording=: NonCdrecord. (line 56)
|
* Defect management, control, stream_recording=: NonCdrecord. (line 64)
|
||||||
* Drive, address, dev=: DriveAddr. (line 21)
|
* Drive, address, dev=: DriveAddr. (line 21)
|
||||||
* Drive, get list of, --devices: DriveAddr. (line 8)
|
* Drive, get list of, --devices: DriveAddr. (line 8)
|
||||||
* Drive, inquire CD capabilities, -checkdrive: Inquire. (line 11)
|
* Drive, inquire CD capabilities, -checkdrive: Inquire. (line 11)
|
||||||
* Drive, inquire identifiers, -inq: Inquire. (line 8)
|
* Drive, inquire identifiers, -inq: Inquire. (line 8)
|
||||||
* Drive, Linux device type, drive_scsi_dev_family: NonCdrecord.
|
* Drive, Linux device type, drive_scsi_dev_family: NonCdrecord.
|
||||||
|
(line 20)
|
||||||
|
* Drive, use even if busy, --drive_not_exclusive: NonCdrecord.
|
||||||
(line 12)
|
(line 12)
|
||||||
* Eject, the tray, -eject: SetBurn. (line 214)
|
* Eject, the tray, -eject: SetBurn. (line 214)
|
||||||
* Examples: Examples. (line 6)
|
* Examples: Examples. (line 6)
|
||||||
* Fifo, set size, fs=: SetBurn. (line 174)
|
* Fifo, set size, fs=: SetBurn. (line 174)
|
||||||
* Full speed, on DVD-RAM and BD, stream_recording=: NonCdrecord.
|
* Full speed, on DVD-RAM and BD, stream_recording=: NonCdrecord.
|
||||||
(line 56)
|
(line 64)
|
||||||
* Media types, _definiton: Standards. (line 23)
|
* Media types, _definiton: Standards. (line 23)
|
||||||
* Media, blank, blank=: SetBurn. (line 28)
|
* Media, blank, blank=: SetBurn. (line 28)
|
||||||
* Media, format, blank=: SetBurn. (line 28)
|
* Media, format, blank=: SetBurn. (line 28)
|
||||||
* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 49)
|
* Media, keep appendable, --multi_if_possible: NonCdrecord. (line 57)
|
||||||
* Media, keep appendable, -multi: SetBurn. (line 89)
|
* Media, keep appendable, -multi: SetBurn. (line 89)
|
||||||
* Media, make re-usable, blank=: SetBurn. (line 28)
|
* Media, make re-usable, blank=: SetBurn. (line 28)
|
||||||
* medium content, inquire, -toc: Inquire. (line 22)
|
* medium content, inquire, -toc: Inquire. (line 22)
|
||||||
@ -976,7 +987,7 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* MMC, _definiton: Standards. (line 6)
|
* MMC, _definiton: Standards. (line 6)
|
||||||
* multi-session info, retrieve, -msinfo: Inquire. (line 43)
|
* multi-session info, retrieve, -msinfo: Inquire. (line 43)
|
||||||
* Multi-session, emulate ISO 9660, --grow_overwriteable_iso: NonCdrecord.
|
* Multi-session, emulate ISO 9660, --grow_overwriteable_iso: NonCdrecord.
|
||||||
(line 29)
|
(line 37)
|
||||||
* Options, overview, -help: Verbous. (line 30)
|
* Options, overview, -help: Verbous. (line 30)
|
||||||
* Overwritable media, _definiton: Standards. (line 30)
|
* Overwritable media, _definiton: Standards. (line 30)
|
||||||
* Padding, at end of track, padsize=: SetBurn. (line 144)
|
* Padding, at end of track, padsize=: SetBurn. (line 144)
|
||||||
@ -991,21 +1002,21 @@ File: xorrecord.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
* Track size, obtain from ISO 9660, -isosize: SetBurn. (line 137)
|
* Track size, obtain from ISO 9660, -isosize: SetBurn. (line 137)
|
||||||
* Track size, set fixed, tsize=: SetBurn. (line 126)
|
* Track size, set fixed, tsize=: SetBurn. (line 126)
|
||||||
* Track, _definiton: Standards. (line 13)
|
* Track, _definiton: Standards. (line 13)
|
||||||
* Transaction size, set, dvd_obs=: NonCdrecord. (line 66)
|
* Transaction size, set, dvd_obs=: NonCdrecord. (line 74)
|
||||||
* Tray, eject, -eject: SetBurn. (line 214)
|
* Tray, eject, -eject: SetBurn. (line 214)
|
||||||
* Verbosity, increase, -v: Verbous. (line 16)
|
* Verbosity, increase, -v: Verbous. (line 16)
|
||||||
* Verbosity, SCSI commands, -V: Verbous. (line 20)
|
* Verbosity, SCSI commands, -V: Verbous. (line 20)
|
||||||
* Version, report, -version: Verbous. (line 8)
|
* Version, report, -version: Verbous. (line 8)
|
||||||
* Write simulation , control, -dummy: SetBurn. (line 106)
|
* Write simulation , control, -dummy: SetBurn. (line 106)
|
||||||
* Write start address, set, write_start_address=: NonCdrecord.
|
* Write start address, set, write_start_address=: NonCdrecord.
|
||||||
(line 119)
|
(line 127)
|
||||||
* Write type, SAO/DAO, -dao: SetBurn. (line 172)
|
* Write type, SAO/DAO, -dao: SetBurn. (line 172)
|
||||||
* Write type, SAO/DAO, -sao: SetBurn. (line 168)
|
* Write type, SAO/DAO, -sao: SetBurn. (line 168)
|
||||||
* Write type, TAO, -tao: SetBurn. (line 162)
|
* Write type, TAO, -tao: SetBurn. (line 162)
|
||||||
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 125)
|
* Write, buffer syncing, stdio_sync=: NonCdrecord. (line 133)
|
||||||
* Write, drive buffer, -immed: SetBurn. (line 208)
|
* Write, drive buffer, -immed: SetBurn. (line 208)
|
||||||
* Write, drive buffer, minbuf=: SetBurn. (line 205)
|
* Write, drive buffer, minbuf=: SetBurn. (line 205)
|
||||||
* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 73)
|
* Write, drive buffer, modesty_on_drive=: NonCdrecord. (line 81)
|
||||||
* xorriso, mkisofs emulation: Xorriso. (line 6)
|
* xorriso, mkisofs emulation: Xorriso. (line 6)
|
||||||
* xorriso, options: Options. (line 6)
|
* xorriso, options: Options. (line 6)
|
||||||
|
|
||||||
@ -1023,21 +1034,21 @@ Node: Inquire7618
|
|||||||
Node: SetBurn10487
|
Node: SetBurn10487
|
||||||
Node: Verbous21115
|
Node: Verbous21115
|
||||||
Node: NonCdrecord22665
|
Node: NonCdrecord22665
|
||||||
Node: Examples30005
|
Node: Examples30478
|
||||||
Node: ExDevices30666
|
Node: ExDevices31139
|
||||||
Node: ExMedium30884
|
Node: ExMedium31357
|
||||||
Node: ExBlank31147
|
Node: ExBlank31620
|
||||||
Node: ExFormat31368
|
Node: ExFormat31841
|
||||||
Node: ExDeformat31886
|
Node: ExDeformat32359
|
||||||
Node: ExIsoSingle32153
|
Node: ExIsoSingle32626
|
||||||
Node: ExIsoMulti32437
|
Node: ExIsoMulti32910
|
||||||
Node: ExIsoFly34181
|
Node: ExIsoFly34654
|
||||||
Node: ExAfio35373
|
Node: ExAfio35846
|
||||||
Node: Files36371
|
Node: Files36844
|
||||||
Node: Seealso36927
|
Node: Seealso37400
|
||||||
Node: Bugreport37290
|
Node: Bugreport37763
|
||||||
Node: Legal37881
|
Node: Legal38354
|
||||||
Node: CommandIdx38810
|
Node: CommandIdx39283
|
||||||
Node: ConceptIdx42300
|
Node: ConceptIdx42846
|
||||||
|
|
||||||
End Tag Table
|
End Tag Table
|
||||||
|
@ -50,7 +50,7 @@
|
|||||||
@c man .\" First parameter, NAME, should be all caps
|
@c man .\" First parameter, NAME, should be all caps
|
||||||
@c man .\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
@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 .\" other parameters are allowed: see man(7), man(1)
|
||||||
@c man .TH XORRECORD 1 "Version 1.5.1, Nov 11, 2018"
|
@c man .TH XORRECORD 1 "Version 1.5.1, Sep 04, 2019"
|
||||||
@c man .\" Please adjust this date whenever revising the manpage.
|
@c man .\" Please adjust this date whenever revising the manpage.
|
||||||
@c man .\"
|
@c man .\"
|
||||||
@c man .\" Some roff macros, for reference:
|
@c man .\" Some roff macros, for reference:
|
||||||
@ -68,7 +68,7 @@
|
|||||||
@copying
|
@copying
|
||||||
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
|
xorrecord - Emulation of CD/DVD/BD program cdrecord by program xorriso
|
||||||
|
|
||||||
Copyright @copyright{} 2011 - 2018 Thomas Schmitt
|
Copyright @copyright{} 2011 - 2019 Thomas Schmitt
|
||||||
|
|
||||||
@quotation
|
@quotation
|
||||||
Permission is granted to distrubute this text freely.
|
Permission is granted to distrubute this text freely.
|
||||||
@ -736,6 +736,18 @@ Afterwards end emulation without performing any drive operation.
|
|||||||
Only if used as first command line argument this option
|
Only if used as first command line argument this option
|
||||||
prevents reading and interpretation of startup files. See section FILES below.
|
prevents reading and interpretation of startup files. See section FILES below.
|
||||||
@c man .TP
|
@c man .TP
|
||||||
|
@item @minus{}@minus{}drive_not_exclusive
|
||||||
|
@kindex @minus{}@minus{}drive_not_exclusive use drive even if busy
|
||||||
|
@cindex Drive, use even if busy, @minus{}@minus{}drive_not_exclusive
|
||||||
|
This option disables the use of device file locking mechanisms when acquiring
|
||||||
|
the drive. On GNU/Linux the locking is done by open(O_EXCL), on FreeBSD by
|
||||||
|
flock(LOCK_EX).
|
||||||
|
@*
|
||||||
|
Be aware that it can cause problems if you use a drive which is mounted,
|
||||||
|
or opened by some other process, or guarded by /dev/pktcdvd*.
|
||||||
|
Make sure that other users of the drive do not cause drive activities
|
||||||
|
while a xorrecord burn run is going on.
|
||||||
|
@c man .TP
|
||||||
@item drive_scsi_dev_family=sr|scd|sg|default
|
@item drive_scsi_dev_family=sr|scd|sg|default
|
||||||
@kindex drive_scsi_dev_family= Linux device type to be used
|
@kindex drive_scsi_dev_family= Linux device type to be used
|
||||||
@cindex Drive, Linux device type, drive_scsi_dev_family
|
@cindex Drive, Linux device type, drive_scsi_dev_family
|
||||||
@ -1185,7 +1197,7 @@ Thomas Schmitt <scdbackup@@gmx.net>
|
|||||||
for libburnia-project.org
|
for libburnia-project.org
|
||||||
@c man .SH COPYRIGHT
|
@c man .SH COPYRIGHT
|
||||||
@section Copyright
|
@section Copyright
|
||||||
Copyright (c) 2011 - 2018 Thomas Schmitt
|
Copyright (c) 2011 - 2019 Thomas Schmitt
|
||||||
@*
|
@*
|
||||||
Permission is granted to distribute this text freely. It shall only be
|
Permission is granted to distribute this text freely. It shall only be
|
||||||
modified in sync with the technical properties of xorriso. If you make use
|
modified in sync with the technical properties of xorriso. If you make use
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
.\" First parameter, NAME, should be all caps
|
.\" First parameter, NAME, should be all caps
|
||||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||||
.\" other parameters are allowed: see man(7), man(1)
|
.\" other parameters are allowed: see man(7), man(1)
|
||||||
.TH XORRISO 1 "Version 1.5.1, Apr 15, 2019"
|
.TH XORRISO 1 "Version 1.5.1, Sep 04, 2019"
|
||||||
.\" Please adjust this date whenever revising the manpage.
|
.\" Please adjust this date whenever revising the manpage.
|
||||||
.\"
|
.\"
|
||||||
.\" Some roff macros, for reference:
|
.\" Some roff macros, for reference:
|
||||||
@ -690,6 +690,64 @@ apply. See above paragraph "Libburn drives".
|
|||||||
An empty address string "" gives up the current output drive
|
An empty address string "" gives up the current output drive
|
||||||
without acquiring a new one. No writing is possible without an output drive.
|
without acquiring a new one. No writing is possible without an output drive.
|
||||||
.TP
|
.TP
|
||||||
|
\fB\-drive_class\fR "harmless"|"banned"|"caution"|"clear_list" disk_pattern
|
||||||
|
Add a drive path pattern to one of the safety lists or make those lists empty.
|
||||||
|
There are three lists defined which get tested in the following sequence:
|
||||||
|
.br
|
||||||
|
If a drive address path matches the "harmless" list then the drive will be
|
||||||
|
accepted. If it is not a MMC device then the prefix "stdio:" will be prepended
|
||||||
|
automatically. This list is empty by default.
|
||||||
|
.br
|
||||||
|
Else if the path matches the "banned" list then the drive will not be
|
||||||
|
accepted by \fBxorriso\fR but rather lead to a FAILURE event.
|
||||||
|
This list is empty by default.
|
||||||
|
.br
|
||||||
|
Else if the path matches the "caution" list and if it is not a MMC device,
|
||||||
|
then its address must have the prefix "stdio:" or it will be rejected.
|
||||||
|
This list has by default one entry: "/dev".
|
||||||
|
.br
|
||||||
|
If a drive path matches no list then it is considered "harmless". By default
|
||||||
|
these are all paths which do not begin with directory "/dev".
|
||||||
|
.br
|
||||||
|
A path matches a list if one of its parent paths or itself matches a list
|
||||||
|
entry. Address prefix "stdio:" or "mmc:" will be ignored when
|
||||||
|
testing for matches.
|
||||||
|
.br
|
||||||
|
By pseudo\-class "clear_list" and pseudo\-patterns "banned", "caution",
|
||||||
|
"harmless", or "all", the lists may be made empty.
|
||||||
|
.br
|
||||||
|
E.g.: \-drive_class clear_list banned
|
||||||
|
.br
|
||||||
|
One will normally define the \-drive_class lists in one of the \fBxorriso\fR
|
||||||
|
Startup Files.
|
||||||
|
.br
|
||||||
|
Note: This is not a security feature but rather a bumper for the superuser to
|
||||||
|
prevent inadverted mishaps. For reliably blocking access to a device file you
|
||||||
|
have to deny its rw\-permissions in the filesystem.
|
||||||
|
.TP
|
||||||
|
\fB\-drive_access\fR "exclusive"|"shared":"unrestricted"|"readonly"
|
||||||
|
Control whether device file locking mechanisms shall be used when acquiring a
|
||||||
|
drive, and whether status or content of the medium in the drive may be
|
||||||
|
altered. Useful and most harmless are the setting "shared:readonly"
|
||||||
|
and the default setting "exclusive:unrestricted".
|
||||||
|
.br
|
||||||
|
"exclusive" enables tests and locks when acquiring the drive. It depends on the
|
||||||
|
operating system which locking mechanisms get applied, if any. On GNU/Linux
|
||||||
|
it is open(O_EXCL). On FreeBSD it is flock(LOCK_EX).
|
||||||
|
.br
|
||||||
|
"shared" disables the use of these mechanisms to become able to acquire drives
|
||||||
|
which are mounted, or opened by some process, or guarded by /dev/pktcdvd*.
|
||||||
|
.br
|
||||||
|
"unrestricted" enables all technically appropriate operations on an acquired
|
||||||
|
drive. "shared:unrestricted" risks to get own burn runs spoiled by other
|
||||||
|
processes or to vice versa spoil activities of such processes. So use
|
||||||
|
"exclusive:unrestricted" unless you know for sure that "shared" is safe.
|
||||||
|
.br
|
||||||
|
"readonly" disables operations which might surprise a co\-user of the drive.
|
||||||
|
For \-outdev these are formatting, blanking, writing, ejecting. For \-indev
|
||||||
|
this is ejecting. Be aware that even reading and drive status inquiries can
|
||||||
|
disturb an ongoing burn run on CD\-R[W] and DVD\-R[W].
|
||||||
|
.TP
|
||||||
\fB\-scsi_dev_family\fR "default"|"sr"|"scd"|"sg"
|
\fB\-scsi_dev_family\fR "default"|"sr"|"scd"|"sg"
|
||||||
GNU/Linux specific:
|
GNU/Linux specific:
|
||||||
.br
|
.br
|
||||||
@ -816,41 +874,6 @@ to employ a loop device instead.)
|
|||||||
In both cases, the ISO sessions should be self contained, i.e. not add\-on
|
In both cases, the ISO sessions should be self contained, i.e. not add\-on
|
||||||
sessions to an ISO image outside their track or partition.
|
sessions to an ISO image outside their track or partition.
|
||||||
.TP
|
.TP
|
||||||
\fB\-drive_class\fR "harmless"|"banned"|"caution"|"clear_list" disk_pattern
|
|
||||||
Add a drive path pattern to one of the safety lists or make those lists empty.
|
|
||||||
There are three lists defined which get tested in the following sequence:
|
|
||||||
.br
|
|
||||||
If a drive address path matches the "harmless" list then the drive will be
|
|
||||||
accepted. If it is not a MMC device then the prefix "stdio:" will be prepended
|
|
||||||
automatically. This list is empty by default.
|
|
||||||
.br
|
|
||||||
Else if the path matches the "banned" list then the drive will not be
|
|
||||||
accepted by \fBxorriso\fR but rather lead to a FAILURE event.
|
|
||||||
This list is empty by default.
|
|
||||||
.br
|
|
||||||
Else if the path matches the "caution" list and if it is not a MMC device,
|
|
||||||
then its address must have the prefix "stdio:" or it will be rejected.
|
|
||||||
This list has by default one entry: "/dev".
|
|
||||||
.br
|
|
||||||
If a drive path matches no list then it is considered "harmless". By default
|
|
||||||
these are all paths which do not begin with directory "/dev".
|
|
||||||
.br
|
|
||||||
A path matches a list if one of its parent paths or itself matches a list
|
|
||||||
entry. Address prefix "stdio:" or "mmc:" will be ignored when
|
|
||||||
testing for matches.
|
|
||||||
.br
|
|
||||||
By pseudo\-class "clear_list" and pseudo\-patterns "banned", "caution",
|
|
||||||
"harmless", or "all", the lists may be made empty.
|
|
||||||
.br
|
|
||||||
E.g.: \-drive_class clear_list banned
|
|
||||||
.br
|
|
||||||
One will normally define the \-drive_class lists in one of the \fBxorriso\fR
|
|
||||||
Startup Files.
|
|
||||||
.br
|
|
||||||
Note: This is not a security feature but rather a bumper for the superuser to
|
|
||||||
prevent inadverted mishaps. For reliably blocking access to a device file you
|
|
||||||
have to deny its rw\-permissions in the filesystem.
|
|
||||||
.TP
|
|
||||||
\fB\-read_fs\fR "any"|"norock"|"nojoliet"|"ecma119"
|
\fB\-read_fs\fR "any"|"norock"|"nojoliet"|"ecma119"
|
||||||
Specify which kind of filesystem tree to load if present. If the wish cannot
|
Specify which kind of filesystem tree to load if present. If the wish cannot
|
||||||
be fulfilled, then ECMA\-119 names are loaded and converted according
|
be fulfilled, then ECMA\-119 names are loaded and converted according
|
||||||
@ -4773,7 +4796,8 @@ write permission. Default is "sort_lba_off".
|
|||||||
Option "o_excl_on" is the default unless the program was started with leafname
|
Option "o_excl_on" is the default unless the program was started with leafname
|
||||||
"osirrox". On GNU/Linux it tries to avoid using drives which are mounted or in
|
"osirrox". On GNU/Linux it tries to avoid using drives which are mounted or in
|
||||||
use by other libburn programs.
|
use by other libburn programs.
|
||||||
Option "o_excl_off" on GNU/Linux enables access to such drives. Drives which
|
Option "o_excl_off" on GNU/Linux enables access to such drives by the
|
||||||
|
equivalent of \-drive_access "shared:readonly". I.e. drives which
|
||||||
get acquired while "o_excl_off" will refuse to get blanked, formatted,
|
get acquired while "o_excl_off" will refuse to get blanked, formatted,
|
||||||
written, or ejected. But be aware that even harmless inquiries can spoil
|
written, or ejected. But be aware that even harmless inquiries can spoil
|
||||||
ongoing burns of CD\-R[W] and DVD\-R[W].
|
ongoing burns of CD\-R[W] and DVD\-R[W].
|
||||||
|
@ -820,6 +820,9 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag);
|
|||||||
(Note: prefix is "Creation Time: ")
|
(Note: prefix is "Creation Time: ")
|
||||||
"DVD obs 64 kB:" up to 1 result from -list_extras
|
"DVD obs 64 kB:" up to 1 result from -list_extras
|
||||||
argv[0]= "yes" or "no"
|
argv[0]= "yes" or "no"
|
||||||
|
"Drive access: " up to 2 result from -dev, -indev, -toc
|
||||||
|
argv[0]= "exclusive", "shared"
|
||||||
|
argv[1]= "readonly","restricted"
|
||||||
"Drive current:" up to 2 results from -dev, -indev, -toc, others
|
"Drive current:" up to 2 results from -dev, -indev, -toc, others
|
||||||
argv[0]= command ("-dev", "-outdev", "-indev")
|
argv[0]= command ("-dev", "-outdev", "-indev")
|
||||||
argv[1]= drive address
|
argv[1]= drive address
|
||||||
@ -1502,6 +1505,10 @@ int Xorriso_option_disk_pattern(struct XorrisO *xorriso, char *mode, int flag);
|
|||||||
int Xorriso_option_displacement(struct XorrisO *xorriso, char *value,
|
int Xorriso_option_displacement(struct XorrisO *xorriso, char *value,
|
||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
|
/* Command -drive_access "exclusive"|"shared":"readonly"|"unrestricted" */
|
||||||
|
/* @since 1.5.2 */
|
||||||
|
int Xorriso_option_drive_access(struct XorrisO *xorriso, char *mode, int flag);
|
||||||
|
|
||||||
/* Command -drive_class */
|
/* Command -drive_class */
|
||||||
/* @since 0.3.2 */
|
/* @since 0.3.2 */
|
||||||
int Xorriso_option_drive_class(struct XorrisO *xorriso,
|
int Xorriso_option_drive_class(struct XorrisO *xorriso,
|
||||||
|
@ -4,7 +4,7 @@ xorriso.texi.
|
|||||||
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
|
xorriso - creates, loads, manipulates and writes ISO 9660 filesystem
|
||||||
images with Rock Ridge extensions.
|
images with Rock Ridge extensions.
|
||||||
|
|
||||||
Copyright (C) 2007 - 2017 Thomas Schmitt
|
Copyright (C) 2007 - 2019 Thomas Schmitt
|
||||||
|
|
||||||
Permission is granted to distrubute this text freely.
|
Permission is granted to distrubute this text freely.
|
||||||
INFO-DIR-SECTION Archiving
|
INFO-DIR-SECTION Archiving
|
||||||
@ -638,6 +638,58 @@ acquire the drive.
|
|||||||
An empty address string "" gives up the current output drive
|
An empty address string "" gives up the current output drive
|
||||||
without acquiring a new one. No writing is possible without an
|
without acquiring a new one. No writing is possible without an
|
||||||
output drive.
|
output drive.
|
||||||
|
-drive_class "harmless"|"banned"|"caution"|"clear_list" disk_pattern
|
||||||
|
Add a drive path pattern to one of the safety lists or make those
|
||||||
|
lists empty. There are three lists defined which get tested in the
|
||||||
|
following sequence:
|
||||||
|
If a drive address path matches the "harmless" list then the drive
|
||||||
|
will be accepted. If it is not a MMC device then the prefix
|
||||||
|
"stdio:" will be prepended automatically. This list is empty by
|
||||||
|
default.
|
||||||
|
Else if the path matches the "banned" list then the drive will not
|
||||||
|
be accepted by 'xorriso' but rather lead to a FAILURE event. This
|
||||||
|
list is empty by default.
|
||||||
|
Else if the path matches the "caution" list and if it is not a MMC
|
||||||
|
device, then its address must have the prefix "stdio:" or it will
|
||||||
|
be rejected. This list has by default one entry: "/dev".
|
||||||
|
If a drive path matches no list then it is considered "harmless".
|
||||||
|
By default these are all paths which do not begin with directory
|
||||||
|
"/dev".
|
||||||
|
A path matches a list if one of its parent paths or itself matches
|
||||||
|
a list entry. Address prefix "stdio:" or "mmc:" will be ignored
|
||||||
|
when testing for matches.
|
||||||
|
By pseudo-class "clear_list" and pseudo-patterns "banned",
|
||||||
|
"caution", "harmless", or "all", the lists may be made empty.
|
||||||
|
E.g.: -drive_class clear_list banned
|
||||||
|
One will normally define the -drive_class lists in one of the
|
||||||
|
'xorriso' Startup Files.
|
||||||
|
Note: This is not a security feature but rather a bumper for the
|
||||||
|
superuser to prevent inadverted mishaps. For reliably blocking
|
||||||
|
access to a device file you have to deny its rw-permissions in the
|
||||||
|
filesystem.
|
||||||
|
-drive_access "exclusive"|"shared":"unrestricted"|"readonly"
|
||||||
|
Control whether device file locking mechanisms shall be used when
|
||||||
|
acquiring a drive, and whether status or content of the medium in
|
||||||
|
the drive may be altered. Useful and most harmless are the setting
|
||||||
|
"shared:readonly" and the default setting "exclusive:unrestricted".
|
||||||
|
|
||||||
|
"exclusive" enables tests and locks when acquiring the drive. It
|
||||||
|
depends on the operating system which locking mechanisms get
|
||||||
|
applied, if any. On GNU/Linux it is open(O_EXCL). On FreeBSD it is
|
||||||
|
flock(LOCK_EX).
|
||||||
|
"shared" disables the use of these mechanisms to become able to
|
||||||
|
acquire drives which are mounted, or opened by some process, or
|
||||||
|
guarded by /dev/pktcdvd*.
|
||||||
|
"unrestricted" enables all technically appropriate operations on an
|
||||||
|
acquired drive. "shared:unrestricted" risks to get own burn runs
|
||||||
|
spoiled by other processes or to vice versa spoil activities of
|
||||||
|
such processes. So use "exclusive:unrestricted" unless you know
|
||||||
|
for sure that "shared" is safe.
|
||||||
|
"readonly" disables operations which might surprise a co-user of
|
||||||
|
the drive. For -outdev these are formatting, blanking, writing,
|
||||||
|
ejecting. For -indev this is ejecting. Be aware that even reading
|
||||||
|
and drive status inquiries can disturb an ongoing burn run on
|
||||||
|
CD-R[W] and DVD-R[W].
|
||||||
-scsi_dev_family "default"|"sr"|"scd"|"sg"
|
-scsi_dev_family "default"|"sr"|"scd"|"sg"
|
||||||
GNU/Linux specific:
|
GNU/Linux specific:
|
||||||
By default, xorriso tries to map Linux drive addresses to /dev/sr*
|
By default, xorriso tries to map Linux drive addresses to /dev/sr*
|
||||||
@ -744,35 +796,6 @@ activate them only after image loading.
|
|||||||
will have to employ a loop device instead.)
|
will have to employ a loop device instead.)
|
||||||
In both cases, the ISO sessions should be self contained, i.e. not
|
In both cases, the ISO sessions should be self contained, i.e. not
|
||||||
add-on sessions to an ISO image outside their track or partition.
|
add-on sessions to an ISO image outside their track or partition.
|
||||||
-drive_class "harmless"|"banned"|"caution"|"clear_list" disk_pattern
|
|
||||||
Add a drive path pattern to one of the safety lists or make those
|
|
||||||
lists empty. There are three lists defined which get tested in the
|
|
||||||
following sequence:
|
|
||||||
If a drive address path matches the "harmless" list then the drive
|
|
||||||
will be accepted. If it is not a MMC device then the prefix
|
|
||||||
"stdio:" will be prepended automatically. This list is empty by
|
|
||||||
default.
|
|
||||||
Else if the path matches the "banned" list then the drive will not
|
|
||||||
be accepted by 'xorriso' but rather lead to a FAILURE event. This
|
|
||||||
list is empty by default.
|
|
||||||
Else if the path matches the "caution" list and if it is not a MMC
|
|
||||||
device, then its address must have the prefix "stdio:" or it will
|
|
||||||
be rejected. This list has by default one entry: "/dev".
|
|
||||||
If a drive path matches no list then it is considered "harmless".
|
|
||||||
By default these are all paths which do not begin with directory
|
|
||||||
"/dev".
|
|
||||||
A path matches a list if one of its parent paths or itself matches
|
|
||||||
a list entry. Address prefix "stdio:" or "mmc:" will be ignored
|
|
||||||
when testing for matches.
|
|
||||||
By pseudo-class "clear_list" and pseudo-patterns "banned",
|
|
||||||
"caution", "harmless", or "all", the lists may be made empty.
|
|
||||||
E.g.: -drive_class clear_list banned
|
|
||||||
One will normally define the -drive_class lists in one of the
|
|
||||||
'xorriso' Startup Files.
|
|
||||||
Note: This is not a security feature but rather a bumper for the
|
|
||||||
superuser to prevent inadverted mishaps. For reliably blocking
|
|
||||||
access to a device file you have to deny its rw-permissions in the
|
|
||||||
filesystem.
|
|
||||||
-read_fs "any"|"norock"|"nojoliet"|"ecma119"
|
-read_fs "any"|"norock"|"nojoliet"|"ecma119"
|
||||||
Specify which kind of filesystem tree to load if present. If the
|
Specify which kind of filesystem tree to load if present. If the
|
||||||
wish cannot be fulfilled, then ECMA-119 names are loaded and
|
wish cannot be fulfilled, then ECMA-119 names are loaded and
|
||||||
@ -4017,11 +4040,11 @@ The directory permissions on disk have to allow rwx.
|
|||||||
Option "o_excl_on" is the default unless the program was started
|
Option "o_excl_on" is the default unless the program was started
|
||||||
with leafname "osirrox". On GNU/Linux it tries to avoid using
|
with leafname "osirrox". On GNU/Linux it tries to avoid using
|
||||||
drives which are mounted or in use by other libburn programs.
|
drives which are mounted or in use by other libburn programs.
|
||||||
Option "o_excl_off" on GNU/Linux enables access to such drives.
|
Option "o_excl_off" on GNU/Linux enables access to such drives by
|
||||||
Drives which get acquired while "o_excl_off" will refuse to get
|
the equivalent of -drive_access "shared:readonly". I.e. drives
|
||||||
blanked, formatted, written, or ejected. But be aware that even
|
which get acquired while "o_excl_off" will refuse to get blanked,
|
||||||
harmless inquiries can spoil ongoing burns of CD-R[W] and DVD-R[W].
|
formatted, written, or ejected. But be aware that even harmless
|
||||||
|
inquiries can spoil ongoing burns of CD-R[W] and DVD-R[W].
|
||||||
Option "strict_acl_off" is default. It tolerates on FreeBSD the
|
Option "strict_acl_off" is default. It tolerates on FreeBSD the
|
||||||
presence of directory "default" ACLs in the ISO image. With
|
presence of directory "default" ACLs in the ISO image. With
|
||||||
"strict_acl_on" these GNU/Linux ACLs cause on FreeBSD a FAILURE
|
"strict_acl_on" these GNU/Linux ACLs cause on FreeBSD a FAILURE
|
||||||
@ -5282,7 +5305,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* # starts a comment line: Scripting. (line 156)
|
* # starts a comment line: Scripting. (line 156)
|
||||||
* -abort_on controls abort on error: Exception. (line 27)
|
* -abort_on controls abort on error: Exception. (line 27)
|
||||||
* -abstract_file sets abstract file name: SetWrite. (line 244)
|
* -abstract_file sets abstract file name: SetWrite. (line 244)
|
||||||
* -acl controls handling of ACLs: Loading. (line 173)
|
* -acl controls handling of ACLs: Loading. (line 144)
|
||||||
* -add inserts one or more paths: Insert. (line 44)
|
* -add inserts one or more paths: Insert. (line 44)
|
||||||
* -add_plainly inserts one or more paths: Insert. (line 68)
|
* -add_plainly inserts one or more paths: Insert. (line 68)
|
||||||
* -alter_date sets timestamps in ISO image: Manip. (line 139)
|
* -alter_date sets timestamps in ISO image: Manip. (line 139)
|
||||||
@ -5292,14 +5315,14 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -application_id sets application id: SetWrite. (line 191)
|
* -application_id sets application id: SetWrite. (line 191)
|
||||||
* -application_use sets application use field: SetWrite. (line 266)
|
* -application_use sets application use field: SetWrite. (line 266)
|
||||||
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
|
* -as emulates mkisofs or cdrecord: Emulation. (line 13)
|
||||||
* -assert_volid rejects undesired images: Loading. (line 113)
|
* -assert_volid rejects undesired images: Loading. (line 84)
|
||||||
* -auto_charset learns character set from image: Loading. (line 125)
|
* -auto_charset learns character set from image: Loading. (line 96)
|
||||||
* -backslash_codes enables backslash conversion: Scripting. (line 71)
|
* -backslash_codes enables backslash conversion: Scripting. (line 71)
|
||||||
* -ban_stdio_write demands real drive: Loading. (line 342)
|
* -ban_stdio_write demands real drive: Loading. (line 313)
|
||||||
* -biblio_file sets biblio file name: SetWrite. (line 250)
|
* -biblio_file sets biblio file name: SetWrite. (line 250)
|
||||||
* -blank erases media: Writing. (line 57)
|
* -blank erases media: Writing. (line 57)
|
||||||
* -boot_image controls bootability: Bootable. (line 75)
|
* -boot_image controls bootability: Bootable. (line 75)
|
||||||
* -calm_drive reduces drive activity: Loading. (line 332)
|
* -calm_drive reduces drive activity: Loading. (line 303)
|
||||||
* -cd sets working directory in ISO: Navigate. (line 7)
|
* -cd sets working directory in ISO: Navigate. (line 7)
|
||||||
* -cdx sets working directory on disk: Navigate. (line 15)
|
* -cdx sets working directory on disk: Navigate. (line 15)
|
||||||
* -changes_pending overrides change status: Writing. (line 12)
|
* -changes_pending overrides change status: Writing. (line 12)
|
||||||
@ -5333,24 +5356,25 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -cp_rx copies file trees to disk: Restore. (line 103)
|
* -cp_rx copies file trees to disk: Restore. (line 103)
|
||||||
* -cp_rx copies file trees to disk <1>: Restore. (line 111)
|
* -cp_rx copies file trees to disk <1>: Restore. (line 111)
|
||||||
* -cut_out inserts piece of data file: Insert. (line 139)
|
* -cut_out inserts piece of data file: Insert. (line 139)
|
||||||
* -data_cache_size adjusts read cache size: Loading. (line 358)
|
* -data_cache_size adjusts read cache size: Loading. (line 329)
|
||||||
* -dev acquires one drive for input and output: AqDrive. (line 12)
|
* -dev acquires one drive for input and output: AqDrive. (line 12)
|
||||||
* -devices gets list of drives: Inquiry. (line 7)
|
* -devices gets list of drives: Inquiry. (line 7)
|
||||||
* -device_links gets list of drives: Inquiry. (line 17)
|
* -device_links gets list of drives: Inquiry. (line 17)
|
||||||
* -dialog enables dialog mode: DialogCtl. (line 7)
|
* -dialog enables dialog mode: DialogCtl. (line 7)
|
||||||
* -disk_dev_ino fast incremental backup: Loading. (line 252)
|
* -disk_dev_ino fast incremental backup: Loading. (line 223)
|
||||||
* -disk_pattern controls pattern expansion: Insert. (line 34)
|
* -disk_pattern controls pattern expansion: Insert. (line 34)
|
||||||
* -displacement compensate altered image start address: Loading.
|
* -displacement compensate altered image start address: Loading.
|
||||||
(line 57)
|
(line 57)
|
||||||
* -drive_class controls drive accessability: Loading. (line 75)
|
* -drive_access control device file locking: AqDrive. (line 72)
|
||||||
|
* -drive_class controls drive accessability: AqDrive. (line 43)
|
||||||
* -du show directory size in ISO image: Navigate. (line 78)
|
* -du show directory size in ISO image: Navigate. (line 78)
|
||||||
* -dummy controls write simulation: SetWrite. (line 393)
|
* -dummy controls write simulation: SetWrite. (line 393)
|
||||||
* -dus show directory size in ISO image: Navigate. (line 81)
|
* -dus show directory size in ISO image: Navigate. (line 81)
|
||||||
* -dusx show directory size on disk: Navigate. (line 88)
|
* -dusx show directory size on disk: Navigate. (line 88)
|
||||||
* -dux show directory size on disk: Navigate. (line 84)
|
* -dux show directory size on disk: Navigate. (line 84)
|
||||||
* -dvd_obs set write block size: SetWrite. (line 330)
|
* -dvd_obs set write block size: SetWrite. (line 330)
|
||||||
* -early_stdio_test classifies stdio drives: Loading. (line 346)
|
* -early_stdio_test classifies stdio drives: Loading. (line 317)
|
||||||
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 234)
|
* -ecma119_map names w/o Rock Ridge, Joliet: Loading. (line 205)
|
||||||
* -eject ejects drive tray: Writing. (line 50)
|
* -eject ejects drive tray: Writing. (line 50)
|
||||||
* -end writes pending session and ends program: Scripting. (line 151)
|
* -end writes pending session and ends program: Scripting. (line 151)
|
||||||
* -errfile_log logs problematic disk files: Scripting. (line 116)
|
* -errfile_log logs problematic disk files: Scripting. (line 116)
|
||||||
@ -5361,29 +5385,29 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -extract_cut copies file piece to disk: Restore. (line 80)
|
* -extract_cut copies file piece to disk: Restore. (line 80)
|
||||||
* -extract_l copies files to disk: Restore. (line 76)
|
* -extract_l copies files to disk: Restore. (line 76)
|
||||||
* -extract_single copies file to disk: Restore. (line 73)
|
* -extract_single copies file to disk: Restore. (line 73)
|
||||||
* -file_name_limit curbs length of file names: Loading. (line 272)
|
* -file_name_limit curbs length of file names: Loading. (line 243)
|
||||||
* -file_size_limit limits data file size: SetInsert. (line 7)
|
* -file_size_limit limits data file size: SetInsert. (line 7)
|
||||||
* -find traverses and alters ISO tree: CmdFind. (line 7)
|
* -find traverses and alters ISO tree: CmdFind. (line 7)
|
||||||
* -findx traverses disk tree: Navigate. (line 91)
|
* -findx traverses disk tree: Navigate. (line 91)
|
||||||
* -follow softlinks and mount points: SetInsert. (line 69)
|
* -follow softlinks and mount points: SetInsert. (line 69)
|
||||||
* -format formats media: Writing. (line 87)
|
* -format formats media: Writing. (line 87)
|
||||||
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 220)
|
* -for_backup -acl,-xattr,-hardlinks,-md5: Loading. (line 191)
|
||||||
* -fs sets size of fifo: SetWrite. (line 396)
|
* -fs sets size of fifo: SetWrite. (line 396)
|
||||||
* -getfacl shows ACL in ISO image: Navigate. (line 60)
|
* -getfacl shows ACL in ISO image: Navigate. (line 60)
|
||||||
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
|
* -getfacl_r shows ACL in ISO image: Navigate. (line 66)
|
||||||
* -getfattr shows xattr in ISO image: Navigate. (line 69)
|
* -getfattr shows xattr in ISO image: Navigate. (line 69)
|
||||||
* -getfattr_r shows xattr in ISO image: Navigate. (line 75)
|
* -getfattr_r shows xattr in ISO image: Navigate. (line 75)
|
||||||
* -gid sets global ownership: SetWrite. (line 287)
|
* -gid sets global ownership: SetWrite. (line 287)
|
||||||
* -grow_blindly overides next writeable address: AqDrive. (line 60)
|
* -grow_blindly overides next writeable address: AqDrive. (line 112)
|
||||||
* -hardlinks controls handling of hard links: Loading. (line 136)
|
* -hardlinks controls handling of hard links: Loading. (line 107)
|
||||||
* -help prints help text: Scripting. (line 19)
|
* -help prints help text: Scripting. (line 19)
|
||||||
* -hfsplus enables production of HFS+ partition: SetWrite. (line 14)
|
* -hfsplus enables production of HFS+ partition: SetWrite. (line 14)
|
||||||
* -hide excludes file names from directory trees: Manip. (line 177)
|
* -hide excludes file names from directory trees: Manip. (line 177)
|
||||||
* -history brings text into readline history: Scripting. (line 42)
|
* -history brings text into readline history: Scripting. (line 42)
|
||||||
* -indev acquires a drive for input: AqDrive. (line 23)
|
* -indev acquires a drive for input: AqDrive. (line 23)
|
||||||
* -in_charset sets input character set: Loading. (line 120)
|
* -in_charset sets input character set: Loading. (line 91)
|
||||||
* -iso_nowtime fixed "now" time for ISO 9660 objects: Loading.
|
* -iso_nowtime fixed "now" time for ISO 9660 objects: Loading.
|
||||||
(line 246)
|
(line 217)
|
||||||
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
|
* -iso_rr_pattern controls pattern expansion: Manip. (line 10)
|
||||||
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
|
* -jigdo clears JTE or or adds parameter to JTE: Jigdo. (line 33)
|
||||||
* -joliet enables production of Joliet tree: SetWrite. (line 10)
|
* -joliet enables production of Joliet tree: SetWrite. (line 10)
|
||||||
@ -5411,7 +5435,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -map_l inserts paths from disk file: Insert. (line 96)
|
* -map_l inserts paths from disk file: Insert. (line 96)
|
||||||
* -map_single inserts path: Insert. (line 93)
|
* -map_single inserts path: Insert. (line 93)
|
||||||
* -mark sets synchronizing message: Frontend. (line 23)
|
* -mark sets synchronizing message: Frontend. (line 23)
|
||||||
* -md5 controls handling of MD5 sums: Loading. (line 192)
|
* -md5 controls handling of MD5 sums: Loading. (line 163)
|
||||||
* -mkdir creates ISO directory: Insert. (line 177)
|
* -mkdir creates ISO directory: Insert. (line 177)
|
||||||
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 336)
|
* -modesty_on_drive keep drive buffer hungry: SetWrite. (line 336)
|
||||||
* -mount issues mount command for ISO session: Restore. (line 146)
|
* -mount issues mount command for ISO session: Restore. (line 146)
|
||||||
@ -5452,7 +5476,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -pwdx tells working directory on disk: Navigate. (line 21)
|
* -pwdx tells working directory on disk: Navigate. (line 21)
|
||||||
* -quoted_not_list sets exclusions: SetInsert. (line 66)
|
* -quoted_not_list sets exclusions: SetInsert. (line 66)
|
||||||
* -quoted_path_list inserts paths from disk file: Insert. (line 85)
|
* -quoted_path_list inserts paths from disk file: Insert. (line 85)
|
||||||
* -read_fs filesystem type for image loading: Loading. (line 104)
|
* -read_fs filesystem type for image loading: Loading. (line 75)
|
||||||
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
|
* -read_mkisofsrc searches and reads .mkisofsrc file: Emulation.
|
||||||
(line 155)
|
(line 155)
|
||||||
* -read_speed set read speed: Loading. (line 11)
|
* -read_speed set read speed: Loading. (line 11)
|
||||||
@ -5468,10 +5492,10 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
(line 51)
|
(line 51)
|
||||||
* -rollback discards pending changes: Writing. (line 9)
|
* -rollback discards pending changes: Writing. (line 9)
|
||||||
* -rollback_end ends program without writing: Scripting. (line 154)
|
* -rollback_end ends program without writing: Scripting. (line 154)
|
||||||
* -rom_toc_scan searches for sessions: Loading. (line 304)
|
* -rom_toc_scan searches for sessions: Loading. (line 275)
|
||||||
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 144)
|
* -rr_reloc_dir sets name of relocation directory: SetWrite. (line 144)
|
||||||
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
|
* -scdbackup_tag enables scdbackup checksum tag: Emulation. (line 179)
|
||||||
* -scsi_dev_family choose Linux device file type: AqDrive. (line 43)
|
* -scsi_dev_family choose Linux device file type: AqDrive. (line 95)
|
||||||
* -scsi_log reports SCSI commands: Scripting. (line 143)
|
* -scsi_log reports SCSI commands: Scripting. (line 143)
|
||||||
* -session_log logs written sessions: Scripting. (line 134)
|
* -session_log logs written sessions: Scripting. (line 134)
|
||||||
* -session_string composes session info line: Inquiry. (line 74)
|
* -session_string composes session info line: Inquiry. (line 74)
|
||||||
@ -5515,7 +5539,7 @@ File: xorriso.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top
|
|||||||
* -volume_date sets volume timestamp: SetWrite. (line 205)
|
* -volume_date sets volume timestamp: SetWrite. (line 205)
|
||||||
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 417)
|
* -write_type chooses TAO or SAO/DAO: SetWrite. (line 417)
|
||||||
* -x enables automatic execution order of arguments: ArgSort. (line 16)
|
* -x enables automatic execution order of arguments: ArgSort. (line 16)
|
||||||
* -xattr controls handling of xattr (EA): Loading. (line 180)
|
* -xattr controls handling of xattr (EA): Loading. (line 151)
|
||||||
* -zisofs controls zisofs production: SetWrite. (line 290)
|
* -zisofs controls zisofs production: SetWrite. (line 290)
|
||||||
|
|
||||||
|
|
||||||
@ -5527,7 +5551,7 @@ File: xorriso.info, Node: ConceptIdx, Prev: CommandIdx, Up: Top
|
|||||||
|