Hi,

i uploaded the first version of my merger script as
  
https://dev.lovelyhq.com/libburnia/libisoburn/raw/branch/master/test/merge_2_debian_isos

Please download and give x-permission. The need for sudo can be avoided
by already mounting the two ISOs at the chosen mount points before running
the script.
Review and test reports are appreciated.

As motivation for tests by Debian installation experts:

If this works, then Debian could replace the DLBD sized ISOs by the
BD sized ISOs and instructions how to merge them to DLBD ISOs or a
QLBD/All-in-one ISO. (In that case the script should move into the hands
of debian-cd, i guess.)

=======================================================================
$ ./merge_2_debian_isos
usage: merge_2_debian_isos \
       boot_iso boot_mount add_iso add_mount result_iso [for_dist]

Mounts by sudo the boot_iso at directory boot_mount and add_iso at
add_mount, if not already mounted that way. Then both Debian pools
and package lists get merged and a new ISO 9660 image result_iso
is produced, which must not yet exist.
If boot_iso is bootable then the new image will be bootable by the
same means.
This script creates 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
The optional sixth argument for_dist should only be given if
this script refuses to work and proposes to give this argument.
Exported non-empty variable MERGE_DATE enforces a particular
date string in the text which gets prepended to /README.txt .
Exported non-empty variable XORRISO overrides command xorriso,
which may be needed if installed xorriso is older than 1.4.2.
Example using GNU xorriso-1.5.4 instead of /usr/bin/xorriso:
  export XORRISO=$HOME/xorriso-1.5.4/xorriso/xorriso
  merge_2_debian_isos debian-11.2.0-amd64-DVD-1.iso /mnt/iso1 \
          debian-11.2.0-amd64-DVD-2.iso /mnt/iso2 merged.iso
=======================================================================

The /README.txt of the result ISO gets a prefix text:
=======================================================================
Result of a run of merge_2_debian_isos at 20220523-20:09
Package pools and Packages lists were merged.
The other files stem from the first input ISO.

Input ISO: debian-11.2.0-amd64-DVD-1.iso
      Debian GNU/Linux 11.2.0 "Bullseye" - Official amd64 DVD Binary-1
                               20211218-11:13

Input ISO: debian-11.2.0-amd64-DVD-2.iso
      Debian GNU/Linux 11.2.0 "Bullseye" - Official amd64 DVD Binary-2
                               20211218-11:13

 ------------------------------------------------------------------------------
                 [... text of boot_iso's README.txt ...]

=======================================================================

The result of merging debian-11.2.0-amd64-DVD-[12].iso boots with
  qemu-system-x86_64 -enable-kvm -m 512 -hda merged.iso
to a boot loader menu with Debian logo.

I did not go further with installation yet, mainly because i still lack
ideas and experience how i would verify that the ISO's main repo knows
6788 *.deb files instead of 4753 in DVD-1 and 2035 in DVD-2.

To ease usage and to avoid quadratic behavior (actually triangular), i plan
to beef up the script so that it can merge more than 2 ISOs in one run.
E.g. for downloading all 19 11.3.0 amd64 DVDs and merging them.
(19 /dev/loop* should be no problem, i hope.)


Zhang Boyang wrote:
> I came up with a idea. Maybe you can use 'debian-cd' to create a DLBD set,
> say disc A1 and A2, then create another ALL-IN-ONE set, say disc B. Then
> compare if A1+A2==B. There might be small differences, like the package
> order in Packages.gz, but I think if the overall format is OK, then it will
> be OK.

I fear that several of the tasks in debian-cd are beyond my talents.
(I am about the third worst sysadmin which i know of.)

In the end it is about whether the merged ISO works fully or not.


Have a nice day :)

Thomas

Reply via email to