diff --git a/xorriso/emulators.c b/xorriso/emulators.c index 6d353c9e..5144bc50 100644 --- a/xorriso/emulators.c +++ b/xorriso/emulators.c @@ -560,7 +560,8 @@ int Xorriso_genisofs_count_args(struct XorrisO *xorriso, int argc, char **argv, "-jigdo-jigdo", "-jigdo-template", "-jigdo-min-file-size", "-jigdo-force-md5", "-jigdo-exclude", "-jigdo-map", "-md5-list", "--stdio_sync", "--quoted_path_list", "--efi-boot", "--embedded-boot", - "-isohybrid-mbr", "-e", + "-isohybrid-mbr", "-e", "-partition_offset", "-partition_hd_cyl", + "-partition_sec_hd", "" }; static char arg2_options[][41]= { @@ -725,6 +726,9 @@ int Xorriso_genisofs_help(struct XorrisO *xorriso, int flag) " -boot-info-table Patch boot image with info table", " -G FILE, -generic-boot FILE Set generic boot image name", " --protective-msdos-label Patch System Area by partition table", +" -partition_offset LBA Make image mountable by first partition, too", +" -partition_sec_hd NUMBER Define number of sectors per head", +" -partition_hd_cyl NUMBER Define number of heads per cylinder", " --modification-date=YYYYMMDDhhmmsscc", " Override date of creation and modification", " -isohybrid-mbr FILE Set SYSLINUX mbr/isohdp[fp]x*.bin for isohybrid", @@ -1225,6 +1229,9 @@ not_enough_args:; strcmp(argv[i], "--embedded-boot")==0 || strcmp(argv[i], "-generic-boot")==0 || strcmp(argv[i], "-G") == 0 || + strcmp(argv[i], "-partition_offset") == 0 || + strcmp(argv[i], "-partition_hd_cyl") == 0 || + strcmp(argv[i], "-partition_sec_hd") == 0 || strcmp(argv[i], "-isohybrid-mbr")==0) { if(i+1>=argc) goto not_enough_args; @@ -1501,6 +1508,16 @@ problem_handler_2:; xorriso->system_area_options= (xorriso->system_area_options & ~3) | 1; } else if(strcmp(argv[i], "--boot-catalog-hide")==0) { xorriso->boot_image_cat_hidden|= 3; + } else if(strcmp(argv[i], "-partition_offset") == 0 || + strcmp(argv[i], "-partition_sec_hd") == 0 || + strcmp(argv[i], "-partition_dh_cyl") == 0) { + if(i+1>=argc) + goto not_enough_args; + i++; + sprintf(sfe, "%s=%.16s", argv[i-1] + 1, argv[i]); + ret= Xorriso_option_boot_image(xorriso, "any", sfe, 0); + if(ret <= 0) + goto problem_handler_boot; } continue; /* regular bottom of loop */ problem_handler_boot:; diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index c935d854..7b8ba60c 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2010.09.05.113655" +#define Xorriso_timestamP "2010.09.05.113945"