| This is merge_debian_isos.info, produced by makeinfo version 5.2 from |
| merge_debian_isos.texi. |
| |
| merge_debian_isos - sh script to merge multiple debian-cd ISO images |
| |
| Copyright (C) 2022 Thomas Schmitt |
| |
| Permission is granted to distribute this text freely. |
| INFO-DIR-SECTION Archiving |
| START-INFO-DIR-ENTRY |
| * Merge_debian_isos: (merge_debian_isos). Merge debian-cd ISO images to a single image |
| END-INFO-DIR-ENTRY |
| |
| |
| File: merge_debian_isos.info, Node: Top, Next: Overview, Up: (dir) |
| |
| merge_debian_isos 1.5.5 |
| *********************** |
| |
| merge_debian_isos - Program to merge multiple debian-cd ISO images |
| * Menu: |
| |
| * Overview:: Overview |
| * Options:: Options |
| * Examples:: Examples |
| * Files:: Files |
| * Environ:: Environment |
| * Seealso:: See also |
| * Bugreport:: Reporting bugs |
| * Legal:: Author, Copyright, Credits |
| * CommandIdx:: Alphabetic Option List |
| * ConceptIdx:: Alphabetic List of Concepts and Objects |
| |
| |
| File: merge_debian_isos.info, Node: Overview, Next: Options, Prev: Top, Up: Top |
| |
| 1 Overview |
| ********** |
| |
| 'merge_debian_isos' mounts by *sudo* the ISO 9660 images iso1 to isoN at |
| directories mount_template1 to mount_templateN, if not already mounted |
| that way. Then the Debian pools and package lists get merged and a new |
| ISO 9660 image result_iso is produced by a run of *xorriso*. If iso1 is |
| bootable then the new image will be bootable by the same means. |
| |
| The file depicted by result_iso must not yet exist or has to be a |
| device which is acceptable for Linux-specific helper script |
| *xorriso-dd-target*. If xorriso-dd-target agrees and the user confirms |
| by input "yes" then xorriso will be run under sudo. |
| Exempted from this evaluation are addresses which begin by "mmc:" for an |
| optical drive on Linux, BSDs, Solaris, or by "stdio:/dev/" for which the |
| user takes full and dangerous responsibility. |
| Special result_iso path *xorriso-dd-target-plug-test* determines on |
| systems with Linux kernel the target USB stick by a dialog around |
| plugging it in. xorriso will be run under sudo, if xorriso-dd-target |
| agrees and the user confirms by input "yes". |
| |
| At least the parent directory of argument *mount_template* must |
| already exist or has to be given by a plain name without "/" so that it |
| can be created in the current directory. (I.e. without even "./".) |
| All arguments must be single words without using quotation marks. None |
| of the isoN must be equal to another isoM. |
| |
| This script creates and finally removes the following temporary tree |
| and files which must not yet exist in the current working directory: |
| ./merged_dists , ./merged_md5sum.txt , ./merged_REAMDE.txt ./temp_file |
| Further it creates and finally removes directories mount_template* if |
| they are needed and do not exist when the script starts. If the parent |
| directory in the mount_template path does not exist and its path |
| contains no "/" then it gets created and finally removed. The script |
| depends on the following programs: |
| awk, basename, cat, chmod, cp, date, dirname, expr, fgrep, grep, gunzip, |
| gzip, head, ls, md5sum, mkdir, mount, mv, rm, rmdir, sed, sh, sha256sum, |
| sort, stat, sudo, umount, uniq, xorriso |
| With device writing involving helper script xorriso-dd-target: |
| dd, Linux kernel, lsblk, sleep, tr, uname, wc, whoami, xorriso-dd-target |
| |
| Recommended are: sha1sum, sha512sum |
| |
| |
| File: merge_debian_isos.info, Node: Options, Next: Examples, Prev: Overview, Up: Top |
| |
| 2 Options |
| ********* |
| |
| merge_debian_isos has no command line options besides the input words |
| described above, but it reacts on some environment variables. |
| |
| If less than 4 arguments are given, the script will print its help |
| text to standard error and exit with non-zero value, indicating failure. |
| |
| |
| File: merge_debian_isos.info, Node: Examples, Next: Files, Prev: Options, Up: Top |
| |
| 3 Examples |
| ********** |
| |
| * Menu: |
| |
| * ExPlain:: Merge DVD images 1 to 5 |
| * ExXorriso:: Use GNU xorriso instead of installed xorriso |
| * ExOptical:: Write result directly to an optical drive |
| * ExDdTarget:: Write result directly and safely to USB stick (Linux only) |
| * ExStdio:: Write result directly and unsafely to USB stick |
| |
| |
| File: merge_debian_isos.info, Node: ExPlain, Next: ExXorriso, Prev: Options, Up: Examples |
| |
| 3.1 Merge DVD images 1 to 5 |
| =========================== |
| |
| The resulting image will be named "merged.iso". |
| Directory ./merge_mount/ will be created if not yet existing. |
| |
| merge_debian_isos merged.iso merge_mount/iso \ |
| debian-11.2.0-amd64-DVD-[12345].iso |
| |
| |
| |
| Expect to see some harmless warnings like |
| |
| xorriso : WARNING : -volid text does not comply to ISO 9660 / ECMA |
| 119 rules |
| |
| libisofs: WARNING : Cannot add /debian to Joliet tree. Symlinks can |
| only be added to a Rock Ridge tree. |
| |
| libisofs: WARNING : Image size exceeds 1024 cylinders. Cannot align |
| partition. |
| |
| |
| File: merge_debian_isos.info, Node: ExXorriso, Next: ExOptical, Prev: ExPlain, Up: Examples |
| |
| 3.2 Use GNU xorriso instead of installed xorriso |
| ================================================ |
| |
| merge_debian_isos will refuse to work if the installed version of |
| xorriso is older than 1.4.2. In this case consider to download and |
| compile the GNU xorriso tarball from |
| https://www.gnu.org/software/xorriso/#download |
| You may use it without installing it after compilation and thus without |
| disturbing your system's package management. Assumed that you unpacked |
| the xorriso-1.5.4 tarball in your $HOME directory and have successfully |
| compiled it, do: |
| |
| export XORRISO="$HOME"/xorriso-1.5.4/xorriso/xorriso |
| |
| merge_debian_isos merged.iso merge_mount/iso \ |
| debian-11.2.0-amd64-DVD-[12345].iso |
| |
| |
| File: merge_debian_isos.info, Node: ExOptical, Next: ExDdTarget, Prev: ExXorriso, Up: Examples |
| |
| 3.3 Write result directly to an optical drive |
| ============================================= |
| |
| xorriso is able to burn optical media on GNU/Linux (/dev/sr*), Solaris |
| (/dev/rdsk/*) , FreeBSD (/dev/cd*) , NetBSD (/dev/rcd*), and OpenBSD |
| (/dev/rcd*). Get a list of available optical drive devices by: |
| |
| xorriso -devices |
| |
| It might be that you need superuser powers for this and then have to |
| enable access to the device file for the user who runs |
| merge_debian_isos. |
| |
| In order to directly write the merged ISO image to an optical medium, |
| use the desired device file path with prefix "mmc:": |
| |
| merge_debian_isos mmc:/dev/sr0 merge_mount/iso \ |
| debian-11.2.0-amd64-DVD-[12345].iso |
| |
| |
| File: merge_debian_isos.info, Node: ExDdTarget, Next: ExStdio, Prev: ExOptical, Up: Examples |
| |
| 3.4 Write result directly and safely to USB stick (Linux only) |
| ============================================================== |
| |
| The Linux-specific script *xorriso-dd-target* evaluates device files |
| whether they and their content look unimportant enough for being |
| overwritten by an image file. |
| This mainly means that the storage device is attached to USB and |
| contains no filesystems which are not of type FAT or ISO 9660. |
| You may get xorriso-dd-target by: |
| |
| wget \ |
| https://dev.lovelyhq.com/libburnia/libisoburn/raw/master/xorriso-dd-target/xorriso-dd-target |
| chmod u+x xorriso-dd-target |
| |
| Consider to also download xorriso-dd-target.sig and to verify the |
| script by |
| |
| gpg -verify xorriso-dd-target.sig xorriso-dd-target |
| |
| Announce the storage location of the downloaded xorriso-dd-target: |
| |
| export XORRISO_DD_TARGET_PATH="$(pwd)" |
| |
| The prepared use case in merge_debian_isos uses the xorriso-dd-target |
| option -plug_test under *sudo*, which asks the user for first having the |
| desired USB stick unplugged so that the unwanted devices can get |
| registered. Then it asks the user to plug in the USB stick, so that it |
| gets recognized as desired target. |
| xorriso-dd-target evaluates the content and decides whether it looks |
| disposable enough. If so, then it allows merge_debian_isos to write its |
| result to the device. |
| |
| merge_debian_isos xorriso-dd-target-plug-test merge_mount/iso \ |
| debian-11.2.0-amd64-DVD-[12345].iso |
| |
| |
| File: merge_debian_isos.info, Node: ExStdio, Next: Files, Prev: ExDdTarget, Up: Examples |
| |
| 3.5 Write result directly and unsafely to USB stick |
| =================================================== |
| |
| On operating systems other than GNU/Linux or with storage devices not |
| acceptable to xorriso-dd-target it is possible to remove all safety |
| precautions beyond those of xorriso, which can be overcome by "blanking" |
| the device. |
| So after due evaluation of the device situation and on your very own |
| risk you may use the device path prefix "stdio:", possibly with |
| superuser powers: |
| |
| xorriso -outdev stdio:/dev/sdd -blank as_needed |
| |
| merge_debian_isos stdio:/dev/sdd merge_mount/iso \ |
| debian-11.2.0-amd64-DVD-[12345].iso |
| |
| For details about "stdio:" and pseudo-blanking non-optical devices |
| read man xorriso. |
| The xorriso run in merge_debian_isos ignores locally defined xorriso |
| startup files (by command -no_rc). |
| |
| |
| File: merge_debian_isos.info, Node: Files, Next: Environ, Prev: Examples, Up: Top |
| |
| 4 Files |
| ******* |
| |
| For now, no files are defined for configuration. |
| |
| |
| File: merge_debian_isos.info, Node: Environ, Next: Seealso, Prev: Files, Up: Top |
| |
| 5 Environ |
| ********* |
| |
| The following environment variables influence the program behavior: |
| Exported non-empty variable MERGE_DATE enforces a particular date string |
| in the text which gets prepended to /README.txt . |
| Exported non-empty variable MERGE_FOR_DIST enforces the use of a |
| particular directory in /dists of iso1. Normally only one such |
| directory is found and thus no need to set MERGE_FOR_DIST. |
| Exported non-empty variable MERGE_KEEP_ISO prevents the removal of |
| result_iso after xorriso indicated failure of production. |
| Exported non-empty variable XORRISO gives the path to a xorriso binary, |
| which will be used instead of the system-wide installed xorriso binary. |
| This may be needed if installed xorriso is older than 1.4.2. |
| If XORRISO is set to "dummy" then no new ISO will emerge. |
| Exported non-empty variable XORRISO_DD_TARGET_PATH names the directory |
| where to find xorriso-dd-target, which evaluates the suitability of |
| result_iso devices or does the plug-test dialog. |
| |
| |
| File: merge_debian_isos.info, Node: Seealso, Next: Bugreport, Prev: Environ, Up: Top |
| |
| 6 See also |
| ********** |
| |
| xorriso(1), xorriso-dd-target(1) |
| |
| |
| File: merge_debian_isos.info, Node: Bugreport, Next: Legal, Prev: Seealso, Up: Top |
| |
| 7 Reporting bugs |
| **************** |
| |
| To report bugs, request help, or suggest enhancements for |
| 'merge_debian_isos', please send electronic mail to the public list |
| <bug-xorriso@gnu.org>. If more privacy is desired, mail to |
| <scdbackup@gmx.net>. |
| |
| Please describe what you expect the program to do, the program |
| arguments which you used, the messages of 'merge_debian_isos', and the |
| undesirable outcome of your program run. |
| |
| Expect to get asked more questions before solutions can be proposed. |
| |
| |
| File: merge_debian_isos.info, Node: Legal, Next: CommandIdx, Prev: Bugreport, Up: Top |
| |
| 8 Author, Copyright, Credits |
| **************************** |
| |
| 8.1 Author |
| ========== |
| |
| Thomas Schmitt <scdbackup@gmx.net> |
| for libburnia-project.org |
| |
| 8.2 Copyright |
| ============= |
| |
| Copyright (c) 2022 Thomas Schmitt |
| Permission is granted to distribute this text freely. It shall only be |
| modified in sync with the technical properties of merge_debian_isos. If |
| you make use of the license to derive modified versions of |
| merge_debian_isos then you are entitled to modify this text under that |
| same license. |
| |
| 8.3 Credits |
| =========== |
| |
| 'merge_debian_isos' was originally developed with advise and testing by |
| Zhang Boyang in the course of Debian bug #1011343. Steve McIntyre |
| provided information about various file aspects of debian-cd ISO images. |
| |
| |
| File: merge_debian_isos.info, Node: CommandIdx, Next: ConceptIdx, Prev: Legal, Up: Top |
| |
| 9 Alphabetic Options List |
| ************************* |
| |
| |
| File: merge_debian_isos.info, Node: ConceptIdx, Next: Top, Prev: CommandIdx, Up: Top |
| |
| 10 Alphabetic List of Concepts and Objects |
| ****************************************** |
| |
| [index] |
| * Menu: |
| |
| * Bugs, reporting: Bugreport. (line 6) |
| * Examples: Examples. (line 6) |
| * merge_debian_isos, options: Options. (line 6) |
| * Problems, reporting: Bugreport. (line 6) |
| |
| |
| |
| Tag Table: |
| Node: Top417 |
| Node: Overview1014 |
| Node: Options3381 |
| Node: Examples3771 |
| Node: ExPlain4196 |
| Node: ExXorriso4870 |
| Node: ExOptical5664 |
| Node: ExDdTarget6448 |
| Node: ExStdio7971 |
| Node: Files8883 |
| Node: Environ9039 |
| Node: Seealso10104 |
| Node: Bugreport10253 |
| Node: Legal10838 |
| Node: CommandIdx11666 |
| Node: ConceptIdx11813 |
| |
| End Tag Table |