"Fossies" - the Fresh Open Source Software Archive

Member "rear-2.7/doc/rear-release-notes.txt" (14 Jul 2022, 202550 Bytes) of package /linux/privat/rear-2.7.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the latest Fossies "Diffs" side-by-side code changes report for "rear-release-notes.txt": 2.6_vs_2.7.

    1 Release Notes for Relax-and-Recover version 2.7
    2 
    3 This document contains the release notes for the open source project
    4 Relax-and-Recover.
    5 
    6 Relax-and-Recover website: http://relax-and-recover.org/
    7 
    8 GitHub project: https://github.com/rear/
    9 
   10 This document is distributed with the following license: "Creative Commons
   11 Attribution-NoDerivs 3.0 Unported (CC BY-ND 3.0)". To read the license deed,
   12 go to http://creativecommons.org/licenses/by-nd/3.0/
   13 
   14 Overview
   15 
   16 Relax-and-Recover (abbreviated ReaR) is a GNU/Linux system administrator tool
   17 and framework used to create bootable disaster recovery images which makes
   18 bare metal disaster recovery (including backup restore) easier. System
   19 administrators use the Relax-and-Recover framework to set up a disaster
   20 recovery procedure as part of their disaster recovery policy (which
   21 complements their existing backup policy). Relax-and-Recover does not
   22 implement backup but complements it because backup (and restore) happens via
   23 external backup software that is only called by Relax-and-Recover.
   24 
   25 Product Features
   26 
   27 The following features are supported by the most recent releases of
   28 Relax-and-Recover. Anything labeled as (New) was added as the most recent
   29 release. New functionality for previous releases can be seen in the next
   30 chapter that details each release.
   31 
   32 The most recent release of Relax-and-Recover is supported on most GNU/Linux
   33 based systems with kernel 2.6 or higher. It provides the following
   34 functionality:
   35 
   36 -   Hot maintenance capability. A recovery/rescue image can be made online
   37     while the system is running
   38 
   39 -   Command line interface. Relax-and-Recover does not require a graphical
   40     interface to run, neither in creation mode, nor in recovery mode (console
   41     is enough)
   42 
   43 -   Support included for most common file systems, such as ext2, ext3, and
   44     ext4. Other filesystems like reiserfs, jfs, xfs, and btrfs are also
   45     implemented, but are less tested. (Feedback is appreciated)
   46 
   47 -   Selected Hardware RAID and (eg. HP SmartArray) and mirroring solutions
   48     (eg. DRBD) are supported
   49 
   50 -   NVME and mmcblk disks are supported
   51 
   52 -   LVM root volumes are supported
   53 
   54 -   Multipath support for SAN storage
   55 
   56 -   UEFI support (including UEFI USB booting)
   57 
   58 -   Integrates with internal backup programs such as:
   59 
   60     -   GNU tar (BACKUP=NETFS, BACKUP_PROG=tar)
   61     -   GNU tar (BACKUP=NETFS, BACKUP_PROG=tar, BACKUP_TYPE=incremental,
   62         FULLBACKUPDAY="Mon") for using incremental backups with a weekly full
   63         backup (old tar archives will not be removed automatically)
   64     -   GNU tar (BACKUP=NETFS, BACKUP_PROG=tar, BACKUP_TYPE=differential,
   65         FULLBACKUPDAY="Mon") for using differential backups with a weekly full
   66         backup (old tar archives will not be removed automatically)
   67     -   GNU tar with openssl encryption (BACKUP=NETFS, BACKUP_PROG=tar,
   68         BACKUP_PROG_CRYPT_ENABLED=1)
   69     -   rsync on local devices (BACKUP=NETFS, BACKUP_PROG=rsync), such USB and
   70         local disks
   71     -   rsync over the network (BACKUP=RSYNC, BACKUP_PROG=rsync)
   72     -   Multiple backup methods. See the documentation about Using Multiple
   73         Backups for Relax-and-Recover
   74         https://github.com/rear/rear/blob/master/doc/user-guide/11-multiple-backups.adoc
   75     -   Any partition (e.g. a Windows partition) via BACKUP=BLOCKCLONE. See
   76         the documention about BLOCKCLONE
   77         https://github.com/rear/rear/blob/master/doc/user-guide/12-BLOCKCLONE.adoc
   78     -   BACKUP=ZYPPER is for SUSE systems only (Experimental)
   79     -   BACKUP=YUM is for RedHat architectures ony (Experimental)
   80 
   81 -   Integrates with external backup solutions such as:
   82 
   83     -   Tivoli Storage Manager (BACKUP=TSM)
   84     -   Data Protector (BACKUP=DP)
   85     -   Symantec NetBackup (BACKUP=NBU)
   86     -   Galaxy 5, 6, and 7 (BACKUP=GALAXY)
   87     -   Galaxy 10 [Commvault Simpana] (BACKUP=GALAXY10)
   88     -   Bacula (BACKUP=BACULA)
   89     -   Bareos (BACKUP=BAREOS) (A fork of Bacula)
   90     -   Rsync Backup Made Easy (BACKUP=RBME)
   91     -   Duplicity/Duply (BACKUP=DUPLICITY)
   92     -   EMC Networker, also known as Legato (BACKUP=NSR)
   93     -   EMC Avamar (BACKUP=AVA)
   94     -   SEP Sesam (BACKUP=SESAM)
   95     -   FDR/Upstream (BACKUP=FDRUPSTREAM)
   96     -   Novastor NovaBACKUP DC (BACKUP=NBKDC)
   97     -   Borg Backup (BACKUP=BORG)
   98     -   Rubrik Cloud Data Management (BACKUP=CDM)
   99 
  100 -   Integrates with Disaster Recovery Linux Manager (DRLM) http://drlm.org
  101 
  102 -   Udev support (except for some really ancient udev versions) which is the
  103     base for many important features:
  104 
  105     -   kernel drivers for network cards and storage adapters are loaded via
  106         udev
  107     -   deal with network persistent names in udev rules
  108     -   firmware loading
  109     -   persistent storage device names (though Relax-and-Recover does nothing
  110         with this)
  111 
  112 -   Systemd support for the more recent Linux distributions
  113 
  114 -   System migration and reconfiguration ('MIGRATION_MODE')
  115 
  116     -   facilitate recovery on hardware, that is not the same as the original
  117         system
  118     -   network and storage drivers are adjusted
  119     -   map hard disks if they do not match (e.g. sda -> sdb)
  120     -   remap network MAC addresses
  121     -   use another IP address, or using dhcp via templates or from kernel
  122         command line
  123     -   rebuild the initial ramdisk if needed (for new storage drivers)
  124     -   migration to SAN storage
  125 
  126 -   Support backup software: Bacula, both locally attached tapes (with
  127     bextract) and network-based backups. Also, in combination with OBDR tapes.
  128 
  129 -   Create OBDR tapes with method mkbackup and put the backup onto the tape to
  130     have a single-tape bootable recovery solution (label the OBDR tape with
  131     the method format to avoid accidental overwrites with OBDR)
  132 
  133 -   Create bootable disk (eSATA, USB ...) medium with the backup included:
  134 
  135     BACKUP_URL=usb:///dev/device
  136 
  137     Together with OUTPUT=USB we have a complete solution on hard disks
  138     (booting of it and restoring data).
  139 
  140 -   DHCP client support (IPv4 and IPv6). Dhcp client activation can be forced
  141     via the variable USE_DHCLIENT=yes (define in /etc/rear/local.conf). It is
  142     also possible to force DHCP at boot time with kernel option dhcp
  143 
  144 -   USE_STATIC_NETWORKING=y, will cause statically configured network settings
  145     to be applied even when USE_DHCLIENT is in effect
  146 
  147 -   Save layout and compare layouts for automation of making Relax-and-Recover
  148     snapshots (checklayout option)
  149 
  150 -   External USB booting uses extlinux (instead of syslinux), and therefore,
  151     the USB disk must first be formatted with an ext2, ext3, ext4 or btrfs
  152     based file system
  153 
  154 -   VLAN tagging, teaming and bridge support
  155 
  156 -   Add timestamp of ReaR run with rc code to the syslog or messages file;
  157     sending mail report is also possible
  158 
  159 -   The possibility to backup any partition (in particular a Windows
  160     partition) via the BACKUP type BLOCKCLONE
  161 
  162 -   Unattended ReaR recovery has been improved
  163 
  164 -   Improved security model related to SSH keys
  165 
  166     -   SSH_FILES='avoid_sensitive_files' (see details in
  167         /usr/share/rear/conf/default.conf)
  168     -   SSH_UNPROTECTED_PRIVATE_KEYS='no' (see details in
  169         /usr/share/rear/conf/default.conf)
  170 
  171 NOTE: Features marked Experimental are prone to change with future releases.
  172 
  173 Relax-and-Recover Releases
  174 
  175 The first release of Relax-and-Recover, version 1.0, was posted to the web in
  176 July 2006. For each release, this chapter lists the new features and defect
  177 fixes. All releases are cumulative. Unless otherwise noted all releases of
  178 Relax-and-Recover are intended to work backward compatible with previous
  179 versions. In addition to the GPL disclaimer of warranty and liability there is
  180 no guarantee that things work backward compatible. In general the older the
  181 system is the less likely it is that a newer Relax-and-Recover version works.
  182 For each Relax-and-Recover version upgrade and for each change of a software
  183 that is used by Relax-and-Recover and for each change of your basic system you
  184 must re-validate that your disaster recovery procedure still works for you.
  185 
  186 The references pointing to fix #nr or issue #nr refer to our GitHub issues
  187 tracker https://github.com/rear/rear/issues
  188 
  189 Version 2.7 (July 2022)
  190 
  191 Abstract
  192 
  193 New features, bigger enhancements, and possibly backward incompatible changes:
  194 
  195 -   ReaR's default TMPDIR is now /var/tmp (it was /tmp before) i.e. ReaR's
  196     default working area is now /var/tmp/rear.XXXXX because ReaR needs lots of
  197     space (from 300MB up to more than 1GB) to build the ReaR rescue/recovery
  198     system e.g. as ISO image and even much more space to also store the backup
  199     archive e.g. when the backup should be included in the ISO image. The
  200     system's default temporary directory /tmp is no longer suited as default
  201     temporary directory for ReaR because nowadays /tmp is often a "tmpfs" that
  202     is in RAM so /tmp has RAM/swap limitations and file-hierarchy(7)
  203     recommends to use /var/tmp for cases as ReaR. If the user sets TMPDIR
  204     explicitly, it still takes precedence.
  205 
  206 -   Stop ReaR from possibly overwriting its own disk and backup drives for
  207     OUTPUT=USB and OUTPUT=RAWDISK via new WRITE_PROTECTED_... config variables
  208     (see /usr/share/rear/conf/default.conf) where UUIDs or filesystem labels
  209     can be specified so that disks that contain such UUIDs or filesystem
  210     labels will be 'write protected' during "rear recover".
  211 
  212 -   Added initial LUKS2 support.
  213 
  214 -   Overhauled RAID code with changed RAID related entries in
  215     /var/lib/rear/layout/disklayout.conf so users who use RAID and a selfmade
  216     /etc/rear/disklayout.conf must adapt their RAID related entries
  217 
  218 -   Initial preliminary basic support to automatically resize an active last
  219     partition on RAID0 and RAID1 disks to be able to automatically resize
  220     RAID0 and RAID1 arrays
  221 
  222 -   Automatically shrink LVs if needed during "rear recover". This enables to
  223     run "rear recover" with automated LVM LVs shrinking as needed on a bit
  224     smaller replacement disk (e.g. when a nominally same sized replacement
  225     disk is actually a bit smaller than the original disk). This automated LVs
  226     shrinking is not intended when disk(s) are substantially smaller. To
  227     migrate onto a substantially smaller replacement disk the user must in
  228     advance manually adapt his disklayout.conf file before he runs "rear
  229     recover".
  230 
  231 -   Support to wipe disks before recreating partitions/volumes/filesystems/...
  232     (see the new DISKS_TO_BE_WIPED in /usr/share/rear/conf/default.conf). This
  233     is currently new and experimental functionality so that currently by
  234     default via DISKS_TO_BE_WIPED='false' no disk is wiped to avoid possible
  235     regressions until this new feature was more tested by interested users via
  236     an explicit DISKS_TO_BE_WIPED setting.
  237 
  238 -   Error out when files greater or equal ISO_FILE_SIZE_LIMIT should be
  239     included in the ISO: See the reasoning in
  240     /usr/share/rear/conf/default.conf why the default ISO_FILE_SIZE_LIMIT is
  241     2GiB and why we error out when files >= ISO_FILE_SIZE_LIMIT should be
  242     included in the ISO.
  243 
  244 -   Rsync OUTPUT_URLs are now properly supported with BACKUP=RSYNC.
  245     Previously the output went to the location specified by BACKUP_URL
  246     and OUTPUT_URL was ignored. One exception was OUTPUT=PXE, where the output
  247     was uploaded to OUTPUT_URL in addition to BACKUP_URL, but RSYNC_PREFIX was
  248     not respected and the interpretation of the URL was different: A URL of
  249     the form rsync://[USER@]HOST[:PORT]/PATH was interpreted as using the
  250     rsync protocol, while in all other cases such URL would be interpreted
  251     as using rsync over ssh. This special handling is now removed:
  252     An rsync OUTPUT_URL with OUTPUT=PXE now creates the RSYNC_PREFIX directory
  253     at the destination and the URL is interpreted as in all other cases.
  254 
  255 -   RAWDISK: Add local rescue partition installation capability: Introduce a
  256     configuration variable 'RAWDISK_INSTALL_GPT_PARTITION_NAME', which is
  257     unset by default. When set, the rescue system will be installed to local
  258     disk partitions having the corresponding name.
  259 
  260 -   Allow setting a PBA-specific firmware configuration via the new
  261     OPAL_PBA_FIRMWARE_FILES configuration variable.
  262 
  263 -   Support OPAL 2 self-encrypting NVMe disk drives.
  264 
  265 -   OPALPBA: Provide a permanent unlocking mode as a workaround when the
  266     firmware did not initialize properly during a 'simple' reboot so the only
  267     reliable way to boot was a power cycle after Opal disks were unlocked. To
  268     reboot with unlocked disks there is now a new unlocking mode "permanent"
  269     via OPAL_PBA_UNLOCK_MODE (see default.conf). Reactivating locking is then
  270     the responsibility of the user. Additionally enhanced security by
  271     disabling shell access via keyboard interrupt and switching to a password
  272     hash for OPAL_PBA_DEBUG_PASSWORD.
  273 
  274 -   POWER architecture (ppc64) support for BACKUP=DP: Other platforms
  275     supporting the Data Protector Disk Agent, but not the Cell Console (GUI)
  276     that is only available on i386, x86_64 and ia64 are now supported with
  277     ReaR. This includes in particular ppc64. Checks unavailable on clients
  278     without the Data Protector Cell Console (GUI) are skipped. In such cases
  279     backup restore can be done using Data Protector GUI only.
  280 
  281 -   NSR enhancement for point-in-time recovery with EMC Networker client: A
  282     new variable NSR_CLIENT_REQUESTRESTORE for the BACKUP=NSR workflow has
  283     been introduced to deal with situations in which the NSR client is
  284     allowed/granted to perform its recovery action "on its own" but does not
  285     have full control of the EMC networker service/environment, for details
  286     see its default.conf section.
  287 
  288 -   BACKUP=NBKDC: Enhanced ReaR backup and restore to also work with NovaStor
  289     DataCenter 8.0 and higher plus fixed wording "NovaBACKUP DC" -> "NovaStor
  290     DC"
  291 
  292 -   Support for systemd and parallel restore with Data Protector BACKUP=DP:
  293     Support starting Data Protector daemon 'omni.socket' via systemd in the
  294     recovery system. Restore performance has been increased by doing parallel
  295     restores now.
  296 
  297 -   Now "rear format" has in addition to the '-efi' switch a '-bios' switch.
  298     If none is given (i.e. by default) it will now do hybrid formatting with a
  299     BIOS boot partition (on GPT) and an EFI system partition. Accordingly the
  300     USB_DEVICE_PARTED_LABEL default is no longer "msdos" (see the updated
  301     description in /usr/share/rear/conf/default.conf). This is a starting point
  302     for implementing OUTPUT=USB support for UEFI and BIOS dual boot from the
  303     same medium. See https://github.com/rear/rear/issues/2698
  304     and https://github.com/rear/rear/issues/2818
  305     and https://github.com/rear/rear/pull/2829
  306 
  307 -   Overhauled serial console support code. A serial console of the ReaR
  308     recovery system can now be specified separately for the kernel and the
  309     recovery system bootloader via the generic config variables
  310     USE_SERIAL_CONSOLE and SERIAL_CONSOLE_DEVICES and specific config
  311     variables SERIAL_CONSOLE_DEVICES_KERNEL SERIAL_CONSOLE_DEVICE_SYSLINUX
  312     SERIAL_CONSOLE_DEVICE_GRUB (see /usr/share/rear/conf/default.conf for
  313     details)
  314 
  315 -   Support for HTTP sources when using PXE: There is a new config variable
  316     PXE_HTTP_URL to specify a HTTP download source for PXE. See the
  317     PXE_HTTP_URL description in /usr/share/rear/conf/default.conf
  318 
  319 -   In /usr/share/rear/conf/default.conf changed ISO_VOLID from "RELAXRECOVER"
  320     to "REAR-ISO" so the first ISO has the label "REAR-ISO" (8 characters) and
  321     subsequent ISOs get the labels "REAR-ISO_01" "REAR-ISO_02" ... respectively
  322     that have 11 characters (the maximum length for FAT volume names) so
  323     things work now by default when the ISO image is used to (manually) create
  324     a FAT bootable USB stick Accordingly 'RELAXRECOVER' in variable names was
  325     replaced. In particular the user config variable for automated input
  326     USER_INPUT_RELAXRECOVER_SYMLINK_TARGET was renamed as
  327     USER_INPUT_ISO_SYMLINK_TARGET so only that new name will work.
  328 
  329 Details (mostly in chronological order - newest topmost):
  330 
  331 -   Refactor rsync URL support, fixes rsync OUTPUT_URL:
  332     The code to parse rsync:// URLs was BACKUP_URL specific.
  333     If one specified BACKUP=RSYNC and an OUTPUT_URL different from BACKUP_URL,
  334     the OUTPUT_URL was ignored and the output files went to BACKUP_URL.
  335     Fix by introducing generic functions for rsync URL parsing and
  336     use them for both BACKUP_URL and OUTPUT_URL, as appropriate.
  337     Replace all uses of global RSYNC_* variables derived
  338     from BACKUP_URL by those functions.
  339     There also was inconsistent special handling for OUTPUT=PXE which is now removed:
  340     An rsync OUTPUT_URL with OUTPUT=PXE now creates the RSYNC_PREFIX directory
  341     at the destination and the URL is interpreted as in all other cases.
  342     See https://github.com/rear/rear/pull/2831
  343     and https://github.com/rear/rear/issues/2781
  344 
  345 -   Support creation of EFI system partition on systems
  346     with older 'parted' that do not support the 'esp' keyword:
  347     In format/USB/default/300_format_usb_disk.sh try
  348     'sgdisk ... --typecode="partition_number:EF00"' as fallback
  349     when 'parted ... set partition_number esp on' failed
  350     see https://github.com/rear/rear/pull/2830
  351 
  352 -   Set USB_DEVICE_PARTED_LABEL to match format-workflow.sh:
  353     In format/USB/default/300_format_usb_disk.sh it is set
  354     depending on the format workflow option -b/--bios or -e/--efi
  355     and in in prep/USB/Linux-i386/340_find_mbr_bin.sh try to
  356     autodetect what the USB disk partition type is and
  357     use a specified USB_DEVICE_PARTED_LABEL if autodetection fails
  358     see https://github.com/rear/rear/pull/2829
  359 
  360 -   In usr/sbin/rear enhanced the check for other simultaneously running 'rear'
  361     to let it find running 'rear' instances independent of how it was called by the user
  362     in particular also when 'rear' is run from a GitHub checkout/clone
  363     cf. https://github.com/rear/rear/issues/2826
  364 
  365 -   In usr/share/rear/lib/format-workflow.sh do actually recognise -b/--bios
  366     options, see https://github.com/rear/rear/pull/2828
  367 
  368 -   In layout/prepare/GNU/Linux/110_include_lvm_code.sh use a fail-safe
  369     'yes' pipe for "lvm lvcreate" to pipe as many 'y' as asked for into
  370     "lvm lvcreate" see https://github.com/rear/rear/issues/513
  371     and https://github.com/rear/rear/issues/2820
  372 
  373 -   Avoid creating a /bin/vim symlink to vi: The symlink is more confusing
  374     than helpful: If one has both vi and vim, and they are different
  375     (vi usually has less features), one expects to get the more featureful
  376     version by executing "vim", but one gets "vi". More importantly, in
  377     recent Fedora and RHEL, "vi" is a shell script that executes "vim"
  378     if found, so linking "vim" to "vi" leads to an infinite loop.
  379     See https://github.com/rear/rear/pull/2822
  380 
  381 -   RPM spec: update build requirement for Fedora to unblock Packit build and
  382     run make validate after build, see https://github.com/rear/rear/pull/2816
  383 
  384 -   In finalize/Linux-i386/660_install_grub2.sh explain that it is also used
  385     as fallback to install the nowadays most often used bootloader GRUB2
  386     unless the BOOTLOADER variable tells to install another bootloader (other
  387     bootloader install scripts check the BOOTLOADER variable),
  388     cf. https://github.com/rear/rear/issues/2817#issuecomment-1148488339
  389 
  390 -   Replace 'RELAXRECOVER' in variable names: In lib/global-functions.sh in
  391     the function mount_url() renamed the user config variable for automated
  392     input USER_INPUT_RELAXRECOVER_SYMLINK_TARGET as
  393     USER_INPUT_ISO_SYMLINK_TARGET because the old name contained a user config
  394     value: "RELAXRECOVER" was an old default value of ISO_VOLID, see
  395     https://github.com/rear/rear/pull/2457 and
  396     https://github.com/rear/rear/pull/2813#discussion_r885576867
  397 
  398 -   In default.conf properly describe PRE_BACKUP_SCRIPT and POST_BACKUP_SCRIPT
  399     to match what the implementation does, see
  400     https://github.com/rear/rear/pull/2735#issuecomment-1145006984 and for
  401     special cases see
  402     https://github.com/rear/rear/pull/2735#issuecomment-1148620157
  403 
  404 -   Add PRE_RECOVERY_COMMANDS and POST_RECOVERY_COMMANDS as alternative to
  405     PRE_RECOVERY_SCRIPT and POST_RECOVERY_SCRIPT see the description in
  406     default.conf how to use them and how they work. See
  407     https://github.com/rear/rear/pull/2811 and see also
  408     https://github.com/rear/rear/pull/2735 therein in particular
  409     https://github.com/rear/rear/pull/2735#issuecomment-1134686196
  410     Additionally use LogPrint to show the user the executed commands, see
  411     https://github.com/rear/rear/pull/2789
  412 
  413 -   In default.conf describe the new user config variables USB_BOOT_PART_SIZE
  414     and USB_DEVICE_BOOT_LABEL see https://github.com/rear/rear/pull/2660
  415 
  416 -   Exclude dev/watchdog* from the ReaR recovery system: In default.conf add
  417     dev/watchdog* to COPY_AS_IS_EXCLUDE because watchdog functionality is not
  418     wanted in the recovery system because we do not want any automated reboot
  419     functionality while disaster recovery happens via "rear recover", see
  420     https://github.com/rear/rear/pull/2808 Furthermore having a copy of
  421     dev/watchdog* during "rear mkrescue" in ReaR's build area may even trigger
  422     a system crash that is caused by a buggy TrendMicro ds_am module touching
  423     dev/watchdog in ReaR's build area (/var/tmp/rear.XXX/rootfs), see
  424     https://github.com/rear/rear/issues/2798
  425 
  426 -   In output/default/940_grub2_rescue.sh for GRUB_RESCUE set 'root=/dev/ram0
  427     vga=normal rw' (the same is already done for other boot media) to avoid a
  428     "Kernel panic ... Unable to mount root fs on unknown-block(0,0)" that could
  429     otherwise happen in certain cases, see
  430     https://github.com/rear/rear/pull/2791
  431 
  432 -   In build/GNU/Linux/400_copy_modules.sh always include loaded kernel
  433     modules i.e. also for MODULES=() or MODULES=( 'moduleX' 'moduleY' )
  434     include the currently loaded kernel modules,
  435     cf. https://github.com/rear/rear/issues/2727#issuecomment-994731345
  436 
  437 -   In layout/save/GNU/Linux/200_partition_layout.sh ensure $disk_label is one
  438     of the supported partition tables (i.e. one of 'msdos' 'gpt'
  439     'gpt_sync_mbr' 'dasd') and ensure syntactically correct 'disk' and 'part'
  440     entries in disklayout.conf (each value must exist and each value must be a
  441     single non-blank word), see the last part about "error out directly ... when
  442     things failed" in
  443     https://github.com/rear/rear/issues/2801#issuecomment-1122015129 But do
  444     not error out when there is no partition label type value for a 'disk'
  445     entry in disklayout.conf because "rear recover" works in a special case
  446     without partition label type value when there is only a 'disk' entry but
  447     nothing else for this disk exists in disklayout.conf which can happen when
  448     /dev/sdX is an empty SD card slot without medium, see
  449     https://github.com/rear/rear/issues/2810
  450 
  451 -   In default.conf explain how to use LIBS properly, see
  452     https://github.com/rear/rear/issues/2743
  453 
  454 -   In the function find_syslinux_modules_dir in lib/bootloader-functions.sh
  455     the fallback 'find /usr' to find the SYSLINUX modules directory may take a
  456     very long time on some systems (up to several hours) so tell the user in
  457     debug mode what is going on, see https://github.com/rear/rear/issues/2792
  458     and https://github.com/rear/rear/issues/624
  459 
  460 -   In default.conf tell that MODULES=( 'loaded_modules' 'additional_module' )
  461     is not supported (the generic COPY_AS_IS method can be used to include
  462     additional modules) cf. https://github.com/rear/rear/issues/2727
  463 
  464 -   Use disklayout.conf keyword 'raidarray' instead of 'raid' because we have
  465     a new 'raiddisk' keyword and a keyword must not be a leading substring of
  466     another keyword so we have now 'raidarray' and 'raiddisk', see
  467     https://github.com/rear/rear/issues/2759 and
  468     https://github.com/rear/rear/commit/53757eab1447c712fb7c8e44be9c8b3b3ffd9faa
  469 
  470 -   In layout/save/default/450_check_bootloader_files.sh use /[e]tc/grub.cfg
  471     and /[b]oot/.../grub.cfg with '*' globbing patterns (as in the EFI|GRUB2-EFI
  472     case) to find any of grub.cgf or grub2.cfg in /etc/ or in /boot/ (e.g. in
  473     openSUSE Leap 15.3 there is /boot/grub2/grub.cfg),
  474     cf. https://github.com/rear/rear/pull/2796#issuecomment-1118387393
  475 
  476 -   In default.conf added '[e]tc/crypttab' to FILES_TO_PATCH_PATTERNS,
  477     cf. https://github.com/rear/rear/pull/2795#discussion_r859670066
  478 
  479 -   New FILES_TO_PATCH_PATTERNS in default.conf to verify file hashes at the
  480     end of recover after file restore from backup and show an error when
  481     config files were restored from an outdated backup so the restored files
  482     do not match the recreated system, see
  483     https://github.com/rear/rear/pull/2795 and
  484     https://github.com/rear/rear/issues/2785 and
  485     https://github.com/rear/rear/issues/2787
  486 
  487 -   In backup/RSYNC/default/450_calculate_req_space.sh comment out remote
  488     space check with rsync see https://github.com/rear/rear/issues/2760
  489 
  490 -   In layout/save/default/450_check_bootloader_files.sh and
  491     layout/save/default/450_check_network_files.sh added bash globbing
  492     characters [] around the first letter to ensure that with 'shopt -s
  493     nullglob' files that do not exist will not appear so nonexistent files are
  494     not appended to CHECK_CONFIG_FILES
  495     cf. https://github.com/rear/rear/pull/2796#issuecomment-1117171070
  496 
  497 -   In backup/DUPLICITY/default/500_make_duplicity_backup.sh disable SC2068
  498     cf. https://github.com/rear/rear/issues/1040
  499 
  500 -   In backup/YUM/default/500_make_backup.sh and
  501     backup/NETFS/default/500_make_backup.sh and
  502     prep/NETFS/default/070_set_backup_archive.sh fixed SC2068
  503     cf. https://github.com/rear/rear/issues/1040
  504 
  505 -   In rescue/default/850_save_sysfs_uefi_vars.sh disable SC2045
  506     cf. https://github.com/rear/rear/issues/1040
  507 
  508 -   In layout/save/GNU/Linux/240_swaps_layout.sh and lib/output-functions.sh
  509     fixed SC2045 cf. https://github.com/rear/rear/issues/1040
  510 
  511 -   In lib/_input-output-functions.sh disable SC2218
  512     cf. https://github.com/rear/rear/issues/1040
  513 
  514 -   In layout/save/GNU/Linux/230_filesystem_layout.sh aviod SC1087
  515     cf. https://github.com/rear/rear/issues/1040
  516 
  517 -   In default.conf tell that USB_RETAIN_BACKUP_NR is only supported when
  518     EXTLINUX is used as bootloader for USB and in
  519     output/USB/Linux-i386/300_create_extlinux.sh add an explanatory comment
  520     how that code works,
  521     cf. https://github.com/rear/rear/pull/2794#issuecomment-1106286485
  522 
  523 -   In layout/save/GNU/Linux/210_raid_layout.sh fixed and overhauled the
  524     RAID10 'layout' support code (i.e. what belongs to the mdadm -layout
  525     option). This was triggered by ShellCheck SC2034 and SC2066 for the old
  526     code, see https://github.com/rear/rear/pull/2768
  527 
  528 -   In finalize/Fedora/i386/550_rebuild_initramfs.sh fixed SC2068 and SC2145
  529     via some generic code cleanup
  530     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160 and
  531     see https://github.com/rear/rear/pull/2771
  532 
  533 -   In rescue/GNU/Linux/310_network_devices.sh fix SC2091 see
  534     https://github.com/rear/rear/pull/2776
  535 
  536 -   In default.conf increase USB_UEFI_PART_SIZE to 1024 MiB,
  537     cf. https://github.com/rear/rear/pull/1205 in particular to also make
  538     things work by default when additional third-party kernel modules and
  539     firmware (e.g. from Nvidia) are used,
  540     cf. https://github.com/rear/rear/issues/2770#issuecomment-1068935688
  541 
  542 -   In doc/rear.8 and doc/rear.8.adoc fixed typo '/dev/disk/by-path/REAR-000'
  543     -> '/dev/disk/by-label/REAR-000'
  544 
  545 -   In default.conf better describe USB_DEVICE
  546     cf. https://github.com/rear/rear/issues/2770#issuecomment-1068831482
  547 
  548 -   In output/default/940_grub_rescue.sh removed a misleading comment that
  549     shows a wrong get_version function call and in
  550     output/USB/Linux-i386/850_make_USB_bootable.sh fixed a wrong get_version
  551     function call that is needed since the ShellCheck SC2068 fixed get_version
  552     function in lib/layout-functions.sh
  553 
  554 -   In layout/recreate/default/120_confirm_wipedisk_disks.sh and
  555     layout/prepare/Linux-s390/205_s390_enable_disk.sh and
  556     rescue/GNU/Linux/310_network_devices.sh and
  557     rescue/GNU/Linux/230_storage_and_network_modules.sh and
  558     restore/default/990_move_away_restored_files.sh and
  559     restore/NBU/default/300_create_nbu_restore_fs_list.sh and
  560     skel/default/etc/scripts/system-setup.d/00-functions.sh and
  561     skel/default/etc/scripts/dhcp-setup-functions.sh and
  562     wrapup/default/990_copy_logfile.sh and
  563     usr/share/rear/lib/output-functions.sh and lib/layout-functions.sh and
  564     lib/filesystems-functions.sh and lib/linux-functions.sh avoid ShellCheck
  565     SC2068
  566     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  567 
  568 -   In output/ISO/Linux-i386/800_create_isofs.sh avoid ShellCheck SC2068 and
  569     SC2145
  570     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  571 
  572 -   In output/TSM/default/960_dsmc_verify_isofile.sh avoid ShellCheck SC2068
  573     and SC2145
  574     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160 plus
  575     better error checking and messaging and other code cleanup
  576 
  577 -   In output/default/940_grub2_rescue.sh and
  578     output/default/940_grub_rescue.sh avoid ShellCheck SC2068
  579     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  580 
  581 -   In output/default/950_email_result_files.sh avoid ShellCheck SC2068 and
  582     SC2145
  583     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160 and
  584     replaced ...IfError function calls by calling Error
  585 
  586 -   In restore/FDRUPSTREAM/default/260_copy_log_and_report.sh fixed ShellCheck
  587     reported error SC2199
  588     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160 and
  589     fixed possible "bash: conditional binary operator expected" error
  590 
  591 -   In output/USB/Linux-i386/300_create_extlinux.sh and
  592     rescue/GNU/Linux/310_network_devices.sh avoid ShellCheck reported error
  593     SC2199
  594     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  595 
  596 -   In prep/NBKDC/default/400_prep_nbkdc.s and lib/sesam-functions.sh avoid
  597     ShellCheck false error indication SC1097
  598     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  599 
  600 -   In lib/_input-output-functions.sh fixed ShellCheck reported errors SC2145
  601     and SC2068 and avoided ShellCheck false error indication SC1087
  602     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062945160
  603 
  604 -   In usr/sbin/rear avoid ShellCheck SC1075 and fixed ShellCheck SC2145
  605     cf. https://github.com/rear/rear/issues/1040
  606 
  607 -   In output/RAWDISK/Linux-i386/260_create_syslinux_efi_bootloader.sh fixed
  608     ShellCheck SC2235
  609     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  610 
  611 -   In rear/lib/sesam-functions.sh fixed ShellCheck SC2221
  612     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  613 
  614 -   In lib/filesystems-functions.sh in function xfs_parse fixed ShellCheck
  615     SC2179 and SC2128
  616     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  617     furthermore 'xfs_opts' is local in both functions xfs_parse and create_fs
  618     in layout/prepare/GNU/Linux/131_include_filesystem_code.sh
  619 
  620 -   In lib/layout-functions.sh fixed ShellCheck SC2178
  621     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  622 
  623 -   In skel/default/etc/scripts/system-setup.d/00-functions.sh ignore
  624     ShellCheck SC2119 and SC2120
  625     cf. https://github.com/rear/rear/issues/1040#issuecomment-1062703092
  626 
  627 -   In restore/DUPLICITY/default/150_restore_duply.sh avoid ShellCheck SC2103
  628     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  629 
  630 -   In layout/prepare/GNU/Linux/100_include_partition_code.sh fixed ShellCheck
  631     SC2199 and SC2076
  632     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  633 
  634 -   In output/ISO/Linux-ia64/400_create_local_efi_dir.sh fixed ShellCheck
  635     SC2050
  636     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  637 
  638 -   In layout/save/GNU/Linux/230_filesystem_layout.sh fixed ShellCheck SC2030
  639     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  640 
  641 -   In verify/NBU/default/380_request_client_destination.sh fixed ShellCheck
  642     SC2018 and SC2019
  643     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  644 
  645 -   In backup/YUM/default/500_make_backup.sh fixed ShellCheck SC2000
  646     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034870262
  647 
  648 -   Simpler code in prep/Linux-s390/305_include_s390_tools.sh to set a fixed
  649     bootdir="/boot" that also fixes ShellCheck SC1066
  650     cf. https://github.com/rear/rear/issues/1040#issuecomment-1034890880
  651 
  652 -   New GRUB2_SEARCH_ROOT_COMMAND in default.conf to overrule the setting in
  653     output/USB/Linux-i386/100_create_efiboot.sh see
  654     https://github.com/rear/rear/pull/2763 and
  655     https://github.com/rear/rear/issues/2500
  656 
  657 -   New EXCLUDE_IP_ADDRESSES and EXCLUDE_NETWORK_INTERFACES directives: These
  658     new array variables enable to exclude specific IP addresses or network
  659     interfaces when building the network configuration used in the rescue
  660     environment. This is typically useful when floating IP addresses are used.
  661     Not excluding these may lead to outage if the floating IP address is used
  662     by another system at time the system is getting recovered, see
  663     https://github.com/rear/rear/pull/2736
  664 
  665 -   multipath: fix exclusion of still wanted devices: The current code
  666     excluding multipath devices is broken when a device being excluded matches
  667     other devices. This leads to excluding wanted devices. This happens when
  668     having custom alias for multipath devices or there are more than 26
  669     multipath devices and 'mpatha' is getting excluded, which leads to
  670     excluding all 'mpathaX' devices are well, see
  671     https://github.com/rear/rear/pull/2750
  672 
  673 -   Update 06-layout-configuration.adoc: Enhance the "disk layout file syntax"
  674     description: Describe that one cannot rely on backward compatibility.
  675     Describe positional parameters vs. option=value parameters.
  676 
  677 -   Update default.conf: In default.conf describe that when OUTPUT_URL is set
  678     OUTPUT_OPTIONS does not inherit the BACKUP_OPTIONS value
  679     cf. https://github.com/rear/rear/issues/2753
  680 
  681 -   Include dmsetup and dmeventd as PROGS in conf/GNU/Linux.conf because older
  682     releases of os-prober (1.74 and below) use dmsetup as a fallback solution
  683     for mounting when grub-mount is missing but without dmsetup and dmeventd
  684     also in the recovery system that would block indefinitely at "Installing
  685     GRUB2 boot loader...", for details see
  686     https://github.com/rear/rear/pull/2748
  687 
  688 -   In the function cmdline_add_console in lib/serial-functions.sh add
  689     'console=tty0' as fallback to cmdline only if no real serial device was
  690     found otherwise on a machine with e.g. ttyS0 and ttyS1 where only ttyS0 is
  691     real only kernel messages (but nothing else) would appear on ttyS0, see
  692     https://github.com/rear/rear/pull/2749
  693 
  694 -   Skip unneeded /usr/lib/syslog-ng/loggen/ from recovery system: In
  695     conf/GNU/Linux.conf do no longer copy all in /usr/lib/syslog-ng/ but only
  696     copy .so files in /usr/lib/syslog-ng/ (same as for rsyslog). This skips in
  697     particular /usr/lib*/syslog-ng/loggen/ because 'loggen' is not included in
  698     the recovery system ('loggen' does not appear in any ReaR code). See
  699     https://github.com/rear/rear/issues/2743
  700 
  701 -   For BACKUP=CDM removed need for the whole /usr/lib64 in the recovery
  702     system. See https://github.com/rear/rear/pull/2747 and the related issues
  703     https://github.com/rear/rear/issues/2266
  704     https://github.com/rear/rear/issues/2314
  705     https://github.com/rear/rear/issues/2685
  706     https://github.com/rear/rear/issues/2700
  707 
  708 -   Update 400_copy_modules.sh: Do no longer error out if 'cp -a -L' failed to
  709     to copy all contents of /lib/modules/... but only tell the user about the
  710     issue so he could inspect his system and decide, see
  711     https://github.com/rear/rear/issues/2739#issuecomment-1014304127
  712 
  713 -   Support for HTTP sources when using PXE: There is a new config variable
  714     PXE_HTTP_URL to specify the HTTP download source for PXE. If the variable
  715     is set the PXE config file will generate an additional 3rd boot option
  716     (besides the unchanged standard options "rear" via TFTP and "local")
  717     namely "rear-http" which includes the HTTP URL information to download the
  718     kernel and initrd data. See https://github.com/rear/rear/pull/2738
  719 
  720 -   Also add ssh-add prog when ssh-agent is added. Since ssh-agent gets added
  721     it makes sense to add ssh-add as well. See
  722     https://github.com/rear/rear/pull/2729
  723 
  724 -   In layout/prepare/default/420_autoresize_last_partitions.sh automatically
  725     resize active last partitions on RAID0 disks, see
  726     https://github.com/rear/rear/issues/2696 Therefore in
  727     layout/save/GNU/Linux/210_raid_layout.sh a new 'raiddisk' entry that has
  728     same syntax as a 'disk' entry is written to disklayout.conf to have size
  729     (and partition label) of a RAID device like "raiddisk /dev/md127
  730     23599054848 gpt" because knowing the RAID device size is a precondition to
  731     be able to automatically resize a RAID0 array. See
  732     https://github.com/rear/rear/pull/2730
  733 
  734 -   In layout/prepare/default/420_autoresize_last_partitions.sh automatically
  735     resize active last partitions on RAID1 disks and fixed fallback setting so
  736     that now the user can specify AUTORESIZE_EXCLUDE_PARTITIONS=() in his
  737     local.conf. Additionally in layout/prepare/default/250_compare_disks.sh
  738     show info about old disk and sizes and new disks and sizes in case of
  739     MIGRATION_MODE to make it easier to answer the questions to which new
  740     disks old disk should be mapped. See
  741     https://github.com/rear/rear/pull/2726
  742 
  743 -   Fix modinfo_filename() in build/GNU/Linux/400_copy_modules.sh Output the
  744     original $module_filename also when it is a symlink because in the code
  745     below 'cp -L' copies the symlink taget content as a new regular file with
  746     file name as the name of the symlink so the copied content can be still
  747     found under its original name, cf.
  748     https://github.com/rear/rear/issues/2677#issuecomment-997859219
  749     Additionally in case of MODULES=( 'all_modules' ) also use 'cp -L' to copy
  750     the actual content to avoid dangling symlinks in the recovery system. See
  751     https://github.com/rear/rear/pull/2731
  752 
  753 -   In usr/share/rear/output/PXE/default/800_copy_to_tftp.sh fixed pxe file cp
  754     and permissions for sshfs target to prevent cp error "failed to preserve
  755     ownership" for sshfs and to prevent issue with write permissions trying to
  756     override image on later runs. See https://github.com/rear/rear/pull/2723
  757 
  758 -   Improved wiping disks (see https://github.com/rear/rear/pull/2721): In
  759     layout/recreate/default/120_confirm_wipedisk_disks.sh skip disks that do
  760     not exist on the bare hardware in the recovery system
  761     cf. https://github.com/rear/rear/issues/2715 and exclude disks that are
  762     write-protected
  763     cf. https://github.com/rear/rear/pull/2703#issuecomment-979928423 and show
  764     in any case a user confirmation dialog for the disks that will be wiped.
  765     In layout/recreate/default/150_wipe_disks.sh do no longer open (and close)
  766     LUKS volumes because encrypted volumes contain meaningless data unless
  767     opened and unencrypted so there is no need to wipe anything inside an
  768     encrypted LUKS container, cf. "Regarding LUKS" in
  769     https://github.com/rear/rear/pull/2514#issuecomment-743483945
  770 
  771 -   Overhauled RAID code (see https://github.com/rear/rear/pull/2714) based on
  772     https://github.com/rear/rear/pull/2702 that is about initial software RAID
  773     IMSM support i.e. with the changes in that pull request: Completely
  774     overhauled layout/save/GNU/Linux/210_raid_layout.sh: No longer a subshell
  775     that appends all stdout to disklayout.conf but explicit append to
  776     disklayout.conf where needed to be safe against accidental things written
  777     to disklayout.conf. Handle each mdadm option in one place i.e. parse and
  778     prepare output. Handle options ordered by importance, mandatory first,
  779     then optional ones. Basic tests that mandatory options are syntactically
  780     valid plus Error if not. Overhauled
  781     layout/prepare/GNU/Linux/120_include_raid_code.sh: The FEATURE_MDADM_UUID
  782     code is meanwhile obsolete because all mdadm versions in supported ReaR
  783     Linux distributions support '-uuid'. New
  784     layout/recreate/default/220_verify_layout.sh to verify if RAID devices are
  785     recreated with the UUIDs in disklayout.conf because mdadm silently ignores
  786     this option when creating IMSM arrays (both containers and the volumes
  787     inside them) and picks a random UUID
  788     cf. https://github.com/rear/rear/pull/2702#issuecomment-970395567 Support
  789     user specified DISKS_TO_BE_WIPED to mitigate
  790     https://github.com/rear/rear/issues/2715 see the DISKS_TO_BE_WIPED
  791     description in default.conf
  792 
  793 -   Update 100_create_layout_file.sh: Additionally show the filesystem LABEL
  794     in the 'lsblk' output of the original system as comment in disklayout.conf
  795     to make it easier to understand subsequent data in particular for RAID
  796     where the array name is shown as LABEL in 'lsblk' for example like
  797     "/dev/sda ... linux_raid_member any:raid1sdab" - see also "one cannot see ...
  798     /dev/md/ symlinks as NAME ... /dev/md/raid1sdab -> ../md127" in
  799     https://github.com/rear/rear/pull/2702#issuecomment-951769031 and see also
  800     https://github.com/rear/rear/commit/1a8a88c20d01f01fac65e296e9481ab9172c3ac7
  801 
  802 -   Update 100_create_layout_file.sh: Additionally show UUID in 'lsblk' output
  803     of the original system as comment in disklayout.conf to make it easier to
  804     compare UUIDs of the original system with what was recreated, cf. "...
  805     shouldn't it [ReaR] restore the [RAID] arrays with the same UUIDs ...?" in
  806     https://github.com/rear/rear/pull/2702#issuecomment-968904230 and
  807     https://github.com/rear/rear/pull/2714#issuecomment-970279152
  808 
  809 -   Update 050_start_required_nfs_daemons.sh: Start rpcbind with the -s option
  810     to avoid that in some cases rpcbind is not started / not available in the
  811     recovery system cf. https://github.com/rear/rear/issues/2672
  812 
  813 -   New function is_multipath_used in layout-functions.sh (see
  814     https://github.com/rear/rear/pull/2708) to get 'multipath -l' out of the
  815     function is_multipath_path by adding a separated function
  816     is_multipath_used that runs 'multipath -l' (which is expensive because it
  817     scans all devices) to check if multipath is used and remembers the result
  818     in MULTIPATH_IS_USED that is used in subsequent calls of is_multipath_used
  819     (without calling 'multipath -l') so we can call is_multipath_used many
  820     times via is_multipath_path which is called in
  821     layout/save/GNU/Linux/200_partition_layout.sh for each disk device. This
  822     should avoid long computing time when there are very may disk devices,
  823     cf. https://github.com/rear/rear/pull/2597#issuecomment-814950019
  824 
  825 -   Now "rear format" has in addition to the -efi switch a -bios switch. If
  826     none is given (i.e. by default) it will now do hybrid formatting with a
  827     BIOS boot partition (on GPT) and an EFI system partition. This is a
  828     starting point for implementing OUTPUT=USB support for UEFI and BIOS dual
  829     boot from the same medium see https://github.com/rear/rear/issues/2698 and
  830     https://github.com/rear/rear/pull/2705
  831 
  832 -   Update write-protect-functions.sh: In the function
  833     is_write_protected_by_id() assume a disk without any of UUID PTUUID
  834     PARTUUID WWN is empty and meant to be used to recreate the system so it
  835     should not be write-protected
  836     cf. https://github.com/rear/rear/pull/2703#discussion_r757393547
  837 
  838 -   Enhanced disk write-protection, see https://github.com/rear/rear/pull/2703
  839     and https://github.com/rear/rear/pull/2626 by WRITE_PROTECTED_IDS with
  840     generic functionality,
  841     cf. https://github.com/rear/rear/pull/2626#issuecomment-950953826 together
  842     with the new WRITE_PROTECTED_ID_TYPES which defaults to UUID PTUUID
  843     PARTUUID WWN so that the user can specify different lsblk columns as
  844     needed in his particular environment
  845     cf. https://github.com/rear/rear/pull/2703#issuecomment-962418441
  846 
  847 -   Stop ReaR from overwriting its own disk and backup drives for OUTPUT=USB
  848     and OUTPUT=RAWDISK via new WRITE_PROTECTED_... config variables (see
  849     default.conf) where UUIDs or filesystem labels can be specified so that
  850     disks that contain such UUIDs or filesystem labels will be 'write
  851     protected' during "rear recover", see
  852     https://github.com/rear/rear/issues/1271 and
  853     https://github.com/rear/rear/pull/2626
  854 
  855 -   Overhauled serial console support code. See
  856     https://github.com/rear/rear/pull/2699 A serial console of the ReaR
  857     recovery system can now be specified separately for the kernel and the
  858     recovery system bootloader via the generic config variables
  859     USE_SERIAL_CONSOLE and SERIAL_CONSOLE_DEVICES and specific config
  860     variables SERIAL_CONSOLE_DEVICES_KERNEL SERIAL_CONSOLE_DEVICE_SYSLINUX
  861     SERIAL_CONSOLE_DEVICE_GRUB see usr/share/rear/conf/default.conf for
  862     details cf. https://github.com/rear/rear/issues/2663 and
  863     https://github.com/rear/rear/pull/2697
  864 
  865 -   More control over serial devices used for console. See
  866     https://github.com/rear/rear/pull/2697
  867 
  868 -   In layout/prepare/default/300_map_disks.sh overhauled the automapping of
  869     original 'disk' devices and 'multipath' devices to current block devices
  870     in the currently running recovery system so that now it automatically
  871     finds an existing unique disk size mapping also when there is a unique
  872     mapping between more than two disks, see
  873     https://github.com/rear/rear/issues/2690
  874 
  875 -   Fix multiple VG recreation, see https://github.com/rear/rear/pull/2691 Do
  876     not use global variables in diskrestore.sh: Fix a problem introduced in
  877     commits b184194f37dd22a7e55655ff388579297239e73c and
  878     311bfb3da1d5e47a2ff144123a2457e634f67893 (PR #1806) that shows up when
  879     there are multiple VGs to restore. Using variables
  880     create_thin_volumes_only and create_logical_volumes to propagate
  881     information from VG creation to LV creation does not work well in the case
  882     of multiple VGs, because the variables are global and if there are
  883     multiple VGs, their values will leak from one VG to another. The generated
  884     diskrestore.sh script does not guarantee that the LVs of a given VG are
  885     created immediately after their VG and before creating another VG.
  886     Currently, the script first creates all VGs and then all LVs, so all the
  887     LVs in all VGs will see the value of create_logical_volumes and
  888     create_thin_volumes_only from the last VG, not from their own. This
  889     matters when different VGs behave differently (typically if one has a thin
  890     pool and the other does not). Fix by replacing the scalar values by arrays
  891     of VG names. If a given VG is in the array, it is the equivalent of the
  892     former scalar value being 1 for the given VG, if it is not in the array,
  893     it is an equivalent of a former value of 0. For the create_volume_group
  894     variable the change is not needed, but do it nevertheless for symmetry
  895     with other variables.
  896 
  897 -   Error out in sbin/rear when it failed to source or Source() mandatory
  898     files to make it obvious when there are syntax errors in user config files
  899     and/or when there are syntax errors in our lib/*-functions.sh code, see
  900     https://github.com/rear/rear/issues/2686
  901 
  902 -   Overhauled output/USB/Linux-i386/100_create_efiboot.sh In particular no
  903     longer use "cp -p" because '-p' may fail because it copies to a VFAT
  904     filesystem on the EFI partition see
  905     https://github.com/rear/rear/issues/2683 and now always use "cp -L" to
  906     ensure the real content gets copied. See
  907     https://github.com/rear/rear/pull/2684
  908 
  909 -   Overhauled the description in user-guide/05-integration.adoc what "rear
  910     savelayout" and "rear checklayout" are menat to do, cf.
  911     https://github.com/rear/rear/commit/7a3884bed1fb6cb61654c4e266ba4c35094bd9f4#r56879062
  912 
  913 -   Fixed https://github.com/rear/rear/issues/2667 "rear does not entirely
  914     remove build area any more" by using double quotes for
  915     remove_temporary_mountpoint "$BUILD_DIR/..." and fixed
  916     https://github.com/rear/rear/issues/2676 "False ERROR '.../outputfs not
  917     empty, cannot remove' when OUTPUT_URL is unset" by making
  918     scheme_supports_filesystem() fail-safe if $1 is empty or blank and also
  919     making scheme_accepts_files() fail-safe in the same way, see
  920     https://github.com/rear/rear/pull/2675
  921 
  922 -   On POWER require bootlist & ofpathname if needed: The ofpathname binary is
  923     called by grub2-install. Therefore, it is required in the rescue system in
  924     order to make the recovered system bootable, except for the PowerNV (Not
  925     Virtualized - bare metal) case. Under PowerVM, we also need the bootlist
  926     executable to make the system bootable. See
  927     https://github.com/rear/rear/pull/2665
  928 
  929 -   ReaR's default TMPDIR is now /var/tmp (it was /tmp before) i.e. ReaR's
  930     default working area is now /var/tmp/rear.XXXXX ReaR needs lots of space
  931     (from 300MB up to more than 1GB) to build the ReaR rescue/recovery system
  932     e.g. as ISO image and even much more space to also store the backup
  933     archive e.g. when the backup should be included in the ISO image. The
  934     system's default temporary directory /tmp is no longer suited as default
  935     temporary directory for ReaR because nowadays /tmp is often a "tmpfs" that
  936     is in RAM so /tmp has RAM/swap limitations. file-hierarchy(7) recommends
  937     to use /var/tmp for such cases. If the user sets TMPDIR explicitly, it
  938     still takes precedence. See https://github.com/rear/rear/pull/2664
  939 
  940 -   Cleanup of GRUB2 config code in particular for OUTPUT=USB: Cleanup of the
  941     create_grub2_cfg function: Describe its usage in a comment. Have its
  942     helper functions inside create_grub2_cfg to make them not globally
  943     accessible. Initial steps to clean up how the GRUB root device is set via
  944     one single method. DebugPrint output how GRUB2 is configured to help the
  945     user to find errors or bugs. Better GRUB2 menue entry names. Consistent
  946     calling of the create_grub2_cfg function always as create_grub2_cfg
  947     "/path/to/kernel" "/path/to/initrd" >/path/to/grub.cfg also in
  948     output/ISO/Linux-i386/250_populate_efibootimg.sh. Set GRUB2 timeout to new
  949     config variable GRUB2_TIMEOUT that is by default 300 seconds. Set GRUB2
  950     default boot menu entry to GRUB2_DEFAULT_BOOT that is by default
  951     'chainloader' which should usually boot the original system and reference
  952     GRUB2 boot menu entries by 'menuentry ... -id=...' to have meaningful names
  953     instead of meaningless numbers. Sleep 3 seconds exactly before GRUB2 shows
  954     its menu (it replaces what there is on the screen) so that the user could
  955     see possible GRUB2 (error) messages on the screen. Additionally cleanup of
  956     the get_root_disk_UUID function. See
  957     https://github.com/rear/rear/pull/2662
  958 
  959 -   Fixed serial console for syslinux: It writes only one serial line matching
  960     the configured device (when found) to the config. It also writes it for
  961     the syslinux config in case it is used without extlinux. See
  962     https://github.com/rear/rear/pull/2650
  963 
  964 -   Fix function create_grub2_cfg() for the none EFI cases and adds serial
  965     console configuration to the GRUB2 config. See
  966     https://github.com/rear/rear/pull/2661
  967 
  968 -   Simplifications for USB_BOOTLOADER="grub" and choose the right GRUB2
  969     config /boot/grub/grub.cfg or /boot/grub2/grub.cfg see
  970     https://github.com/rear/rear/pull/2659
  971 
  972 -   Cleanup USB format scripts and related code: Now OUTPUT=USB should behave
  973     sufficiently OK on BIOS systems with syslinux/extlinux as bootloader with
  974     a separated boot partition and without it (still the default). To use
  975     OUTPUT=USB on BIOS with syslinux/extlinux with a separated boot partition
  976     size of e.g. 1024 MiB specify in etc/rear/local.conf something like
  977     OUTPUT=USB USB_BOOT_PART_SIZE=1024
  978     OUTPUT_URL=usb:///dev/disk/by-label/REARBOOT BACKUP=NETFS
  979     BACKUP_URL=usb:///dev/disk/by-label/REAR-000 See
  980     https://github.com/rear/rear/pull/2660
  981 
  982 -   Fixed format/USB/default/300_format_usb_disk.sh for none EFI cases by
  983     adding a BIOS boot partition and setting the 'legacy_boot' flag in case of
  984     GPT partitioning. See https://github.com/rear/rear/pull/2656
  985 
  986 -   Added support for GRUB2 as bootloader for OUTPUT=USB via new config
  987     variable USB_BOOTLOADER=grub see https://github.com/rear/rear/pull/2655
  988 
  989 -   With the new default USER_INPUT_MAX_CHARS=0 input is not truncated and it
  990     also makes correcting the input possible (before [Enter] is pressed) see
  991     https://github.com/rear/rear/issues/2622
  992 
  993 -   Update default.conf: Since https://github.com/rear/rear/pull/2633 export
  994     TMPDIR="..." in ReaR config files like etc/rear/local.conf does no longer
  995     work so now export TMPDIR="..." must be called before calling 'rear'
  996     cf. https://github.com/rear/rear/issues/2654
  997 
  998 -   Treat RAID layout value '-unknown-' same as an empty value: In
  999     layout/save/GNU/Linux/210_raid_layout.sh treat the RAID layout value
 1000     '-unknown-' same as an empty value to avoid that
 1001     layout/prepare/GNU/Linux/120_include_raid_code.sh will create a 'mdadm'
 1002     command in diskrestore.sh like "mdadm ... -layout=-unknown- ..." which would
 1003     fail during "rear recover" with something like "mdadm: layout -unknown-
 1004     not understood for raid0", see https://github.com/rear/rear/issues/2616
 1005 
 1006 -   Avoid false Error() exit in copy_binaries() in
 1007     build/GNU/Linux/390_copy_binaries_libraries.sh by skipping 'cp' errors in
 1008     copy_binaries() (regardless what the reason was why 'cp' failed) but then
 1009     add the affected binary to REQUIRED_PROGS to verify later that the binary
 1010     actually exists in the recovery system which should be still sufficient to
 1011     let ReaR error out if something actually went wrong with needed binaries.
 1012     See https://github.com/rear/rear/pull/2643
 1013 
 1014 -   NSR enhancement for point-in-time recovery with EMC Networker client: A
 1015     new variable NSR_CLIENT_REQUESTRESTORE for the BACKUP=NSR workflow has
 1016     been introduced to deal with situations in which the NSR client is
 1017     allowed/granted to perform its recovery action "on its own" but does not
 1018     have full control of the EMC networker service/environment, for details
 1019     see its default.conf section. See https://github.com/rear/rear/pull/2641
 1020 
 1021 -   Workaround against DRBD9 restore error "refusing to be primary while peer
 1022     is not outdated" see https://github.com/rear/rear/issues/2634
 1023 
 1024 -   Cleanup rsync and fix error reporting: See
 1025     https://github.com/rear/rear/pull/2632 Cleanups of rsync code to use
 1026     better variable names and local variables, stop using StopIfError, use
 1027     better redirections etc. Fixed a problem with rsync error detection that
 1028     caused rsync errors during backup restore to be ignored, see
 1029     https://github.com/rear/rear/issues/2612 Now a warning is displayed and if
 1030     BACKUP_INTEGRITY_CHECK is true, it is elevated to an error and ReaR
 1031     aborts. Furthermore check fake super support only when RSYNC_PROTO=ssh and
 1032     removed a broken test for -fake-super arg to rsync, cf.
 1033     https://github.com/rear/rear/pull/2577
 1034 
 1035 -   Show some stdout and stderr messages also in non-debug modes: In non-debug
 1036     modes (in particular also in verbose mode) stdout and stderr are
 1037     redirected to a temporary file
 1038     STDOUT_STDERR_FILE=TMP_DIR/rear.WORKFLOW.stdout_stderr so in non-debug
 1039     modes stdout and stderr of all programs is still available for the Error()
 1040     function to extract some latest messages that get shown on the usrer's
 1041     terminal and those extracted lines are also copied into the log
 1042     cf. https://github.com/rear/rear/issues/2623 and
 1043     https://github.com/rear/rear/issues/2416 and
 1044     https://github.com/rear/rear/pull/2498 Furthermore the log files and the
 1045     stdout/stderr file can now only be read by root. Additionally when there
 1046     is something still mounted within the build area when rear finishes, the
 1047     user is informed what is mounted and that he must manually umount it
 1048     before he can (also manually) remove the build area. Finally the Error()
 1049     and cleanup_build_area_and_end_program() functions are made fail-safe
 1050     against not yet existing log files and not yet sourced other functions in
 1051     case of early Error() exits in usr/sbin/rear see
 1052     https://github.com/rear/rear/pull/2633
 1053 
 1054 -   Fixed accidental destructive backup removal in exit task and cleanup
 1055     handling of URL mountpoints: See https://github.com/rear/rear/pull/2625
 1056     Cleanup of temporary mount point handling, particularly for output.
 1057     Unification of mount point umount and cleanup move to the mount_url() and
 1058     umount_url() functions. Replaced the various "rm -rf" of the mountpoint by
 1059     "rmdir" which fixes https://github.com/rear/rear/issues/2611 Added lazy
 1060     umount in case normal umount does not succeed. If build dir is kept
 1061     (cf. KEEP_BUILD_DIR), propose a safe way to remove it to the user via "rm
 1062     -Rf -one-file-system" instead of just "rm -Rf" where the user risks to
 1063     remove everything below that mountpoint if still mounted. Fixes also some
 1064     other bugs noted in the process: Filesystem-specific umount command not
 1065     called
 1066     https://github.com/rear/rear/commit/20359a987662cc0c3fcfa52d62d1feac7cd55850#r51319634
 1067     Unknown schemes considered invalid, see the discussion under
 1068     https://github.com/rear/rear/pull/932 Identical scripts under DUPLICITY
 1069     and YUM replaced by symlinks. Reverted
 1070     https://github.com/rear/rear/pull/782 that had reintroduced
 1071     https://github.com/rear/rear/issues/465 which got re-reported as
 1072     https://github.com/rear/rear/issues/2611 Reverted
 1073     https://github.com/rear/rear/pull/578 because it is not clear how
 1074     .lockfile can exist in the unmounted filesystem, and if it does, it is a
 1075     bug. Reverted
 1076     https://github.com/rear/rear/commit/d850c4094238a03c9b926b88d7e1582ecd28af52
 1077     because it became meanwhile obsoleted by
 1078     https://github.com/rear/rear/commit/a8fdc445d0d6f7f9184dc6633817928f96aae9bc
 1079 
 1080 -   Add BACKUP_DUPLICITY_OPTIONS to
 1081     restore/DUPLICITY/default/400_restore_duplicity.sh Additionnal
 1082     BACKUP_DUPLICITY_OPTIONS options were missing which can cause the recover
 1083     to fail (options may contain endpoint information for example), see
 1084     https://github.com/rear/rear/issues/2619
 1085 
 1086 -   In prep/default/400_save_directories.sh also exclude mountpoints that are
 1087     below mountpoints of "type autofs": Those are below an ancestor mountpoint
 1088     that is owned/created by the automounter. It is possible to create a
 1089     sub-mountpoint below an automounted mountpoint but the fact that the
 1090     sub-mountpoint is not local means it should be excluded (i.e. there is no
 1091     need to recreate the non-local sub-mountpoint directory), see
 1092     https://github.com/rear/rear/issues/2610
 1093 
 1094 -   Better description and error checking for GRUB_RESCUE with UEFI plus some
 1095     alignment with the create_grub2_cfg function,
 1096     cf. https://github.com/rear/rear/issues/2545 Better describe GRUB_RESCUE
 1097     with UEFI in default.conf and in output/default/940_grub2_rescue.sh better
 1098     error checking plus some alignment with how create_grub2_cfg() creates a
 1099     GRUB2 config file i.e. no longer "insmod" the GRUB2 modules efi_gop
 1100     efi_uga video_bochs video_cirrus
 1101     cf. https://github.com/rear/rear/pull/2609#issuecomment-831883795 and the
 1102     discussion in https://github.com/rear/rear/issues/2388 see
 1103     https://github.com/rear/rear/pull/2609
 1104 
 1105 -   Fix setting boot path in case of UEFI partition (ESP) on MD RAID: The code
 1106     finalize/Linux-i386/670_run_efibootmgr.sh did not support Software RAID.
 1107     It has to execute the efibootmgr command on the members of the Software
 1108     RAID, see https://github.com/rear/rear/issues/2595 The ESP may be located
 1109     on a RAID device. In this case, we need to determine the physical RAID
 1110     components and call efibootmgr on them. In addition, clean up
 1111     finalize/Linux-i386/670_run_efibootmgr.sh and add more logging to ease
 1112     analysis when something goes wrong, see
 1113     https://github.com/rear/rear/pull/2608
 1114 
 1115 -   In prep/RSYNC/default/050_prep_rsync.sh adding sleep period to give rsync
 1116     daemon time to wake up, see https://github.com/rear/rear/pull/2599
 1117 
 1118 -   Have unused LVM PV devices only as comment in disklayout.conf: PVs that
 1119     are not part of a VG are documented as comment in disklayout.conf but they
 1120     are not recreated because they were not used on the original system so
 1121     there is no need to recreate them by "rear recover" see
 1122     https://github.com/rear/rear/issues/2596 and
 1123     https://github.com/rear/rear/pull/2603
 1124 
 1125 -   Automatically shrink LVs if needed during "rear recover". This enables to
 1126     run "rear recover" with automated LVM LVs shrinking as needed on a bit
 1127     smaller replacement disk (e.g. when a nominally same sized replacement
 1128     disk is actually a bit smaller than the original disk). This automated LVs
 1129     shrinking is not intended when disk(s) are substantially smaller. To
 1130     migrate onto a substantially smaller replacement disk the user must in
 1131     advance manually adapt his disklayout.conf file before he runs "rear
 1132     recover". In layout/prepare/GNU/Linux/110_include_lvm_code.sh assume the
 1133     command "lvcreate -L 123456b -n LV VG" had failed because of "Volume group
 1134     ... has insufficient free space" and then try as fallback attempt using all
 1135     remaining free space in the VG via "lvcreate -l 100%FREE -n LV VG". In
 1136     layout/save/GNU/Linux/220_lvm_layout.sh sort the 'lvs' output lines by
 1137     size of the LVs so only some biggest LVs may get automatically shrinked
 1138     (if needed) because we assume that the data of the backup can still be
 1139     restored into a big LV after it was shrinked a bit. See
 1140     https://github.com/rear/rear/pull/2591
 1141 
 1142 -   Replaced possibly misleading "USB device" by generic "USB or disk device"
 1143     wording in user messages (e.g. when a built-in disk /dev/sdc is used that
 1144     is no USB device). The word "USB" indicates that those messages belong to
 1145     the OUTPUT=USB method,
 1146     cf. https://github.com/rear/rear/pull/2589#issuecomment-805649510 and
 1147     https://github.com/rear/rear/issues/2588 and
 1148     https://github.com/rear/rear/pull/2589
 1149 
 1150 -   Wipe disks before recreating partitions/volumes/filesystems/... see
 1151     https://github.com/rear/rear/issues/799 See the new DISKS_TO_BE_WIPED in
 1152     default.conf and for details see
 1153     usr/share/rear/layout/recreate/default/README.wipe_disks This is currently
 1154     new and experimental functionality so that currently by default via
 1155     DISKS_TO_BE_WIPED='false' no disk is wiped to avoid possible regressions
 1156     until this new feature was more tested by interested users via an explicit
 1157     DISKS_TO_BE_WIPED setting in local.conf see
 1158     https://github.com/rear/rear/pull/2514
 1159 
 1160 -   In etc/scripts/system-setup.d/41-load-special-modules.sh load the nvram
 1161     kernel module if possible to make /dev/nvram appear because /dev/nvram
 1162     should be there when installing GRUB, see
 1163     https://github.com/rear/rear/issues/2554 and include the nvram kernel
 1164     module in the recovery system because nvram could be a module in
 1165     particular on POWER architecture see
 1166     https://github.com/rear/rear/issues/2554#issuecomment-764720180 and
 1167     https://github.com/rear/rear/pull/2580
 1168 
 1169 -   Make 400_copy_modules.sh fail-safe for newer modinfo output (in particular
 1170     modinfo in kmod-27 since SLES15-SP3) because otherwise copying builtin
 1171     kernel "modules" would let "rear mkrescue" error out with e.g. "ERROR:
 1172     unix exists but no module file?". Furthermore ensure that kernel modules
 1173     that should be loaded during recovery system startup (i.e. those in
 1174     MODULES_LOAD) get always copied into the recovery system. See
 1175     https://github.com/rear/rear/pull/2579
 1176 
 1177 -   In 300_format_usb_disk.sh adapt USB_UEFI_PART_SIZE fallback value to 512
 1178     to be in compliance with the new default.conf setting of 512 MiB since
 1179     https://github.com/rear/rear/commit/9a6b9a109aa77afc6c96cf05bbd7988cf0310d61
 1180     that was done in relation to https://github.com/rear/rear/pull/2576 see
 1181     also https://github.com/rear/rear/issues/2602
 1182 
 1183 -   Do not specify '-F 16' for mkfs.vfat and also no '-o fat=16' when mounting
 1184     it but rely on the mkfs.vfat automatic FAT type selection (which is FAT16
 1185     up to 511 MiB and FAT32 starting at 512 MiB at least on openSUSE Leap 15.2
 1186     with mkfs.vfat from dosfstools-4.1) and rely on the automatic FAT type
 1187     detection when mounting, cf. https://github.com/rear/rear/issues/2575 and
 1188     increase the default ESP size to USB_UEFI_PART_SIZE="512" to get by
 1189     default (via mkfs.vfat) a FAT32 ESP to be in compliance that "the ESP
 1190     should officially use a FAT32 filesystem" to avoid possible FAT16 ESP
 1191     issues with certain UEFI firmware. See
 1192     https://github.com/rear/rear/pull/2576
 1193 
 1194 -   Update 230_filesystem_layout.sh: Increase the 'docker info' timeout value
 1195     from 5 seconds to 10 seconds because sometimes 'docker info' needs more
 1196     than 5 seconds to finish,
 1197     cf. https://github.com/rear/rear/pull/2572#issuecomment-784110872
 1198 
 1199 -   Support loop devices in format_usb_disk see
 1200     https://github.com/rear/rear/pull/2555
 1201 
 1202 -   Update 110_include_lvm_code.sh: Make sure we delete the volume group
 1203     before re-creating it. The issue happens in Migration mode when ReaR is
 1204     not trying to use vgcfgrestore. See https://github.com/rear/rear/pull/2564
 1205 
 1206 -   In usr/share/rear/output/ISO/Linux-i386/700_create_efibootimg.sh add 2
 1207     more 32MiB blocks to be on the safe side against inexplicable failures
 1208     like "cp: error writing
 1209     '/tmp/rear.XXX/tmp/efi_virt/./EFI/BOOT/elilo.conf': No space left on
 1210     device" where the above calculated $efi_img_sz is a bit too small in
 1211     practice, see https://github.com/rear/rear/issues/2552
 1212 
 1213 -   Add terminal password check via 'TTY_ROOT_PASSWORD' and describe it in
 1214     default.conf, see https://github.com/rear/rear/pull/2539
 1215 
 1216 -   Changes for NetBackup (NBU) support: Copy NetBackup PBX related files to
 1217     the rescue system and start vxpbx_exchanged on boot. Add /usr/openv/tmp
 1218     directory to the NBU skeleton. See https://github.com/rear/rear/pull/2544
 1219 
 1220 -   RAWDISK: Add local rescue partition installation capability: Introduce a
 1221     configuration variable 'RAWDISK_INSTALL_GPT_PARTITION_NAME', which is
 1222     unset by default. When set, the rescue system will be installed to local
 1223     disk partitions having the corresponding name. RAWDISK: fix local rescue
 1224     partition installs (unmount before copying): While the recently created
 1225     EFI boot partition is still mounted, its file system might not be fully
 1226     synced. Unmounting ensures that the underlying loop block device is up to
 1227     date before possibly being copied to local disk partitions. See
 1228     https://github.com/rear/rear/pull/2538
 1229 
 1230 -   BACKUP=BACULA: Make bacula aware of different location of config files see
 1231     https://github.com/rear/rear/pull/2535
 1232 
 1233 -   In layout/prepare/GNU/Linux/131_include_filesystem_code.sh fixed vfat mkfs
 1234     using uuid from layout if possible see
 1235     https://github.com/rear/rear/pull/2546
 1236 
 1237 -   Completely overhauled USB filesystem kernel module handling: In
 1238     prep/USB/default/380_copy_usb_fs_module.sh do no longer unconditionally
 1239     add the USB filesystem to the MODULES and MODULES_LOAD arrays because
 1240     there are systems where the USB filesystem (e.g. 'ext3') is no kernel
 1241     module and then (via MODULES_LOAD and /etc/modules) "modprobe ext3" would
 1242     fail in 40-start-udev-or-load-modules.sh with a false alarm "modprobe:
 1243     FATAL: ... ext3 not found ..." message that would appear on the user's
 1244     terminal during recovery system startup. See
 1245     https://github.com/rear/rear/pull/2537
 1246 
 1247 -   Add DP_LD_LIBRARY_PATH to include shared libraries used by BACKUP=DP see
 1248     https://github.com/rear/rear/pull/2549
 1249 
 1250 -   POWER architecture (ppc64) support for BACKUP=DP: Other platforms
 1251     supporting the Data Protector Disk Agent, but not the Cell Console (GUI)
 1252     that is only available on i386, x86_64 and ia64 are now supported with
 1253     ReaR. This includes in particular ppc64. Checks unavailable on clients
 1254     without the Data Protector Cell Console (GUI) are skipped. In such cases
 1255     backup restore can be done using Data Protector GUI only.
 1256 
 1257 -   BACKUP=NBKDC: Enhanced ReaR backup and restore to also work with NovaStor
 1258     DataCenter 8.0 and higher plus fixed wording "NovaBACKUP DC" -> "NovaStor
 1259     DC", see https://github.com/rear/rear/issues/2518
 1260 
 1261 -   Provide final power to the user to skip the ISO_FILE_SIZE_LIMIT test: Skip
 1262     the assert_ISO_FILE_SIZE_LIMIT function when there is no usable
 1263     ISO_FILE_SIZE_LIMIT set so the user could specify ISO_FILE_SIZE_LIMIT=0 in
 1264     his etc/rear/local.conf if he wants to skip the ISO_FILE_SIZE_LIMIT test.
 1265     Aditionally enforce maximum 2GiB ISO_FILE_SIZE_LIMIT when the MODULES
 1266     array contains 'loaded_modules' because MODULES+=( udf ) has no effect in
 1267     this case unless it is loaded (which normally isn't).
 1268 
 1269 -   Error out when files greater or equal ISO_FILE_SIZE_LIMIT should be
 1270     included in the ISO: See the reasoning in default.conf why the default
 1271     ISO_FILE_SIZE_LIMIT is 2GiB and why we error out when files >=
 1272     ISO_FILE_SIZE_LIMIT should be included in the ISO. It is needed to aviod
 1273     possibly disastrous failures later during "rear recover" that users who
 1274     exceed that limit in exceptional cases get a hard (error) info to
 1275     thoroughly test and verify whether or not things actually work for them.
 1276     See https://github.com/rear/rear/pull/2525
 1277 
 1278 -   Completely overhauled ldd test in 990_verify_rootfs.sh: Now if needed a
 1279     special LD_LIBRARY_PATH is set only in the bash that runs ldd and that
 1280     bash exits after ldd finished so the special LD_LIBRARY_PATH setting is
 1281     gone with it. So there is no need to remember and restore some previously
 1282     set LD_LIBRARY_PATH because nothing was changed in the bash that runs
 1283     rear. Furthermore reporting when a binary requires additional libraries
 1284     happens now in the same 'for' loop after the ldd test was run which
 1285     further simplifies the code. See https://github.com/rear/rear/pull/2523
 1286 
 1287 -   Skip the ldd test for ReaR files: In build/default/990_verify_rootfs.sh
 1288     skip the ldd test for ReaR files (mainly bash scripts) where it does not
 1289     make sense, cf.
 1290     https://github.com/rear/rear/issues/2519#issuecomment-731196820
 1291 
 1292 -   In 500_clone_keyboard_mappings.sh have more neutral wording in messages
 1293     about possible keyboard issues and don't be needlessly verbose: It seems
 1294     newer Debian-based systems (including Ubuntu) no longer contain any
 1295     keymaps directory as part of the base system by default so including
 1296     multi-keyboard support into the recovery system is impossible there. If
 1297     the distro provides console-multi-keyboard support, ReaR includes it
 1298     (without being verbose). If the distro has decided that this is not
 1299     necessary, ReaR aligns with it (without being verbose). If the user has
 1300     installed multi-keyboard support, ReaR aligns with it (without being
 1301     verbose). Only when including the current keyboard mapping failed
 1302     (i.e. when 'dumpkeys' failed) it shows subsequent messages on the user's
 1303     terminal in any case. See https://github.com/rear/rear/issues/2519 and
 1304     https://github.com/rear/rear/pull/2520
 1305 
 1306 -   Restore LD_LIBRARY_PATH after reporting binaries with 'not found'
 1307     libraries: In build/default/990_verify_rootfs.sh restore the
 1308     LD_LIBRARY_PATH after reporting binaries with 'not found' shared object
 1309     dependencies so that results are the same for the first 'ldd' run that
 1310     finds binaries with 'not found' shared objects dependencies and the second
 1311     'ldd' run that reports those 'not found' shared objects dependencies, see
 1312     https://github.com/rear/rear/issues/2508#issuecomment-725914211
 1313 
 1314 -   Improved TCG Opal 2 documentation doc/user-guide/13-tcg-opal-support.adoc
 1315     cf. https://github.com/rear/rear/issues/2511 Better explained OS
 1316     installation according to the suggestion in
 1317     https://github.com/Drive-Trust-Alliance/sedutil/issues/301#issuecomment-723010843
 1318     Additionally some information from an article on Ask Ubuntu are included
 1319     https://askubuntu.com/a/1271171/1120528
 1320 
 1321 -   Make recreating LUKS volumes work with optional cryptsetup options: The
 1322     "cryptseup luksFormat" command does not require any of the type, cipher,
 1323     key-size, hash, uuid option values because if omitted a cryptseup default
 1324     value is used, cf.
 1325     https://github.com/rear/rear/pull/2504#issuecomment-720341023 The right
 1326     UUID values are mandatory for LUKS volumes that will be mounted during
 1327     startup of the recreated system. But this does not mean ReaR should error
 1328     out when there is no cryptsetup uuid value because it is possible to run
 1329     "rear recover" with enforced MIGRATION_MODE and manually correct the
 1330     restored /mnt/local/etc/crypttab file to use the new UUIDs before the
 1331     initrd is recreated and the bootloader is (re)-installed
 1332     cf. https://github.com/rear/rear/issues/2509
 1333 
 1334 -   Allow setting a PBA-specific firmware configuration via the new
 1335     OPAL_PBA_FIRMWARE_FILES configuration variable. Add '.../amdgpu/*' firmware
 1336     files for AMD graphics hardware (if present) on TCG Opal pre-boot
 1337     authentication (PBA) images, cf. https://github.com/rear/rear/issues/2474
 1338 
 1339 -   Support OPAL 2 self-encrypting NVMe disk drives: Normally the OPAL device
 1340     itself is used directly but NVMe devices have one or more namespaces per
 1341     primary device and these namespaces act as disks,
 1342     cf. https://github.com/rear/rear/issues/2475
 1343 
 1344 -   Added initial LUKS2 support, see https://github.com/rear/rear/issues/2204
 1345     Added new parameter 'type' to 'crypt' keyword used in disklayout.conf.
 1346     Using this parameter allows to recreate the same version of LUKS as on the
 1347     original system. Added LUKS version detection, parsing depending on
 1348     version and usage of 'type' parameter.
 1349 
 1350 -   New 036_valid_output_methods.sh to error out for unsupported OUTPUT
 1351     methods: For "rear mkbackup/mkrescue/mkbackuponly/mkopalpba" (i.e. for all
 1352     workflows that run the 'prep' stage) check that the OUTPUT method is
 1353     actually implemented i.e. check that a usr/share/rear/output/$OUTPUT
 1354     directory exists and error out when an OUTPUT method seems to be not
 1355     supported to ensure that the user cannot specify a non-working OUTPUT in
 1356     etc/rear/local.conf
 1357     (cf. usr/share/rear/prep/default/035_valid_backup_methods.sh) see
 1358     https://github.com/rear/rear/issues/2501
 1359 
 1360 -   Redirect stdout and stderr to the log only in debug modes. In normal modes
 1361     stdout and stderr are discarded (go now to /dev/null). The reason is to
 1362     get rid of messages from command stdout and stderr that don't make sense
 1363     for the user on their own unless there is more information in the log that
 1364     provides context about the called command (e.g. what exact command was
 1365     called in debugscript mode) see https://github.com/rear/rear/issues/2416
 1366     and https://github.com/rear/rear/pull/2498
 1367 
 1368 -   More verbose messages when components are excluded so that is is easier
 1369     for the user to see directly on his terminal what the actual results are
 1370     when he specified to exclude components in his etc/rear/local.conf and
 1371     what components are automatically excluded by ReaR. The verbosity depends
 1372     on if ReaR is run in verbose '-v' mode or even in debug '-d' or '-D' mode.
 1373 
 1374 -   Inform the user about unsupported LUKS2 volumes but do not error out see
 1375     https://github.com/rear/rear/issues/2491 plus some general code cleanup
 1376     and improvements in layout/save/GNU/Linux/260_crypt_layout.sh
 1377 
 1378 -   Update 05-integration.adoc: Explain that error messages in ReaR's log may
 1379     not come from ReaR itself but from programs that are called by ReaR
 1380     because stdout and stderr are redirected into ReaR's log file,
 1381     cf. https://github.com/rear/rear/issues/2479
 1382 
 1383 -   Have 'cd WORKING_DIR' in Source() function: Ensure that after each sourced
 1384     file we are back in ReaR's usual working directory which is the current
 1385     working directory when usr/sbin/rear is launched that is also the working
 1386     directory of all the other scripts and config files that get sourced via
 1387     the Source() function in lib/framework-functions.sh see
 1388     https://github.com/rear/rear/issues/2461
 1389 
 1390 -   In 400_copy_modules.sh skip copying kernel modules that are builtin
 1391     modules. The new behaviour is that when modules are listed in
 1392     modules.builtin and are also shown by modinfo then those modules are now
 1393     skipped. Before for such modules the modules file(s) would have been
 1394     included in the recovery system. See
 1395     https://github.com/rear/rear/issues/2414
 1396 
 1397 -   In backup/NETFS/default/500_make_backup.sh filter purely informational tar
 1398     messages from output: Suppress purely informational tar messages from
 1399     output like "tar: Removing leading / from member names" or "tar: Removing
 1400     leading / from hard link targets" or "tar: /path/to/socket: socket
 1401     ignored" but keep actual tar error or warning messages like "tar:
 1402     /path/to/file: file changed as we read it" and show only messages that are
 1403     prefixed with the name of the failed program (like 'tar:' or 'dd:') which
 1404     works when tar or dd fail but falsely suppresses messages from openssl
 1405     which needs to be fixed later,
 1406     cf. https://github.com/rear/rear/pull/2466#discussion_r466347471
 1407 
 1408 -   Fixed exit code logic in backup/NETFS/default/500_make_backup.sh: Commit
 1409     https://github.com/rear/rear/commit/2674807f6ad48da80b193ae977d345ad2ef5fdd1
 1410     removed the BACKUP_PROG_CRYPT_OPTIONS="cat" dummy code which broke the
 1411     exit code logic because pipes_rc and backup_prog_shortnames did no longer
 1412     match. Additionally ensure that the number of elements in both arrays are
 1413     always the same.
 1414 
 1415 -   Use ReaR specific TMP_DIR (not TMPDIR or hardcoded /tmp) plus some general
 1416     cleanup work as noticed "by the way" in scripts, see
 1417     https://github.com/rear/rear/issues/2460 and
 1418     https://github.com/rear/rear/pull/2462
 1419 
 1420 -   Adaptions and enhancements for BACKUP=CDM because the RBS agent file name
 1421     changed in Rubrik CDM v5.1 from rubrik-agent-sunos5.10.sparc.tar.gz to
 1422     rubrik-agent-solaris.sparc.tar.gz see
 1423     https://github.com/rear/rear/issues/2441
 1424 
 1425 -   Let 'dd' read and write up to 1M=1024*1024 bytes at a time to speed up
 1426     things cf. https://github.com/rear/rear/issues/2369 and
 1427     https://github.com/rear/rear/issues/2458
 1428 
 1429 -   In default.conf change ISO_VOLID from "RELAXRECOVER" to "REAR-ISO" so the
 1430     first ISO has the label "REAR-ISO" (8 characters) and subsequent ISOs get
 1431     the labels "REAR-ISO_01" "REAR-ISO_02" ... respectively that have 11
 1432     characters (the maximum length for FAT volume names) so things work now by
 1433     default when the ISO image is used to (manually) create a FAT bootable USB
 1434     stick, cf. https://github.com/rear/rear/issues/1565 and
 1435     https://github.com/rear/rear/issues/2456
 1436 
 1437 -   OPALPBA: Provide a permanent unlocking mode as a workaround because
 1438     https://github.com/rear/rear/pull/2426 did not resolve the issue
 1439     https://github.com/rear/rear/issues/2425 where for an HPE ML10Gen9 server
 1440     it seems the firmware did not initialize properly during a 'simple' reboot
 1441     so the only reliable way to boot was a power cycle after Opal disks were
 1442     unlocked. To reboot with unlocked disks there is now a new unlocking mode
 1443     "permanent" via OPAL_PBA_UNLOCK_MODE (see default.conf). Reactivating
 1444     locking is then the responsibility of the user. Additionally enhanced
 1445     security by disabling shell access via keyboard interrupt and switching to
 1446     a password hash for OPAL_PBA_DEBUG_PASSWORD.
 1447 
 1448 -   Use single quotes in the password settings examples because single quotes
 1449     avoid issues with the special bash characters like $ in the password,
 1450     cf. https://github.com/rear/rear/pull/2178
 1451 
 1452 -   Update format-workflow.sh: For "rear format" show "Use 'rear format -
 1453     -help' for more information" also when a "rear format" argument is not
 1454     accepted to help the user what the right syntax is (e.g. "rear format
 1455     help" and "rear format - help" do not work, only "rear format - -help"
 1456     works) and provide a more helpful example "rear -v format - -efi /dev/sdX"
 1457     that is actually neded for UEFI.
 1458 
 1459 -   Support for systemd and parallel restore with Data Protector BACKUP=DP:
 1460     Support starting Data Protector daemon 'omni.socket' via systemd in the
 1461     recovery system. Restore performance has been increased by doing parallel
 1462     restores now. Additional new script
 1463     usr/share/rear/finalize/DP/default/500_restore_ssc.sh to restore the
 1464     client certificate when Data Protector Secure Communication is used. Plus
 1465     several general script cleanup things. See
 1466     https://github.com/rear/rear/pull/2443
 1467 
 1468 -   Supply default value for root in grub in UEFI ISO: Sometimes the search
 1469     command in GRUB2 used in UEFI ISO does not find the root device. This was
 1470     seen at least in Debian Buster running in Qemu (VirtualBox works fine,
 1471     RHEL/CentOS in Qemu works fine as well). To make ReaR work in this case,
 1472     set $root to a sensible value before trying search. The GRUB2 image
 1473     created by grub-mkstandalone has $root set to memdisk, which can't work.
 1474     This essentially matches how it used to work before
 1475     https://github.com/rear/rear/pull/2293 and fixes
 1476     https://github.com/rear/rear/issues/2434
 1477 
 1478 -   Update 300_format_usb_disk.sh: In
 1479     format/USB/default/300_format_usb_disk.sh when prompting user for size of
 1480     EFI system partition on USB disk if no valid value is specified also use
 1481     400 MiB as default (same as the default value in default.conf)
 1482     cf. https://github.com/rear/rear/pull/1205#issuecomment-433336977 and
 1483     https://github.com/rear/rear/commit/89e6a47c82fbfe8d059a4647755f94750fe28acc
 1484 
 1485 -   Replaced $DATE usage with consistent variables START_SECONDS
 1486     START_DATE_TIME_NUMBER and START_DATE_TIME_STRING see
 1487     https://github.com/rear/rear/pull/2452
 1488 
 1489 -   Various TCG Opal Improvements: OPALPBA, Ubuntu: Fix incomplete file
 1490     exclusions: Fixes omissions reported in
 1491     https://github.com/rear/rear/issues/2436 Uses COPY_AS_IS_EXCLUDE where
 1492     possible. Removes files from the PBA system's staging directory where not
 1493     copying could not be configured. OPALPBA: Improve boot splash on Ubuntu
 1494     20.04: Takes into account a change from VT1 to VT7 to hide log messages
 1495     during the boot process. Improves Plymouth boot splash usage to hide log
 1496     messages during the reboot after unlocking disks. opaladmin: Add
 1497     sub-commands 'deactivate', 'reactivate': Makes turning on and off hardware
 1498     encryption easier on provisioned drives. TCG Opal-2: simplify quoting in
 1499     messages and replace 'StopIfError' use
 1500     cf. https://github.com/rear/rear/commit/daf35e235d0770c663ff8dba866dddec76586a27
 1501     Explicitly issuing an unlock command before reactivating locking ensures
 1502     that the device remains in an unlocked state when locking is reactivated.
 1503 
 1504 -   Add an explanatory comment in lib/_input-output-functions.sh that using
 1505     the ...IfError functions can result unexpected behaviour in certain cases
 1506     cf. https://github.com/rear/rear/pull/2443#pullrequestreview-440609407 and
 1507     https://github.com/rear/rear/issues/534 and
 1508     https://github.com/rear/rear/issues/1415#issuecomment-315692391
 1509 
 1510 -   Migrate XFS configuration files. When in MIGRATION_MODE, migrate/rename
 1511     XFS configuration files so they follow disk mapping set by user. See
 1512     https://github.com/rear/rear/issues/2333
 1513 
 1514 Version 2.6 (June 2020)
 1515 
 1516 Abstract
 1517 
 1518 New features, bigger enhancements, and possibly backward incompatible changes:
 1519 
 1520 -   Initial preliminary first basic support for IBM Z architecture "s390x"
 1521     (a.k.a. "z Systems", formerly "System/390", simply called "s390"):
 1522     Currently primarily for Red Hat and SUSE enterprise systems so that
 1523     interested users can try out early how far things work in their particular
 1524     IBM Z environments and provide feedback preferably plus needed fixes,
 1525     adaptions, and enhancements to ReaR upstream at
 1526     https://github.com/rear/rear (issues #2137 #2142).
 1527 
 1528 -   New BACKUP=CDM method to support Rubrik Cloud Data Management (CDM): The
 1529     Rubrik CDM backup and restore method for ReaR allows Rubrik CDM to perform
 1530     bare metal recovery of Linux systems. It does this by including the Rubrik
 1531     CDM RBS agent files in the ReaR recovery system so that during
 1532     rear recover the Rubrik CDM RBS agent can be used to restore from Rubrik
 1533     CDM (issue #2248).
 1534 
 1535 -   New use-case for BLOCKCLONE backup method with the "multiple backups"
 1536     approach for a more complex LUKS setup with different passphrases or keys:
 1537     The usual support for LUKS-encrypted filesystems means that during
 1538     reare recover a new encrypted filesystem will be created with new
 1539     encryption keys. To recover the exact LUKS setup including its keys from
 1540     the original system it is now possible to use the "multiple backups"
 1541     approach by first ignoring the encrypted filesystem during the "base
 1542     system" phase, and then using a second BLOCKCLONE phase with a dd image
 1543     that contains the encrypted filesystem. The new config variable
 1544     BLOCKCLONE_TRY_UNMOUNT is needed here: It will try to unmount the
 1545     encrypted filesystem before creating its image and before restoring it
 1546     (issue #2200).
 1547 
 1548 -   Initial draft implementation of the new 'mountonly' workflow to use ReaR
 1549     as rescue system, therein mount the filesystems of the target system so
 1550     that one can manually repair it. This is described in
 1551     doc/user-guide/04-scenarios.adoc (issue #2247).
 1552 
 1553 -   Enable creation of non consecutive partitions. parted is not capable of
 1554     creating non-consecutive partitions. To still be able to do so, the trick
 1555     consists in creating dummy partitions to fill the gaps between partition
 1556     numbers. Allocation of these dummy partitions is done from the end of the
 1557     target partition, because parted is not capable of resizing a partition
 1558     from the beginning (issues #2081 #1793 #1771 #1681).
 1559 
 1560 -   Improved handling of partition label type for multipath disks plus
 1561     including of multipath disks in backup (unless AUTOEXCLUDE_MULTIPATH is
 1562     true). Now the partition label type for multipath devices (same as is
 1563     already done for normal disks) is stored in 'multipath' entries in
 1564     disklayout.conf so that the syntax of those entries changed and that new
 1565     syntax is now documented in doc/user-guide/06-layout-configuration.adoc
 1566     (issues #2234 #2236).
 1567 
 1568 -   The config variable WAIT_SECS default value was aligned with the
 1569     USER_INPUT_TIMEOUT default value so that now the default timeout for user
 1570     input is always 300 seconds. The former WAIT_SECS default value of 30
 1571     seconds was too short because the 'read -t' timeout interrupts ongoing
 1572     user input. The timeout must be sufficiently long for the user to read and
 1573     understand the possibly unexpected user input request message and then
 1574     some more time to make a decision what to enter and finally even more time
 1575     to enter the right value (issue #2257).
 1576 
 1577 -   Enhanced default AUTOEXCLUDE_PATH=( /media /run /mnt /tmp ) to
 1578     automatically exclude temporarily mounted things (e.g. USB devices)
 1579     because mountpoints for temporarily mounted things are usually
 1580     sub-directories below /media /run (like /run/media) /mnt and /tmp (issue
 1581     #2239).
 1582 
 1583 -   Now we have CLONE_ALL_USERS_GROUPS="true" by default. See the explanation
 1584     in default.conf what that means. (issue #2345)
 1585 
 1586 -   Replaced grub-mkimage with more sophisticated grub-mkstandalone when
 1587     building GRUB2 image for using GRUB2 as recovery system UEFI bootloader
 1588     (issue #2293).
 1589 
 1590 Details (mostly in chronological order - newest topmost):
 1591 
 1592 -   Added DHCP auto-configuration for Network Manager (Ubuntu 20.04 Desktop):
 1593     While ReaR supports DHCP auto-detection during 'rear mkrescue' of some
 1594     DHCP setups, the Network Manager flavor on Ubuntu 20.04 Desktop was not
 1595     supported so DHCP for the recovery system was not auto-enabled there
 1596     (issue #2427).
 1597 
 1598 -   OPALPBA (OUTPUT=RAWDISK): Workaround for EFI firmware glitch which
 1599     prevents booting the real OS after unlocking SEDs. Symptom: Boot hangs
 1600     when Grub hands over control to the Linux kernel. Seen on an HPE ML10Gen9
 1601     server. The workaround is to add and remove a UEFI 'next boot' entry
 1602     (essentially a no-op) which should convince the EFI firmware to use the
 1603     boot order to determine the effective boot entry for the next boot (issue
 1604     #2425).
 1605 
 1606 -   Update default.conf: Describe LUKS_CRYPTSETUP_OPTIONS usage with some
 1607     examples (issue #2389).
 1608 
 1609 -   Overhauled how SSH config files are parsed for 'IdentityFile' values to
 1610     find (and remove) unprotected SSH keys in the recovery system. Now "find
 1611     ./etc/ssh" ensures that SSH 'Include' config files e.g. in
 1612     /etc/ssh/ssh_config.d/ are also parsed (issue #2421).
 1613 
 1614 -   Update default.conf: Describe usage of non-quoted globbing patterns like
 1615     VAR+=( /directory/* ) versus quoted globbing patterns like VAR+=(
 1616     '/directory/*' ) and also describe how to prepend to an array in contrast
 1617     to append to it (issue #2417).
 1618 
 1619 -   When creating md5sums of the files in the recovery system be safe against
 1620     blanks or special characters in file names by using appropriate options
 1621     for all commands in the pipe (issues #2407 #1372).
 1622 
 1623 -   Evaluate OUTPUT_LFTP_OPTIONS at the beginning of lftp operations. Before
 1624     OUTPUT_LFTP_OPTIONS had been evaluated after connection to destination
 1625     host was established which prohibited using OUTPUT_LFTP_OPTIONS also for
 1626     connection specific settings. Now OUTPUT_LFTP_OPTIONS is moved to the
 1627     beginning of lftp command before any other lftp command is executed (issue
 1628     #2410).
 1629 
 1630 -   For BACKUP=BORG implemented pagination when selecting the Borg archive to
 1631     restore from: During "rear recover" all Borg archives are shown. In case
 1632     of a long list only the last items had been visble to the user. Now
 1633     pagination happens with a configurable number of Borg archives, see
 1634     BORGBACKUP_RESTORE_ARCHIVES_SHOW_MAX in default.conf (issue #2408).
 1635 
 1636 -   For BACKUP=BORG updated generated locale filename from "rear.UTF-8" to
 1637     "en_US.UTF-8" (issue #2402).
 1638 
 1639 -   Use plain ${COPY_AS_IS[*]} instead of quoted "${COPY_AS_IS[@]}" in the tar
 1640     command call that copies things into the recovery system to ensure "things
 1641     work as usually expected" for any methods that are used to add elements to
 1642     the COPY_AS_IS array and better explain in default.conf how COPY_AS_IS
 1643     works, in particular that symlinks cannot be followed and that files or
 1644     directories that contain blanks or other $IFS characters cannot be
 1645     specified (issue #2405).
 1646 
 1647 -   For RAWDISK output add distribution-specific GRUB2 module 'linuxefi.mod'
 1648     otherwise GRUB2 could not boot a UEFI rescue medium on Ubuntu 18.04 or
 1649     20.04 (issue #2419).
 1650 
 1651 -   ReaR was using hard-coded set of Grub2 modules for UEFI boot-loader. New
 1652     GRUB2_MODULES_UEFI and GRUB2_MODULES_UEFI_LOAD config variables for
 1653     installing GRUB2 as recovery system UEFI bootloader so that user can add
 1654     or remove GRUB2 modules as needed (issues #2283 #2293 #2392).
 1655 
 1656 -   No longer load GRUB2 modules efi_gop and efi_uga in function
 1657     create_grub2_cfg: In the create_grub2_cfg function in
 1658     lib/bootloader-functions.sh do no longer enfore loading the GRUB2 modules
 1659     efi_gop and efi_uga because loading only the module all_video is
 1660     sufficient and fail-safe because moddep.lst contains "all_video: efi_gop
 1661     efi_uga" (issue #2388).
 1662 
 1663 -   No longer load video_bochs and video_cirrus by the create_grub2_cfg
 1664     function. In the create_grub2_cfg function in
 1665     usr/share/rear/lib/bootloader-functions.sh that is used in case of UEFI to
 1666     set up GRUB2 as bootloader for the recovery system do no longer let GRUB2
 1667     load the modules video_bochs and video_cirrus because those are not
 1668     available as GRUB2 modules in case of UEFI (x86_64-efi) and the generic
 1669     "insmod all_video" that is still there should be sufficient for GRUB2
 1670     (issue #2388).
 1671 
 1672 -   Allow to boot original system from Grub menu (UEFI): This change adds
 1673     following: Possibility to boot original system for UEFI boot with
 1674     OUTPUT=NETFS and OUTPUT=USB (similarly to non UEFI ReaR rescue system).
 1675     Replaces grub-mkimage for building of Grub2 boot image for OUTPUT=USB with
 1676     build_bootx86_efi() (grub-mkstandalone). Replaces separate Grub
 1677     configuration for OUTPUT=USB with create_grub2_cfg(). Using
 1678     build_bootx86_efi() and create_grub2_cfg() in OUTPUT=USB will unify
 1679     process of Grub boot image creation with OUTPUT=NETFS. (issue #2326)
 1680 
 1681 -   Replace grub-mkimage with more sophisticated grub-mkstandalone when
 1682     building GRUB2 image for using GRUB2 as recovery system UEFI bootloader
 1683     (issue #2293).
 1684 
 1685 -   When transferring ReaR recovery system ISO, create also destination
 1686     directory structure (including parents). This is useful because when
 1687     destination directory structure does not exist (or is incomplete), Lftp
 1688     puts files into first available directory in OUTPUT_URL scheme (issue
 1689     #2401).
 1690 
 1691 -   Have CLONE_ALL_USERS_GROUPS="true" by default and explain it in
 1692     default.conf (issue #2345).
 1693 
 1694 -   New OUTPUT_LFTP_OPTIONS config variable for lftp custom parameters (issue
 1695     #2384).
 1696 
 1697 -   Update 950_check_missing_programs.sh: When checking for required programs
 1698     also test for "basename program" because when required programs are
 1699     specified with absolute path those programs appears in the ReaR recovery
 1700     system in /bin/ so testing their original path would falsely fail during
 1701     "rear recover" (issue #2206).
 1702 
 1703 -   New prep/USB//350_safeguard_error_out.sh safeguard scripts to let "rear
 1704     mkrescue/mkbackup" error out in case of false usage of OUTPUT=USB on non
 1705     PC-compatible (non-i386/x86/x86_64) architectures because with OUTPUT=USB
 1706     on those architectures the USB medium cannot be booted (for those
 1707     architectures there are no scripts that install a bootloader) and
 1708     documented that in the OUTPUT=USB section in default.conf (issues #2348
 1709     #2396).
 1710 
 1711 -   Error out for unsupported workflows in any case: Before
 1712     init/default/050_check_rear_recover_mode.sh did only error out when in the
 1713     recovery system an unsupported workflow should be run. Now it also errors
 1714     out when on the normal/original system an unsupported workflow that is
 1715     likely destructive (in particular recover layoutonly restoreonly
 1716     finalizeonly and mountonly) should be run (issues #2387 #2395).
 1717 
 1718 -   Improve BorgBackup (short: Borg) integration into ReaR: Several
 1719     improvements e.g. error handling, output to logfile etc. (issue #2382).
 1720 
 1721 -   In backup/NETFS/default/500_make_backup.sh add "bs=1M" to
 1722     SPLIT_COMMAND="dd of=$backuparchive bs=1M" to let 'dd' read and write up
 1723     to 1MiB at a time to speed up things for example from only 500KiB/s (with
 1724     the 'dd' default of 512 bytes) via a 100MBit network connection to about
 1725     its full capacity (issue #2369).
 1726 
 1727 -   Error out during "rear mkrescue/mkbackup" when LUKS version 2 is used
 1728     because LUKS version 2 is not suppported. When LUKS version 2 is used it
 1729     fails at least to determine the hash value so we use an empty hash value
 1730     as a simple test if gathering crypt information was successful and error
 1731     out if not. (issues #2204 #2381)
 1732 
 1733 -   Auto-detect DHCP client with systemd-networkd plus completely overhauled
 1734     and simplified code in prep/GNU/Linux/210_include_dhclient.sh with
 1735     resulting simplification of
 1736     skel/default/etc/scripts/system-setup.d/58-start-dhclient.sh (issue
 1737     #2375).
 1738 
 1739 -   Filter out duplicate entries in COPY_AS_IS but keep the ordering of the
 1740     elements i.e. only the first occurrence of an element is kept. Also remove
 1741     duplicates in the copy_as_is_filelist_file with 'sort -u' because here the
 1742     ordering does not matter. (issue #2377)
 1743 
 1744 -   Update 250_find_all_libs.sh: Removed unreliably working code that intends
 1745     to filter out duplicates in the LIBS and COPS_AS_IS arrays via
 1746     echo "${ARRAY[@]}" | tr ' ' '\n' | sort -u | tr '\n' ' '
 1747     that fails when array elements contain spaces so better code
 1748     should be used e.g. like
 1749     printf '%s\n' "${ARRAY[@]}" | awk '!seen[$0]++'
 1750     but filtering out duplicates is not needed and by the way
 1751     cleaned up the whole script a bit. (issue #2377)
 1752 
 1753 -   Skip Longhorn Engine replica devices (issue #2373).
 1754 
 1755 -   Update 400_prep_yum.sh: For BACKUP=YUM error out if
 1756     BACKUP_PROG_CRYPT_ENABLED is set because BACKUP=YUM does not support
 1757     backup encryption (issue #2374).
 1758 
 1759 -   Fail-safe patching of etc/ssh/sshd_config in the recovery system to ensure
 1760     the needed ReaR settings/overrides actually apply. For example if
 1761     etc/ssh/sshd_config contains a Match section at the end of the file
 1762     e.g. appending "PermitRootLogin yes" will not be effective as a global
 1763     setting but only in the Match section. Therefore now the needed ReaR
 1764     settings are inserted at the beginning and all subsequent entries of that
 1765     kind are disabled (commented out) to ensure that the ReaR global setting
 1766     is the only one that is effective. (issue #2362)
 1767 
 1768 -   Run what was build/default/985_fix_broken_links.sh now earlier as
 1769     build/default/490_fix_broken_links.sh before files get modified in
 1770     recovery system because otherwise e.g. if etc/ssh/sshd_config is a
 1771     symbolic link build/default/500_ssh_setup.sh will fail to apply patches
 1772     (issue #2360).
 1773 
 1774 -   Use simpler and more fail-safe syntax ARRAY+=( additional elements )
 1775     everywhere (issue #2364).
 1776 
 1777 -   Update 58-start-dhclient.sh: Fixed issue #2354.
 1778 
 1779 -   Added usr/share/rear/restore/OPALPBA/ directory to pass the test for
 1780     SHARE_(D)IR/restore/BACKUP in prep/default/035_valid_backup_methods.sh
 1781     because the mkopalpba workflow uses the nonexistent BACKUP method OPALPBA
 1782     to create a PBA image (issue #2351).
 1783 
 1784 -   Fix OPALPBA: Could not change password on multiple SEDs at once. "rear
 1785     opaladmin changePW" (when used without any extra argument or with multiple
 1786     arguments) is meant to change the disk password on multiple
 1787     self-encrypting drives in a single invocation. However, it stopped after
 1788     successfully changing the password on the first drive and the password of
 1789     subsequent drives had not been changed. (issue #2349)
 1790 
 1791 -   Update 035_valid_backup_methods.sh: Simplified
 1792     prep/default/035_valid_backup_methods.sh to make it work more predictable
 1793     and fail-safe (issue #2353).
 1794 
 1795 -   Have a hardcoded '-iso-level 3' option in
 1796     output/ISO/Linux-ppc64le/820_create_iso_image.sh because it is also
 1797     hardcoded in output/ISO/Linux-i386/820_create_iso_image.sh and it seems to
 1798     also work in general on PPC64LE architecture (issue #2344).
 1799 
 1800 -   Update default.conf: Adapt the explanation in default.conf how
 1801     ISO_MAX_SIZE works (issue #2347).
 1802 
 1803 -   Cleaned up and enhanced the ISO_MAX_SIZE implementation in
 1804     backup/NETFS/default/500_make_backup.sh to make it in particular more safe
 1805     against erroneous settings of the ISO_MAX_SIZE variable (issue #2344).
 1806 
 1807 -   Added required NFS users for proper rpcbind startup: Usually 'rpcuser' is
 1808     used but 'rpc' is used in RHEL7.x and '_rpc' is used in Debian 10 (issues
 1809     #2341 #2342 #2250)
 1810 
 1811 -   Cleaned up and enhanced 320_migrate_network_configuration_files.sh plus
 1812     some bugfixes where the old code presumably did not work. (issues #2310
 1813     #2313 #2312)
 1814 
 1815 -   Update 890_finish_checks.sh: In the WARNING message at the end of "rear
 1816     recover" when no bootloader could be installed also mention
 1817     usr/share/rear/finalize/Linux-ppc64le/660_install_grub2.sh as an example
 1818     script how one could install a bootloader on POWER architecture.
 1819     Furthermore since finalize/default/110_bind_mount_proc_sys_dev_run.sh it
 1820     is no longer needed to manually mount /proc. (issues #2339 #2045)
 1821 
 1822 -   Update 095_exclude_non_essential_files.sh: Added also /usr/lib/grub2 and
 1823     /usr/share/grub2 to COPY_AS_IS_EXCLUDE because since openSUSE Leap 15.1
 1824     things were moved from /usr/lib/grub2/ to /usr/share/grub2/ (issue #2338).
 1825 
 1826 -   Update 270_create_grub2_efi_bootloader.sh: Test for Grub 2 EFI components
 1827     directories /usr/lib/grub/x86_64-efi and now also for
 1828     /usr/lib/grub2/x86_64-efi or /usr/share/grub2/x86_64-efi because since
 1829     openSUSE Leap 15.1 things were moved from /usr/lib/grub2/ to
 1830     /usr/share/grub2/ (issue #2338).
 1831 
 1832 -   Update uefi-functions.sh: Use /usr//grub/x86_64-efi/partmap.lst instead of
 1833     /usr/lib/grub*/x86_64-efi/partmap.lst because since openSUSE Leap 15.1
 1834     things were moved from /usr/lib/grub2/ to /usr/share/grub2/ (issue #2338).
 1835 
 1836 -   Update 630_install_grub.sh and 650_install_elilo.sh: Show the actual
 1837     missing directory in the Error message (issue #2337).
 1838 
 1839 -   Moved backup/default/005_valid_backup_methods.sh to
 1840     prep/default/035_valid_backup_methods.sh to also check for valid backup
 1841     methods during "rear mkrescue" because for most external backup methods
 1842     only "rear mkrescue" is used, cf. the section "BACKUP SOFTWARE
 1843     INTEGRATION" in 'man rear' (issue #2337).
 1844 
 1845 -   Changes to Data Protector branding, adjustment required to support the new
 1846     Data Protector 10.x agent with Secure Socket Communication. Fixed some
 1847     problems related to SessionID format and problems with object names like
 1848     host type vs. file system backup (issue #2335).
 1849 
 1850 -   Hard-coded root home directory string ("/root") was replaced with
 1851     $ROOT_HOME_DIR that is the eeal home directory of root user (issue #2334).
 1852 
 1853 -   Make USE_DHCLIENT and USE_STATIC_NETWORKING more fail-safe in ReaR
 1854     recovery system (issue #2325).
 1855 
 1856 -   For FDR backups, if the path for $FDRUPSTREAM_DATA_PATH does not exist,
 1857     then create it. This change is FDR specific for s390 and is only in effect
 1858     if ZVM_NAMING is "Y" (issue #2320).
 1859 
 1860 -   Overhauled rescue/default/010_merge_skeletons.sh: Made
 1861     010_merge_skeletons.sh behave more reliably. Now it errors out when things
 1862     really went wrong. Now is is also supported that both a $skel_dir
 1863     directory (e.g. usr/share/rear/skel/default/) plus a $skel_dir.tar.gz
 1864     (e.g. usr/share/rear/skel/default.tar.gz) exist and then both get copied
 1865     into the recovery system, first the directory and then the tar.gz so that
 1866     via the tar.gz files from the $skel_dir directory could be overwritten if
 1867     needed. (issues #2307 #2317)
 1868 
 1869 -   Added $FDRUPSTREAM_DATA_PATH/rear to $COPY_AS_IS_EXCLUDE_FDRUPSTREAM
 1870     (issue #2318).
 1871 
 1872 -   Added documentation about possible (dirty) workarounds for needed
 1873     bind9-export libraries for CentOS 7.7 and 8.0 which is somewhat related to
 1874     Rubrik-CDM (issues #2266 #2284).
 1875 
 1876 -   Enhanced recovery system BIOS boot default settings for USB and ISO: For
 1877     OUTPUT=ISO the user can now explicitly specify what to boot by default
 1878     when booting the ISO on BIOS systems via ISO_DEFAULT="boothd0" to boot
 1879     from the first disk and ISO_DEFAULT="boothd1" to boot from the second
 1880     disk. For OUTPUT=USB the user can now explicitly specify what to boot by
 1881     default when booting the disk on BIOS systems via
 1882     USB_BIOS_BOOT_DEFAULT="boothd0" to boot from the first disk. The default
 1883     USB_BIOS_BOOT_DEFAULT="" boots the second disk. (issues #2276 #2303)
 1884 
 1885 -   Remove outdated /root/rear-DATE-TIMESTAMP.log symlinks. Before creating
 1886     the current symlink to the current log file test all files that match the
 1887     file name pattern of such symlinks and remove those already existing (old)
 1888     symlinks where its now outdated symlink target is the current log file
 1889     (issue #2301).
 1890 
 1891 -   Initial preliminary first basic support for IBM Z architecture "s390x"
 1892     (a.k.a. "z Systems", formerly "System/390", simply called "s390"):
 1893     Currently primarily for Red Hat and SUSE enterprise systems so that
 1894     interested users can try out early how far things work in their particular
 1895     IBM Z environments and provide feedback preferably plus needed fixes,
 1896     adaptions, and enhancements to ReaR upstream at
 1897     https://github.com/rear/rear (issues #2137 #2142).
 1898 
 1899 -   Improved 'is_multipath_path' function to be more fail safe that now tests
 1900     (via "multipath -l" output) if multipath is used. Additionally have
 1901     'lsblk' output as disklayout.conf header comments to make it easier to
 1902     understand the values in the subsequent entries. Furthermore added 'xdd'
 1903     to the PROGS array because sometimes a tool to display binary files is
 1904     required in the recovery system. (issue #2298).
 1905 
 1906 -   Error out during "rear mkrescue" in case of insufficient LVM tools:
 1907     Overhauled layout/save/GNU/Linux/220_lvm_layout.sh where now the exit code
 1908     of the "lvm ..." calls are checked and it errors out if one fails in
 1909     particular to avoid that entries in disklayout.conf are missing or broken
 1910     when too old LVM tools are used that do not support the needed options of
 1911     those "lvm ..." calls. Also in
 1912     layout/save/default/950_verify_disklayout_file.sh a simple test was added
 1913     to verify that the 'lvm...' entries in disklayout.conf look syntactically
 1914     correct. Furthermore in 06-layout-configuration.adoc in the "Disk layout
 1915     file syntax" section the exact same syntax for the "lvm..." entries is now
 1916     listed as the headers of the "lvm..." entries in disklayout.conf are.
 1917     (issues #2259 #2291)
 1918 
 1919 -   Fixed missing delete_dummy_partitions_and_resize_real_ones calls: Use same
 1920     code as for disks for multipath devices (these are just regular disks),
 1921     including MBR erasing and partition creation and cleanup:
 1922     create_multipath() cannot call create_disk() because create_disk()
 1923     verifies that the device is a block device, which it isn't with multipath
 1924     because it's a symlink to a device mapper instead. Make sure new code
 1925     handling re-creation of partitions and cleanup is used because Software
 1926     Raid can have partitions since these are virtual disks. (issue #2281)
 1927 
 1928 -   Moved 'route' back from REQUIRED_PROGS to PROGS. ReaR uses 'ip route'
 1929     everywhere so 'route' is not actually required. As 'route' is no longer
 1930     always installed nowadays, having it in REQUIRED_PROGS lets ReaR falsely
 1931     error out on such systems (issues #1961 #1652).
 1932 
 1933 -   Update 990_verify_rootfs.sh: Use a FDRUPSTREAM-specific LD_LIBRARY_PATH to
 1934     find FDR libraries (issue #2296).
 1935 
 1936 -   Do not run 'ldd' on untrusted files to mitigate possible ldd security
 1937     issues because some versions of ldd may directly execute the file (see
 1938     "man ldd") which happens as user 'root' during "rear mkrescue". The new
 1939     TRUSTED_FILE_OWNERS user config array contains user names that are trusted
 1940     owners of files where RequiredSharedObjects calls ldd (cf. COPY_AS_IS) and
 1941     where a ldd test is run inside the recovery system that tests all binaries
 1942     for 'not found' libraries. Furthermore use
 1943     '2>>/dev/$DISPENSABLE_OUTPUT_DEV' at more places to avoid that the "rear
 1944     -D mkrescue" log file size would grow from about 5 MiB to about 17 MiB so
 1945     that now that log file size even shrinked to about 2 MiB. (issue #2279)
 1946 
 1947 -   Initial draft implementation of the new 'mountonly' workflow to use ReaR
 1948     as rescue system, therein mount the filesystems of the target system so
 1949     that one can manually repair it. This is described in
 1950     doc/user-guide/04-scenarios.adoc (issue #2247).
 1951 
 1952 -   Feature RAWDISK and OPALPBA improvements: RAWDISK: include additional Grub
 1953     modules from /boot/grub (and /boot/grub2) which had formerly been missing.
 1954     OPALPBA: improve Plymouth boot animation on Ubuntu, provide integration
 1955     capabilities for other distros. RAWDISK: add support for distros which use
 1956     'grub2' naming. (issue #2275)
 1957 
 1958 -   Improved check for missing libraries in 990_verify_rootfs.sh so that now
 1959     also libraries are checked that are no executables plus skipped the ldd
 1960     test for firmware files (issue #2279).
 1961 
 1962 -   Update default.conf: More explanatory comment in default.conf how
 1963     COPY_AS_IS versus LIBS, PROGS, and REQUIRED_PROGS are meant to be used
 1964     (issue #2278).
 1965 
 1966 -   Accommodate logs from multiple FDR/Upstream services. Users may run
 1967     multiple FDR/Upstream services on a single machine. This code change
 1968     allows ReaR to copy FDR/Upstream logs from the recovery environment to the
 1969     restored system for all running services. Previously the code was
 1970     expecting to find only one set of logs and reports in the FDR/Upstream
 1971     installation directory. For several years now, logs and reports have been
 1972     stored in a new location ($FDRUPSTREAM_DATA_PATH), so we check here
 1973     instead (issue #2251).
 1974 
 1975 -   Update format-workflow.sh: Set EXIT_FAIL_MESSAGE=0 before exiting in "rear
 1976     format - -help" to avoid the "rear format failed, check ...rear...log for
 1977     details" message that is pointless in this case.
 1978 
 1979 -   Added alternative for 'poweroff.com' that is 'poweroff.c32' on RHEL8
 1980     (issue #2238).
 1981 
 1982 -   Removed unnecessary line that sets NSRSERVER in
 1983     layout/save/NSR/default/650_check_iso_recoverable.sh which prevented
 1984     setting NSRSERVER in local.conf (issue #2162).
 1985 
 1986 -   Enhanced default AUTOEXCLUDE_PATH=( /media /run /mnt /tmp ) plus
 1987     explanatory comment in default.conf how AUTOEXCLUDE_PATH works (issues
 1988     #2239 #2261).
 1989 
 1990 -   Use is_true() for AUTOEXCLUDE_MULTIPATH and cleanup of the
 1991     get_partition_number function that now errors out with BugError in cases
 1992     that are likely a bug in ReaR (issues #2245 #2260).
 1993 
 1994 -   Do not abort in case of invalid user input but retry if possible. When
 1995     input values can be (syntactically) validated there is now a retry loop
 1996     until the user provided valid input (or intentionally aborts) except those
 1997     cases where it was not possible to implement validation when it is unknown
 1998     what is valid for third-party tools (issue #2253).
 1999 
 2000 -   Removed '2>/dev/null' redirection where possible: Some general cleanup for
 2001     ReaR 2.6 in all scripts by removing '2>/dev/null' where it makes sense and
 2002     replacing '&>/dev/null' by '1>/dev/null' where it makes sense or also
 2003     removing '&>/dev/null' where that seems to be better (issue #1395). By the
 2004     way verify/TSM/default/390_request_point_in_time_restore_parameters.sh and
 2005     verify/NBU/default/390_request_point_in_time_restore_parameters.sh have
 2006     been somewhat overhauled but both scripts still abort 'rear recover' when
 2007     the user did an invalid date or time input (issue #2253).
 2008 
 2009 -   Fix including of multipath disks in backup: The AUTOEXCLUDE_DISKS logic
 2010     traverses filesystems and tries to determine the associated underlying
 2011     disks that should be kept. When having a filesystem fs:/A that is present
 2012     on a multipath device MP and the root filesystem fs:/ that is present on a
 2013     normal disk D, the code first established that fs:/A depends on fs:/
 2014     resulting in marking D as used and then short-circuited processing of
 2015     multipath devices. This resulted in MP not being considered as a used
 2016     device and removed from the backup. The problem is fxed by removing the
 2017     short-circuit logic in find_disk_and_multipath() so multipath devices get
 2018     processed too unless AUTOEXCLUDE_MULTIPATH is true (issue #2236).
 2019 
 2020 -   Improve handling of partition label type for multipath disks: When
 2021     recording information about a multipath disk, ReaR did not store
 2022     information about its partition label type in the 'multipath' entry in
 2023     disklayout.conf. The recovery code tried to automatically detect the label
 2024     type using a heuristic that depends on GPT partition names. The logic
 2025     would incorrectly detect the device as having the MBR label type instead
 2026     of GPT if one of the partition names was exactly "primary", "extended" or
 2027     "logical". The problem is solved by explicitly storing the partition label
 2028     type for multipath devices (same as is already done for normal disks) so
 2029     that the syntax of the 'multipath' entries in disklayout.conf is changed
 2030     and that new syntax is now documented in
 2031     doc/user-guide/06-layout-configuration.adoc The recovery code is
 2032     accordingly updated to utilize this information (issue #2234).
 2033 
 2034 -   In doc/user-guide/16-Rubrik-CDM.adoc updated links to SUSE documentation:
 2035     Replaced the outdated link
 2036     https://www.suse.com/documentation/sle-ha-12/book_sleha/data/cha_ha_rear.html
 2037     that gets redirected to a not really helpful standard fallback page by the
 2038     currently valid URL for the most recent SLE-HA-15-SP1
 2039     https://documentation.suse.com/sle-ha/15-SP1/html/SLE-HA-all/cha-ha-rear.html
 2040     because meanwhile the SUSE documentation was moved to its own server. The
 2041     more general and more comprehensive documentation URL
 2042     https://en.opensuse.org/SDB:Disaster_Recovery is kept and listed topmost
 2043     (issue #2255).
 2044 
 2045 -   Added explanatory comments to default.conf about backup restore that may
 2046     fail for things like BACKUP_PROG_COMPRESS_OPTIONS=("-zstd") due to missing
 2047     zstd binaries in the ReaR recovery system probably also for -lzip -lzma
 2048     -lzop (issue #2241).
 2049 
 2050 -   New BACKUP=CDM method for Rubrik Cloud Data Management (CDM) see
 2051     doc/user-guide/16-Rubrik-CDM.adoc (issues #2248 #2249).
 2052 
 2053 -   In verify/NETFS/default/050_start_required_nfs_daemons.sh all kind of
 2054     '2>/dev/null' (i.e. also '&>/dev/null') are removed (so that '&>/dev/null'
 2055     is replaced by '1>/dev/null') because in general '2>/dev/null' is
 2056     unhelpful because it needlessly suppresses error messages in the log that
 2057     would be helpful to see when something fails (issues #2250 #1395).
 2058 
 2059 -   Update 06-layout-configuration.adoc: Changed section title from
 2060     "Including/Excluding components" to only "Excluding components". The
 2061     latter avoids possible misunderstanding that there would be a config
 2062     variable to explicitly include something but "including" here describes
 2063     only to disable autoecludes (issue #2229).
 2064 
 2065 -   Update default.conf: At AUTOEXCLUDE_DISKS removed the comment
 2066     Explicitly excluding/including devices is generally a safer option because
 2067     it is not acually helpful and even misleading because there is currently
 2068     no config variable to explicitly include devices (issue #2229).
 2069 
 2070 -   Do not keep the build dir when ReaR is run noninteractively by additional
 2071     special values for the KEEP_BUILD_DIR config variable, see its desctiption
 2072     in default.conf (issue #2218).
 2073 
 2074 -   Fix LVM2 thin pool recreation logic / use of vgcfgrestore is broken:
 2075     Removing forcibly (with '-force' passed twice) seems to work for now. But
 2076     our use of vgcfgrestore is probably not appropriate at all. It works by
 2077     chance. Typically, it works only for Linear volumes, and won't probably
 2078     for Caches and Raid hierarchies or when there are existing Snapshots on
 2079     the system. The only proper solution is perhaps stop relying on
 2080     vgcfgrestore at all, but then we are not capable of restoring volume
 2081     groups and logical volumes with all properties from original system (issue
 2082     #2222).
 2083 
 2084 -   Use mountpoint instead of mount | grep (issue #2225).
 2085 
 2086 -   Updated default.conf: Replaced ARRAY=( "${ARRAY[@]}" additional elements )
 2087     with simpler and more fail safe ARRAY+=( additional elements ) (related to
 2088     issues #2223 #2220).
 2089 
 2090 -   Append to the CLONE_USERS and CLONE_GROUPS arrays by using += instead of
 2091     expanding the previous value to an empty element which then causes
 2092     problems later (issues #2223 #699).
 2093 
 2094 -   Update 900_clone_users_and_groups.sh: Skip empty user and group values
 2095     (issue #2220).
 2096 
 2097 -   New use-case for BLOCKCLONE backup method for complex LUKS-encrypted
 2098     filesystems by usinng the "multiple backups" approach with a second
 2099     BLOCKCLONE phase with a dd image that contains the encrypted filesystem
 2100     where unmounting the encrypted filesystem before creating its image and
 2101     before restoring it has to be done via the new config variable
 2102     BLOCKCLONE_TRY_UNMOUNT (issue #2200).
 2103 
 2104 -   Fixed when ReaR does not detect an uncompressed kernel that is named
 2105     'vmlinux' (instead of 'vmlinuz').
 2106 
 2107 -   Added $BACKUP_OPTIONS to the line with mount_url in 800_copy_to_tftp.sh
 2108     and 810_create_pxelinux_cfg.sh otherwise in case of OUTPUT=PXE mounting
 2109     the NFS will fail.
 2110 
 2111 -   UEFI: Search for Grub2 modules in /usr/lib/grub/x86_64-efi and not in
 2112     /boot. On Fedora and RHEL systems, Grub2 UEFI modules live in
 2113     /usr/lib/grub/x86_64-efi, not /boot, unless grub2-install is executed, but
 2114     executing this tool is not needed with UEFI. On SUSE systems, Grub2 UEFI
 2115     modules also live in /usr/lib/grub/x86_64-efi but there is also a copy in
 2116     /boot, so it's not needed searching in /boot at all. Additionally, only
 2117     UEFI modules should be looked for, so /boot cannot be searched but only
 2118     /boot/grub2/x86_64-efi (similarly /usr/lib/grub/x86_64-efi, not just
 2119     /usr/lib/grub*), otherwise we could get some false positives on dual boot
 2120     systems (UEFI + Legacy), since modules for Legacy will also match, which
 2121     is wrong (issues #2199 #2001).
 2122 
 2123 -   RAWDISK and TCG Opal 2 Self-Encrypting Disks: Add Secure Boot support
 2124     (issue #2166).
 2125 
 2126 -   Avoid that disklayout.conf contains duplicate 'lvmvol' lines: Create the
 2127     'lvmvol' lines commented out when multiple segments exist for a given LV.
 2128     This is not an issue unless Migration Mode is used. In such case, using
 2129     'lvcreate' commands already does best effort and loses LV information
 2130     (issues #2194 #2187). Additionally do not overload the kval variable (that
 2131     is intended for passing options to lvcreate) by adding extra keys to it,
 2132     which are not supported by lvcreate. Introduce another variable infokval
 2133     for this purpose and print those unsupported and purely informational keys
 2134     only in comments (issue #2196).
 2135 
 2136 -   Apply layout mappings also to other relevant files via
 2137     layout/prepare/default/320_apply_mappings.sh In migration mode apply the
 2138     disk layout mappings not only to disklayout.conf but also to other files
 2139     that are also used to migrate the disk layout, namely
 2140     VAR_DIR/layout/config/df.txt and /etc/rear/rescue.conf Additionally
 2141     re-read the BTRFS_SUBVOLUME_SLES_SETUP variable from /etc/rear/rescue.conf
 2142     because its value could have been migrated to a new value (issue #2181).
 2143 
 2144 -   In the function apply_layout_mappings (therein in its "step 3") treat
 2145     leftover temporary replacement words (like _REAR1_) as an error only if
 2146     they are in a non-comment line (issue #2183).
 2147 
 2148 -   When 420_autoresize_last_partitions.sh resizes the last partition on a GPT
 2149     disk it leaves 33 LBA blocks at the end of the disk so that
 2150     420_autoresize_last_partitions.sh produces a fully correct disklayout.conf
 2151     file where no further automated adjustments by a subsequent script like
 2152     100_include_partition_code.sh are done (issue #2182).
 2153 
 2154 -   Error out when DHCLIENT_BIN and DHCLIENT6_BIN are empty and USE_DHCLIENT
 2155     is set (issue #2184).
 2156 
 2157 -   In build/default/990_verify_rootfs.sh skip the ldd test for kernel modules
 2158     because in general running ldd on kernel modules does not make sense and
 2159     sometimes running ldd on kernel modules causes needless errors because
 2160     sometimes that segfaults (issue #2177).
 2161 
 2162 -   Bacula: Fixed 'bconsole' prompt not displaying at all when doing a recover
 2163     (issue #2173).
 2164 
 2165 -   Fixed that the EFI Boot Manager cannot be installed when the system has a
 2166     NVMe SSD, because the device name is resolved as /dev/nvme0n1p rather than
 2167     /dev/nvme0n1 so for NVMe devices the trailing 'p' in the Disk value as in
 2168     /dev/nvme0n1p that is derived from /dev/nvme0n1p1 needs to be stripped to
 2169     get /dev/nvme0n1 (issues #2160 #1564).
 2170 
 2171 -   Changed double quotes (") to single quotes(') in documentation related to
 2172     BORG_PASSPHRASE variable. Double quotes will not avoid expanding of
 2173     variable when'$' sign is used inside pass phrase string, which can lead to
 2174     unsuccessful opening of Borg archive (issue #2205).
 2175 
 2176 -   More fail safe BACKUP_PROG_CRYPT_KEY handling: Use double quotes
 2177     "$BACKUP_PROG_CRYPT_KEY" so that the BACKUP_PROG_CRYPT_KEY value can
 2178     contain spaces. Escape special regexp characters in the
 2179     BACKUP_PROG_CRYPT_KEY value when it is used as a regexp in grep or sed.
 2180     Use single quotes BACKUP_PROG_CRYPT_KEY='my_passphrase' in the
 2181     documentation examples so that the BACKUP_PROG_CRYPT_KEY value can contain
 2182     special characters (except single quote). Recommend in default.conf to not
 2183     use special characters in the BACKUP_PROG_CRYPT_KEY value to be to be on
 2184     the safe side against things breaking in unexpected weird ways when
 2185     certain code in ReaR is not yet safe against arbitrary special characters
 2186     in values (issues #2157 #1372).
 2187 
 2188 -   Avoid that the BACKUP_PROG_CRYPT_KEY value appears in a log file in
 2189     particular when 'rear' is run in debugscript mode where 'set -x' is set by
 2190     redirecting STDERR to /dev/null for those confidential commands that use
 2191     the BACKUP_PROG_CRYPT_KEY value, cf. the comment of the UserInput function
 2192     how to keep things confidential when 'rear' is run in debugscript mode
 2193     (issues #2155 #2156).
 2194 
 2195 -   Fix when recovery fails on LUKS-encrypted filesystem using simple password
 2196     because only the first 2 parameters in /etc/crypttab are mandatory (issue
 2197     #2151).
 2198 
 2199 -   Generic enhancements for IBM Z (s390) to support 'dasd' disks and SUSE
 2200     specific enhancements to install during "rear recover" the special GRUB2
 2201     plus ZIPL bootloader on SLES12 and later via the new
 2202     finalize/SUSE_LINUX/s390/660_install_grub2_and_zipl.sh script (issues
 2203     #2137 #2150).
 2204 
 2205 -   Cleanup of the OUTPUT=RAMDISK code. Overhauled 900_copy_ramdisk.sh as
 2206     architecture independent new script
 2207     output/RAMDISK/default/900_copy_ramdisk.sh that replaces
 2208     output/RAMDISK/Linux-i386/900_copy_ramdisk.sh and overhauled
 2209     conf/templates/RESULT_usage_RAMDISK.txt plus better description of
 2210     OUTPUT=RAMDISK and RESULT_FILES in default.conf (issue #2148).
 2211 
 2212 -   Enable creation of non consecutive partitions (issues #2081 #1793 #1771
 2213     #1681).
 2214 
 2215 -   The new SUSE-specific script finalize/SUSE_LINUX/i386/675_install_shim.sh
 2216     calls 'shim-install' inside chroot on the recreated target system and uses
 2217     boot/grub2/grub.cfg as input to recreate two needed (identical) EFI files
 2218     /boot/grub2/x86_64-efi/core.efi and /boot/efi/EFI/opensuse/grubx64.efi
 2219     (issue #2116).
 2220 
 2221 -   Fixed that output/default/950_copy_result_files.sh falsely errors out when
 2222     an output method OUTPUT=FOO is used where there is no matching
 2223     usr/share/rear/conf/templates/RESULT_usage_FOO.txt because when it is
 2224     missing it is no sufficient reason to error out. Furthermore now
 2225     950_copy_result_files.sh is skipped when RESULT_FILES is empty because
 2226     that means there is no actual output and then it is not needed to only
 2227     copy VERSION README and LOGFILE to the output location (issue #2147).
 2228 
 2229 Version 2.5 (May 2019)
 2230 
 2231 Abstract
 2232 
 2233 New features, bigger enhancements, and possibly backward incompatible changes:
 2234 
 2235 -   Enhancements to better support mmcblk/eMMC disks: An "eMMC" device could
 2236     be not only one single disk but actually consist of several 'disk' type
 2237     block devices for example the actually usable disk /dev/mmcblk0 (with its
 2238     partitions like /dev/mmcblk0p1 and /dev/mmcblk0p2) plus special additional
 2239     disks on the same eMMC device like /dev/mmcblk0boot0 and /dev/mmcblk0boot1
 2240     and /dev/mmcblk0rpmb (issue #2087).
 2241 
 2242 -   Now there is in default.conf MODULES=( 'all_modules' ) which means that
 2243     now by default all kernel modules get included in the recovery system
 2244     (issue #2041). Usually this is required when migrating to different
 2245     hardware. Additionaly it makes the recovery system better prepared when
 2246     this or that additional kernel module is needed, e.g. to ensure a USB
 2247     keyboard is usable in the recovery system (issue #1870) or to ensure data
 2248     on external medium (e.g. iso9660) can be read (issue #1202). Furthermore
 2249     this is helpful to be on the safe side against possibly missing dependant
 2250     kernel modules that are not automatically found (issue #1355). The
 2251     drawback of MODULES=( 'all_modules' ) is that it makes the recovery system
 2252     (and its ISO image) somewhat bigger (see issue #2041 for some numbers).
 2253     With MODULES=() the old behaviour can be still specified. There is a minor
 2254     backward incompatible change: Before the user had to specify in
 2255     etc/rear/local.conf MODULES=( "${MODULES[@]}" 'moduleX' 'moduleY' ) to get
 2256     some specific modules included in addition to the ones via an empty
 2257     MODULES=() but now the user must specify MODULES=( 'moduleX' 'moduleY' )
 2258     for that because with "${MODULES[@]}" the new default value 'all_modules'
 2259     would be kept which would trigger that all modules get included so that
 2260     now `MODULES=( "${MODULES[@]}" 'moduleX' 'moduleY' )` includes
 2261     all kernel modules in the recovery system which includes in particular
 2262     'moduleX' and 'moduleY' so that things still work but with a bigger
 2263     recovery system. For details see the MODULES description in default.conf.
 2264 
 2265 -   The new verify script layout/save/default/950_verify_disklayout_file.sh
 2266     verifies the disklayout.conf file that is created by "rear
 2267     mkrescue/mkbackup". Currently only some very basic verification is
 2268     implemented: It verifies that the 'disk' entries look syntactically
 2269     correct (only basic value type testing), the 'part' entries look
 2270     syntactically correct (only basic value type testing), the 'part' entries
 2271     specify consecutive partitions. The latter is needed to make ReaR more
 2272     fail-safe in case of sparse partition schemes (i.e. when there are
 2273     non-consecutive partitions) because currently "rear recover" fails when
 2274     there are non-consecutive partitions (issue #1681). In general
 2275     verification of the created disklayout.conf should help to avoid failures
 2276     when it is too late (i.e. when "rear recover" fails). It is better to
 2277     error out early during "rear mkrescue/mkbackup". It may happen that
 2278     layout/save/default/950_verify_disklayout_file.sh falsely lets "rear
 2279     mkrescue/mkbackup" error out because of false alarm. The immediate
 2280     workaround for the user in such cases is to remove that script or skip
 2281     what it does by adding a 'return 0' command at its very beginning.
 2282 
 2283 -   Basic support for EFISTUB booting: Via the new config variable EFI_STUB
 2284     (see default.conf) the user can (and if needed must) specify that the
 2285     recreated system should boot via EFISTUB. If EFI_STUB is specified but
 2286     some boot loader like GRUB2 or ELILO is used on the original system, the
 2287     recreated system gets migrated to boot (only) via EFISTUB.
 2288 
 2289 -   The whole 'rear dump' output format need to be changed to improve it to
 2290     clearly distinguish array elements.
 2291 
 2292 -   Now during "rear mkrescue/mkbackup" md5sums are created for all regular
 2293     files in in the recovery system and stored as /md5sums.txt in the recovery
 2294     system. During recovery system startup it verifies those md5sums. Via the
 2295     new config variable EXCLUDE_MD5SUM_VERIFICATION (see default.conf) the
 2296     user can specify what files should be excluded from being verified to
 2297     avoid errors on "false positives".
 2298 
 2299 -   GRUB2 installation on x86 and ppc64le architecture was completely
 2300     rewritten and enhanced by the new config variable GRUB2_INSTALL_DEVICES
 2301     (see default.conf) so that now the user can specify what he wants if
 2302     needed and in MIGRATION_MODE disk mappings are applied when devices in
 2303     GRUB2_INSTALL_DEVICES match.
 2304 
 2305 Details (mostly in chronological order - newest topmost):
 2306 
 2307 -   In packaging/rpm/rear.spec reactivated 'BuildRoot' and 'defattr' because
 2308     both are required for building 'rear' RPM packages on SLES 11 and RHEL 5 /
 2309     CentOS 5 via the openSUSE Build Service and removed /etc/cron.d/rear and
 2310     related things (issues #2135 #1855 #1856 #1908 #1892)
 2311 
 2312 -   In layout/prepare/default/420_autoresize_last_partitions.sh continue with
 2313     the next disk if the current one has no partitions otherwise the "Find the
 2314     last partition for the current disk" code fails (issue #2134)
 2315 
 2316 -   Improved handling of broken symlinks inside the recovery system: Relative
 2317     symbolic links are now properly handled. Directories, which are link
 2318     targets, are not copied into the recovery system but a meaningful hint is
 2319     printed that COPY_AS_IS can be used for that (issues #2129 #2130 #2131)
 2320 
 2321 -   In layout/prepare/GNU/Linux/135_include_btrfs_subvolumes_generic_code.sh
 2322     fixed 'btrfs subvolume set-default' command for older versions of
 2323     'btrfsprogs' where that command requires both arguments 'subvolid' and
 2324     'path' (issue #2119)
 2325 
 2326 -   For backup NBU: Exclude the whole '/usr/openv/netbackup/logs' directory
 2327     instead of only the files in that directory (issue #2132)
 2328 
 2329 -   Fixed layout mapping error when TCG Opal 2 self-encrypting disks were
 2330     present but had to be excluded due to a non-existent disk during recovery.
 2331     This exclusion was not handled properly (issue #2126)
 2332 
 2333 -   In build/default/995_md5sums_rootfs.sh also exclude all files with a
 2334     trailing '~' in their name because those are also excluded when the
 2335     recovery system initrd is made by pack/GNU/Linux/900_create_initramfs.sh
 2336     (issue #2127)
 2337 
 2338 -   Suppressed unwanted "Welcome to Relax-and-Recover ..." etc/motd messages
 2339     from 'chroot $ROOTFS_DIR /bin/bash -login ...' calls that appear in the log
 2340     file or in the stdout of the chroot call when the output is further
 2341     processes by 'grep' by redirecting stdin of the chroot call to /dev/null
 2342     because no input is needed (issues #2120 #2125)
 2343 
 2344 -   Replace RULE_FILES with a global UDEV_NET_MAC_RULE_FILES in default.conf
 2345     (issues #2074 #2123)
 2346 
 2347 -   Added comment to default.conf that tells when KEEP_BUILD_DIR is
 2348     automatically set to true (issue #2121)
 2349 
 2350 -   Added /usr/openv/netbackup/sec/at/lib/ to NBU_LD_LIBRARY_PATH in
 2351     default.conf (issues #2105 #2122)
 2352 
 2353 -   Simplified awk constructs in 320_include_uefi_env.sh into using plain grep
 2354     and a bash array to avoid inexplicable wrong behaviour in some cases that
 2355     is somehow related to the nullglob bash option together with different
 2356     kind of awk (issues #2095 #2115)
 2357 
 2358 -   For older systems (e.g. like SLES11) where /dev is no mountpoint in the
 2359     recovery system we first mount TARGET_FS_ROOT/dev as 'tmpfs' and then we
 2360     copy all /dev contents from the recovery system into TARGET_FS_ROOT/dev to
 2361     make all recovery system /dev contents available at TARGET_FS_ROOT/dev
 2362     (which are needed therein for things like "chroot TARGET_FS_ROOT
 2363     mkinitrd") but only as long as the recovery system runs. On the rebooted
 2364     target system its pristine /dev will be there. This is basically what
 2365     finalize/default/100_populate_dev.sh had done but now without dirty
 2366     remainders on the user's target system disk (issue #2113).
 2367 
 2368 -   Do not copy symlink targets in /proc/ /sys/ /dev/ or /run/ into the ReaR
 2369     recovery system. For example on SLES11 /lib/udev/devices/core is a symlink
 2370     to /proc/kcore so that "rear mkrescue" basically hangs up while copying
 2371     /proc/kcore because it is huge (issue #2112)
 2372 
 2373 -   Avoid needless things when there is more than one disk: Avoid tot go into
 2374     MIGRATION_MODE in any case when there is more than one disk. Avoid that
 2375     GRUB2 gets needlessly installed two times on the same device (issue #2108)
 2376 
 2377 -   Fixed disk device name in efibootmgr call for eMMC devices: For eMMC
 2378     devices the trailing 'p' in the disk device name (as in /dev/mmcblk0p that
 2379     is derived from /dev/mmcblk0p1) needs to be stripped (to get
 2380     /dev/mmcblk0), otherwise the efibootmgr call fails because of a wrong disk
 2381     device name (issue #2103)
 2382 
 2383 -   For Ubuntu 18.x use /run/systemd/resolve/resolv.conf as /etc/resolv.conf
 2384     in the recovery system: Basically the /etc/resolv.conf symlink target and
 2385     /lib/systemd/resolv.conf contain only the systemd-resolved stub resolver
 2386     "nameserver 127.0.0.53" and only /run/systemd/resolve/resolv.conf contains
 2387     a real nameserver (issues #2018 #2101)
 2388 
 2389 -   When mktemp needs to be called with a TEMPLATE call it with sufficent
 2390     XXXXXXXXXX in the TEMPLATE, otherwise use the mktemp default (issue #2092)
 2391 
 2392 -   LPAR/PPC64 bootlist was incorrectly set when having multiple 'prep'
 2393     partitions: Use the specific right syntax for array expansion of the
 2394     boot_list array (issues #2096 #2097 #2098 #1068)
 2395 
 2396 -   Ensure that the Error function results a direct and complete exit of the
 2397     whole running 'rear' program even if the Error function was called from a
 2398     (possibly nested) subshell in a sourced script: Now the Error function
 2399     terminates all descendant processes of MASTER_PID except MASTER_PID and
 2400     the current (subshell) process that runs the Error function and when Error
 2401     was called from a subshell it finally exits its own subshell so that when
 2402     the Error function finished only MASTER_PID is still running and finally
 2403     MASTER_PID exits as usual via the DoExitTasks function (issues #2088 #2089
 2404     #2099)
 2405 
 2406 -   Ignore special additional disks on eMMC devices named "rpmb" and "boot":
 2407     Now the extract_partitions() function skips device nodes on eMMC devices
 2408     like /dev/mmcblk0rpmb or /dev/mmcblk0boot0 and /dev/mmcblk0boot1 because
 2409     ReaR wrongly recognized those 'disk' type block devices as if they were
 2410     'part' type block devices, i.e. those are no partitions, but special
 2411     additional disks on the eMMC device (issue #2087)
 2412 
 2413 -   Updated the OPALPBA workflow: Set USE_RESOLV_CONF='no' as networking is
 2414     not required/available in the PBA. Avoid copying in the entire
 2415     /etc/alternatives directory as its links could pull in lots of unwanted
 2416     stuff, which is not required in rescue systems. Clean up plymouth/unlock
 2417     service startup (issue #2083)
 2418 
 2419 -   Network: Record permanent mac address when device is enslaved in a Team,
 2420     or else /etc/mac-addresses will record broken information. Use "ethtool
 2421     -P" as the preferred method to retrieve the MAC address. Otherwise fall
 2422     back to other methods, which may lead to some invalid MAC address when
 2423     using Teams (issues #1954 #2065)
 2424 
 2425 -   Added 'net-tools' to Debian dependencies as required for 'route' command
 2426     which belongs to the REQUIRED_PROGS (issue #2082)
 2427 
 2428 -   Added an additional separated new btrfs_subvolumes_setup_generic()
 2429     function to recreate all mounted Btrfs subvolumes in a more generic way.
 2430     The old btrfs_subvolumes_setup function was renamed into
 2431     btrfs_subvolumes_setup_SLES and this one is called as fallback to be
 2432     backward compatible. For both btrfs_subvolumes_setup implementations it is
 2433     individually configurable which one is used for which btrfs device via the
 2434     new config variables BTRFS_SUBVOLUME_SLES_SETUP and
 2435     BTRFS_SUBVOLUME_GENERIC_SETUP. Currently it is not documented because it
 2436     is work in progress where arbitrary further changes will happen (e.g. the
 2437     current btrfs_subvolumes_setup_generic function makes diskrestore.sh fail
 2438     on older systems where 'btrfs subvolume set-default' needs two arguments)
 2439     so one has to inspect the current code and comments in the
 2440     layout/prepare/GNU/Linux/13X_include_... scripts to see how things currently
 2441     work (issues #2067 #2079 #2080 #2084 #2085)
 2442 
 2443 -   Fixed SSH root login on the recovery system with some configurations: On
 2444     Ubuntu 18.04 with OpenSSH 7.6, /etc/ssh/sshd_config contains commented-out
 2445     lines for 'PermitRootLogin' and other options. This fix makes sure that
 2446     settings changed for sshd in the ReaR recovery system will be real, not
 2447     comments (issue #2070)
 2448 
 2449 -   RAWDISK output: Improved device partition detection (e.g. Ubuntu 18.04).
 2450     On Ubuntu 18.04, it has been observed that after creating a loop device
 2451     and creating a properly sized VFAT file system >250 MB on it, after
 2452     mounting the file system size was actually just 30 MB. Reason: The
 2453     partition detection did not pick up the correct partition sizes of the
 2454     associated image file. This change uses losetup's -partscan option
 2455     (supported by util-linux v2.21 and above) to offer one additional
 2456     opportunity to detect partitions. If the option is not available, a
 2457     traditional losetup call will be used as a fallback (issue #2071)
 2458 
 2459 -   OPALPBA output fix: Do not include any PBA into another PBA. A TCG Opal
 2460     pre-boot authentication (PBA) system is a minimal operating system
 2461     constructed by ReaR to unlock self-encrpyting disks before the regular OS
 2462     takes over. Before this PR, it could happen that a previously created PBA
 2463     was included in a subsequently created PBA, causing it to be unnecessarily
 2464     large (issue ##2072)
 2465 
 2466 -   Now there is in default.conf MODULES=( 'all_modules' ) which means that
 2467     now by default all kernel modules get included in the recovery system
 2468     (issues #2041 #1870 #1202 #1355)
 2469 
 2470 -   New verify script layout/save/default/950_verify_disklayout_file.sh to
 2471     verify disklayout.conf that was created by "rear mkrescue/mkbackup"
 2472     (issues #2060 #1681)
 2473 
 2474 -   Refresh udev with trigger before activating multipath (issue #2064):
 2475     Ensure that all information from multipath devices is updated by udev into
 2476     /sys before activating multipath. This helps to mitigate certain kind of
 2477     issues when something wrong in the SAN zoning configuration (issues #2002
 2478     #2016 #2019)
 2479 
 2480 -   For backup NSR: It is of additional use to not skip the retrieval of the
 2481     filesystems even in NSR_CLIENT_MODE so that this is now also done in
 2482     NSR_CLIENT_MODE: Due to saving the save sets filesystem information in
 2483     $VAR_DIR/recovery/nsr_paths within the recovery image one is able to
 2484     retrieve/read this information during a recovery process i.e. for advising
 2485     the EMC networker server team to recover the appropriate
 2486     filesystem(-structure) from the backups beeing made (issue #2058)
 2487 
 2488 -   Skip patching absolute symlinks during finalize stage (issue #2055). That
 2489     does not actually fix issue #1338 but for now it should at least avoid
 2490     patching wrong files. Furthermore do no longer create udev rules in the
 2491     recreated system that have not been there. This way one can avoid that
 2492     ReaR creates udev rules that are created and maintained by systemd/udev
 2493     like /etc/udev/rules.d/70-persistent-net.rules when one excludes such udev
 2494     rules from being restored from the backup or by moving them away via
 2495     BACKUP_RESTORE_MOVE_AWAY_FILES (issue #770)
 2496 
 2497 -   Now /proc /sys /dev and /run are bind-mounted into TARGET_FS_ROOT at the
 2498     beginning of the finalize stage via the new
 2499     110_bind_mount_proc_sys_dev_run.sh script and existing code in various
 2500     finalize scripts for mounting /proc /sys /dev and things like that was
 2501     removed and the finalize scripts were adapted and renumbered as needed
 2502     (issues #2045 #2035)
 2503 
 2504 -   Added eno-fix.rules to RULE_FILES for LAN interface MAC address changes to
 2505     the ens-style LAN interface names instead of the older eno-type LAN names
 2506     and aligned RULE_FILES content in the involved scripts (issue #2046)
 2507 
 2508 -   Fixed 58-start-dhclient.sh script to make it work reliably with multiple
 2509     network interfaces (issue #2038)
 2510 
 2511 -   Borg backup restore enhancements and fixes: Added checks whether we can
 2512     read Borg archive, user can enable progress display via
 2513     BORGBACKUP_SHOW_PROGRESS="yes", corrected mounting of USB device when
 2514     using Borg (issues #2029 #2037)
 2515 
 2516 -   Fix for GRUB2 EFI modules search directory location: Instead of looking
 2517     for GRUB2 modules only in /boot also find them in /usr/lib/grub*, where
 2518     GRUB2 modules are normally installed by default (issue #2039)
 2519 
 2520 -   Basic support for EFISTUB booting plus documentation (issues #1942 #2030)
 2521 
 2522 -   Multipath optimizations: Optimized get_device_name() by calling "dmsetup
 2523     info" only once, and for "dm" devices only. Removed collecting output of
 2524     /sys/class/fc_transport since it can be very slow and is not used (issues
 2525     #2020 #2034)
 2526 
 2527 -   Suppress dispensable 'set -x' debug output unless called with
 2528     '-debugscripts x': A noticeable part (25% and more) of the 'set -x'
 2529     debugscripts output is usually of no interest and therefore such output is
 2530     suppressed by default (e.g. when rear is called with '-D') unless rear is
 2531     called with '-debugscripts x' where the full debugscripts output is still
 2532     there as it was before (issue #2024)
 2533 
 2534 -   Cleaned up the Docker specific exclude part in 230_filesystem_layout.sh:
 2535     Determine docker_root_dir only once and try to be safer against possibly
 2536     crippled Docker installations (e.g. timeout 'docker info') and be safe
 2537     against empty docker_root_dir (otherwise all mountpoints would match the
 2538     empty string and we would would skip all mountpoints) and show possible
 2539     errors to the user in any case (issues #1989 #2021)
 2540 
 2541 -   Improved setup of /etc/resolv.conf in the recovery system: In case of
 2542     static networking setup in the recovery system a plain traditional
 2543     /etc/resolv.conf file with an entry of a remote 'nameserver
 2544     DNS.server.IP.address' is needed. It cannot work when /etc/resolv.conf
 2545     contains only loopback IP addresses (which happens when the stub resolver
 2546     systemd-resolved is used) or when there is no nameserver entry so that
 2547     "rear mkrescue/mkbackup" errors out in this case. In contrast when
 2548     USE_DHCLIENT is ture (e.g. when DHCP is used on the original system) then
 2549     during recovery system startup /etc/resolv.conf will be generated by
 2550     /bin/dhclient-script so that it does not matter what its content was
 2551     before. For special cases the user can specify what he wants via the new
 2552     USE_RESOLV_CONF variable (issues #2015 #2018 #2076)
 2553 
 2554 -   Improved 'rear dump' output to clearly distinguish array elements. The
 2555     whole 'rear dump' output format was changed. Now it shows normal string
 2556     variables as STRING="string of words" and arrays as a
 2557     beautified/simplified 'declare -p' output as
 2558     ARRAY=("first element" "second element" ... ) unless in debug mode where
 2559     the plain 'declare -p' output is shown like
 2560     declare -- STRING="string of words" and
 2561     declare -a ARRAY=([0]="first element" [1]="second element" ... ) that is
 2562     needed for complicated array elements that contain brackets. Furthermore
 2563     now the 'rear dump' output can be directly sourced (issue #2014)
 2564 
 2565 -   Error out when we cannot make a bootable EFI image of GRUB2 which is
 2566     required when UEFI is used (issue 2013)
 2567 
 2568 -   Allow non-interactive authentication with rsync by using
 2569     BACKUP_RSYNC_OPTIONS to specify the "-password-file=/full/path/to/file"
 2570     rsync option (issue #2011)
 2571 
 2572 -   Add possibility for user to specify whether or not show Borg stats at the
 2573     end of backup session (issue #2008)
 2574 
 2575 -   Adaption for Fedora 29: grub2-efi-x64-modules does not contain linuxefi
 2576     module (issue #2001)
 2577 
 2578 -   Let the user optionally specify mkfs.xfs options if needed to recreate XFS
 2579     filesystems with different options than before (e.g. in MIGRATION_MODE
 2580     because of different replacement hardware) via the new MKFS_XFS_OPTIONS
 2581     config variable (issue #2005)
 2582 
 2583 -   Network interface renaming: Automatically map device to its new name when
 2584     device is found on the system with same MAC address but different name
 2585     (issue #2004)
 2586 
 2587 -   It is no BugError when neither getty nor agetty are avaiable. Such a case
 2588     it is an Error because the user must have the programs in REQUIRED_PROGS
 2589     installed on his system
 2590 
 2591 -   Fix for 'error:unrecognized number' when booting ISO on PPC: Issue is
 2592     caused by incorrect, according to PAPR specification, bootinfo entity
 2593     parsing code in GRUB2 (issue #1978)
 2594 
 2595 -   Fixed that in recovery system DHCP client did not iterate through all
 2596     network interfaces. It incorrectly took only the first one. If the
 2597     interface that is intended for recovery was not the first one, it had
 2598     failed (issue #1986)
 2599 
 2600 -   Automatically exclude BUILD_DIR from the backup. When TMPDIR was specified
 2601     to something not in /tmp, BUILD_DIR was not automatically excluded from
 2602     the backup (issue #1993)
 2603 
 2604 -   Support ISOs bigger than 4GiB with OUTPUT=ISO by including the udf kernel
 2605     module into the recovery system when mkisofs or genisoimage is used (not
 2606     needed for xorrisoifs) and enable creating an hybrid iso9660/udf DVD
 2607     (issue #1836)
 2608 
 2609 -   Cleaned up how KERNEL_FILE is set: Now the KERNEL_FILE variable is set in
 2610     the 'prep' stage only by the new prep/GNU/Linux/400_guess_kernel.sh that
 2611     replaces the old pack/GNU/Linux/400_guess_kernel.sh and all the various
 2612     different 300_copy_kernel.sh scripts (except
 2613     output/USB/Linux-i386/830_copy_kernel_initrd.sh) are removed because the
 2614     300_copy_kernel.sh scripts had also only set the KERNEL_FILE variable in
 2615     various ways. Additionally it errors out in various output stage scripts
 2616     when kernel or initrd are missing and it shows aligned error messages in
 2617     those cases to the user. Finally it errors out when the file does not
 2618     exist or is a broken symlink. (issues #1851 #1983 #1985)
 2619 
 2620 -   Enhanced and more robust exclude of vfat filesystem (ESP) from SELinux
 2621     relabeling during recover process (issue #1977)
 2622 
 2623 -   Fixed NBU (NetBackup) not working since ReaR 2.4: With NetBackup, too many
 2624     binaries were included, causing the recovery system verification to fail
 2625     or print error messages. A new NBU_LD_LIBRARY_PATH variable is used during
 2626     verification. The RequiredSharedOjects() function was fixed to not list
 2627     the left part of the ldd mapping when there is a right part: Some
 2628     NetBackup libraries have a mapping such as "/lib/ld64.so =>
 2629     /lib64/ld-linux-x86-64.so.2", causing the RequiredSharedOjects() function
 2630     to print "/lib/ld64.so" which does not resolve (issue #1974)
 2631 
 2632 -   Add /etc/ca-certificates directory to recovery system (issue #1971)
 2633 
 2634 -   Skip 630_run_efibootmgr.sh when UEFI_BOOTLOADER is empty or not a regular
 2635     file and determine the ESP mountpoint from UEFI_BOOTLOADER and use
 2636     $TARGET_FS_ROOT/boot/efi as fallback plus corrected logic whether or not
 2637     NOBOOTLOADER is set empty (issues #1942 #1945)
 2638 
 2639 -   Missing libraries in recovery system caused executables to fail because
 2640     libraries were skipped from copying when their library path was a
 2641     substring of another already copied library, for example /path/to/lib was
 2642     skipped when /other/path/to/lib was already copied (issue #1975)
 2643 
 2644 -   Check for carriage return in local/site/rescue.conf files (issue #1965)
 2645 
 2646 -   Specific required programs are added to REQUIRED_PROGS depending on what
 2647     component keywords are used in disklayout.conf (issue #1963)
 2648 
 2649 -   Cleanup and enhancement of REQUIRED_PROGS and PROGS checks (issue #1962)
 2650 
 2651 -   Moved PROGS from GNU/Linux.conf to default.conf REQUIRED_PROGS (issue
 2652     #892)
 2653 
 2654 -   Record permanent mac address when device is enslaved in a bond, or else
 2655     /etc/mac-addresses will record broken information (issue #1954)
 2656 
 2657 -   For Slackware Linux: Added automatic OS vendor and version detection.
 2658     Added logic to search for kernel files when the standard ELILO kernel
 2659     install paths come up empty. Added legacy LILO bootloader support.
 2660 
 2661 -   Enhanced and cleaned up 985_fix_broken_links.sh to find symlinks in the
 2662     recovery system where the link target is outside of the recovery system
 2663     and in such cases the missing link target gets copied into the recovery
 2664     system plus more verbose error reporting to the user (issue #1638)
 2665 
 2666 -   Fixed that the FindStorageDrivers function failed on kernels with no
 2667     modules. When MODULES=( 'no_modules' ) is set FindStorageDrivers() is now
 2668     skipped (issue #1941)
 2669 
 2670 -   Increased the default USB_UEFI_PART_SIZE from 200 to 400 MiB (issue #1205)
 2671 
 2672 -   Enhanced rescue/GNU/Linux/310_network_devices.sh for Bonding and Teaming
 2673     when it is configured with LACP. Bonding should not be simplified in this
 2674     case plus added code for non-simplified Teaming (issue #1926). Furthermore
 2675     simplified/hardened the tests/setup1 and tests/setup2 testbeds.
 2676 
 2677 -   In 500_clone_keyboard_mappings.sh avoid running find in the whole tree of
 2678     filesystems which takes ages (issue #1906)
 2679 
 2680 -   Let 100_include_partition_code.sh error out when the parted command is not
 2681     there (issue #1933)
 2682 
 2683 -   Suppress bash stderr messages like 'unary operator expected' or 'integer
 2684     expression expected' where a particular 'test' intentionally also fails
 2685     this way (issue #1931)
 2686 
 2687 -   Show errors to the user via LogPrintError instead of only LogPrint because
 2688     LogPrint outputs only in case of verbose mode (issue #1914)
 2689 
 2690 -   Avoid dangling symlinks when copying ReaR config files into the ReaR
 2691     recovery system by copying the content of the symlink target via 'cp -L'
 2692     (issue #1923)
 2693 
 2694 -   Avoid 'nullglob' pitfalls in 250_populate_efibootimg.sh and generally
 2695     overhalued that script (issue #1921)
 2696 
 2697 -   Check that CONFIG_DIR is a directory (issue #1815)
 2698 
 2699 -   Avoid bash error messages like: "eq: unary operator expected" when using
 2700     older versions of xfsprogs (issue #1915)
 2701 
 2702 -   Added exclusion of zram devices from device mapping in default.conf. By
 2703     default zram devices are not to be mapped, exactly as it is done for
 2704     ramdisk and loop devices (issue #1916)
 2705 
 2706 -   Fixed a non-working awk command in the generate_layout_dependencies()
 2707     function that falsely also matched commented '#btrfsmountedsubvol' entries
 2708     in disklayout.conf with an egrep command that is more in line with how it
 2709     had worked before (issue #1497)
 2710 
 2711 -   Fixed and enhanced NETFS+tar backup pipe exit code handling (issue #1913)
 2712 
 2713 -   Moved the functionality of the recovery system setup script
 2714     67-check-by-label-cdrom.sh into the mount_url function 'iso' case plus
 2715     additional enhancements there with a user dialog if things are not o.k.
 2716     and removed the no longer needed 67-check-by-label-cdrom.sh (issues #1893
 2717     #1891 #326)
 2718 
 2719 -   Fixed that on LPAR/PPC64 PowerVM the boot devices order list was
 2720     incorrectly set (via 'bootlist') when having multiple 'prep' partitions.
 2721     Now handling of multiple 'prep' partitions was added plus enhanced
 2722     handling of multiple prep partitions and multipath (issue #1886)
 2723 
 2724 -   Fixed and enhanced the get_disk_size and get_block_size functions so that
 2725     now by default blockdev is used (if exists) to retrieve the size of the
 2726     disk and its block size and compute partition start using 512 bytes blocks
 2727     (this is hardcoded in the Linux kernel) to fix wrong partition information
 2728     when a disk has 4K block size (issue #1884)
 2729 
 2730 -   Print multipath device name during "rear recover" when "firendly_name"
 2731     option is off (issue #1889)
 2732 
 2733 -   Now the Error function shows some last messages of the last sourced script
 2734     to the user (issues #1877 #1875)
 2735 
 2736 -   Duplicity: Misc improvements (issues #1876 #1879 #1882)
 2737 
 2738 -   Added code to recognize persistent LAN interface and manipulate
 2739     KERNEL_CMDLINE (issue #1874)
 2740 
 2741 -   Initial tentative support for OBDR on ppc64le (issue #1868)
 2742 
 2743 -   Wait for systemd-udevd to avoid broken pipe error in
 2744     40-start-udev-or-load-modules.sh (issue #1832)
 2745 
 2746 -   Aviod duplicate UUID in boot menuentry when snapper is used (issue #1871)
 2747 
 2748 -   Added choice to confirm identical layout mapping only once plus disabling
 2749     MIGRATION_MODE (issue #1857)
 2750 
 2751 -   Verify md5sums of files in recovery system (issues #1859 #1895)
 2752 
 2753 -   Fedora28: syslinux needs libcom32.c32 to boot from HD and missing
 2754     ldlinux.c32 and libutil.c32 prevents PXE booting (issues #1861, #1866)
 2755 
 2756 -   Add support for Slackware UEFI/USB (issues #1853, #1863)
 2757 
 2758 -   RAWDISK output portability improvements (issue #1846)
 2759 
 2760 -   Fixed, simplified, and enhanced GRUB2 installation on x86 and ppc64le
 2761     architecture (issues #1828, #1845, #1847, #1437)
 2762 
 2763 Version 2.4 (June 2018)
 2764 
 2765 Abstract
 2766 
 2767 New features, bigger enhancements, and possibly backward incompatible changes:
 2768 
 2769 -   Major rework and changed default behaviour how ReaR behaves in migration
 2770     mode when partitions can or must be resized to fit on replacement disks
 2771     with different size. The new default behaviour is that only the partition
 2772     end value of the last partition on a disk (and therefore its partition
 2773     size) may get changed if really needed but no partition start value gets
 2774     changed to avoid changes of the partition alignment. The new
 2775     420_autoresize_last_partitions script implements the new behaviour and the
 2776     old 400_autoresize_disks was renamed into 430_autoresize_all_partitions to
 2777     still provide the old behaviour if that is explicitly requested by the
 2778     user but the old behaviour may result unexpected changes of arbitrary
 2779     partitions on a disk. The new config variables AUTORESIZE_PARTITIONS
 2780     AUTORESIZE_EXCLUDE_PARTITIONS AUTOSHRINK_DISK_SIZE_LIMIT_PERCENTAGE
 2781     AUTOINCREASE_DISK_SIZE_THRESHOLD_PERCENTAGE determine how ReaR behaves in
 2782     migration mode when partitions can or must be resized. With
 2783     AUTORESIZE_PARTITIONS='yes' the old behaviour is done. With
 2784     AUTORESIZE_PARTITIONS='no' no partition is resized by ReaR. With the
 2785     default AUTORESIZE_PARTITIONS='' at most the last active partition on each
 2786     active disk gets resized but only if really needed which also depends on
 2787     the settings of the other config variables above. For details see
 2788     default.conf and the two 'autoresize' scripts. For some examples see
 2789     https://github.com/rear/rear/pull/1733
 2790 
 2791 -   Network setup was completely reworked to support bonding, bridges, vlans
 2792     and teaming. There is a full rewrite of the 310_network_devices.sh script
 2793     generating network interfaces for use during ReaR rescue/recovery system
 2794     networking setup via the 60-network-devices.sh script. It also handles
 2795     corner cases/odd setups that can be found from time to time, typically
 2796     when the administrator uses bonding plus bridges plus vlans as well as
 2797     teaming.
 2798 
 2799 -   Initial (limited) support for certain ARM based hardware. It should work
 2800     with Raspberry Pis, most TI and Allwinner devices. There are two ARM
 2801     specific BOOTLOADER variable values where 'ARM-ALLWINNER' is for Allwinner
 2802     devices that will backup and restore the 2nd stage bootloader versus plain
 2803     'ARM' which is a dummy that does nothing so that on Raspberry Pi and most
 2804     TI devices you need to include the first FAT partition (with the MLO or
 2805     bootcode.bin) in your backup.
 2806 
 2807 -   Simplified and enhanced TSM restore plus first draft of TSM backup.
 2808 
 2809 -   EMC Avamar support has been added.
 2810 
 2811 -   Duplicity backup has been seriously enhanced.
 2812 
 2813 -   Support for TCG Opal 2-compliant self-encrypting disks and RAWDISK output.
 2814 
 2815 -   YUM+backup adds the ability to backup and restore files to the YUM method.
 2816 
 2817 Details (mostly in chronological order):
 2818 
 2819 -   Copy backup restore log into recreated system (issue #1803)
 2820 
 2821 -   Sesam integration: add sesam bin directory to LD_LIBRARY_PATH (issue
 2822     #1817)
 2823 
 2824 -   ReaR recovery fails when the OS contains a Thin Pool/Volume (issues #1380,
 2825     #1806)
 2826 
 2827 -   Make SLES12-GA/SP0 btrfs recovery work again (issues #1796, #1813)
 2828 
 2829 -   Verify if dm-X is a partition before adding to sysfs_paths (issue #1805)
 2830 
 2831 -   Do not start multipathd when not needed (issue #1804)
 2832 
 2833 -   Better way to get multiapth partion name (issue #1802)
 2834 
 2835 -   Exclude multipath device that does not have mounted fs (issue #1801)
 2836 
 2837 -   Do not print each files restores by TSM in main output (issue #1797)
 2838 
 2839 -   man page BACKUP SOFTWARE INTEGRATION update (issues #1788, #1791)
 2840 
 2841 -   In the DRLM specific function drlm_import_runtime_config() solve problem
 2842     with some variables loading config from DRLM (issue #1794)
 2843 
 2844 -   Better describe NON_FATAL_BINARIES_WITH_MISSING_LIBRARY in default.conf
 2845     (issues #1792, #1693)
 2846 
 2847 -   Introduced KEYMAPS_DEFAULT_DIRECTORY and KEYMAP variables, see the
 2848     default.conf file (issues #1781, #1787)
 2849 
 2850 -   Fix multipath partition replacement and multipath partition naming (issue
 2851     #1765)
 2852 
 2853 -   Skip LUKS encrypted disks when guessing bootloader (issue #1779)
 2854 
 2855 -   First draft of TSM backup (issue #1348)
 2856 
 2857 -   HP RAID code was updated as the new executable is now called as "ssacli"
 2858     (issue #1760)
 2859 
 2860 -   Exclude docker file systems from layout (issue #1749)
 2861 
 2862 -   Added migation mode confirmation at beginning of finalize stage (issue
 2863     #1758)
 2864 
 2865 -   Show descendant processes PIDs with their commands in the log via pstree
 2866     or ps as fallback (issues #1755, #1756)
 2867 
 2868 -   Check for 'Hah!IdontNeedEFI' GUID number for a GPT BIOS boot partition
 2869     (issues #1752, #1754, #1780)
 2870 
 2871 -   Fixed invalid reported return code (always 0) upon NBU restoration failure
 2872     (issue #1751)
 2873 
 2874 -   Run exit tasks code with default bash flags and options (issues #700,
 2875     #1747, #1748)
 2876 
 2877 -   Major rework and changed default behaviour regarding AUTORESIZE_PARTITIONS
 2878     (issues #102, #1731, #1733, #1746)
 2879 
 2880 -   YUM+backup adds the ability to backup and restore files to the YUM method
 2881     (issues #1464, #1740)
 2882 
 2883 -   Add dbus user and group by default (issues #1710, #1743)
 2884 
 2885 -   Add gsk libs to TSM_LD_LIBRARY_PATH (issue #1744)
 2886 
 2887 -   Use 'grub2-install -no-nvram' on PowerNV system (issue #1742)
 2888 
 2889 -   We can use chronyd as time syncing mechanism now as well (issue #1739)
 2890 
 2891 -   Trace and fix broken symbolic links in rootfs (issues #1638, #1734)
 2892 
 2893 -   Borg Backup can now use USB disk as well as backup storage area (issue
 2894     #1730)
 2895 
 2896 -   Initial support for ARM (issue #1662)
 2897 
 2898 -   Improve the network parameters on the Linux Kernel command line (issue
 2899     #1725)
 2900 
 2901 -   Clean termination of descendant processes (issues #1712, #1720)
 2902 
 2903 -   Simpler and more fail-safe SLE btrfs-example.conf files (issues #1714,
 2904     #1716)
 2905 
 2906 -   Use a fallback to get interface state using the 'carrier' status (issues
 2907     #1701, #1719)
 2908 
 2909 -   Fix duplicity backup (issue #1695)
 2910 
 2911 -   Include Bareos plugin directory to make bareos-fd start reliably (issues
 2912     #1692, #1708)
 2913 
 2914 -   Again support GPT partition names with blanks (issues #212, #1563, #1706)
 2915 
 2916 -   Improvements around Borg Backup (issues #1698, #1700)
 2917 
 2918 -   Automatically add 'missing' devices to MD arrays with not enough physical
 2919     devices upon restore (issue #1697)
 2920 
 2921 -   Network setup was completely reworked to support bonding, bridges, vlans
 2922     and teaming (issue #1574)
 2923 
 2924 -   Fixed restore backup when BACKUP_INTEGRITY_CHECK=1 (issue #1685)
 2925 
 2926 -   Support TCG Opal 2-compliant self-encrypting disks and RAWDISK output
 2927     (issue #1659)
 2928 
 2929 -   Add EMC Avamar backup (issues #1621, #1677, #1687)
 2930 
 2931 -   Avoid falsely detected changed layout for 'rear checklayout' (issues
 2932     #1657, #1658, #1673)
 2933 
 2934 -   Simplified TSM dsmc restore and improved TSM connection test (issues
 2935     #1534, #1643, #1645)
 2936 
 2937 -   Duplicity with duply waits forever (issues #1664, #1672)
 2938 
 2939 -   Duplicity: Add Support for NETFS URLs (issues #1554, #1665, #1668, #1669)
 2940 
 2941 Many minor fixes (too many to list them all - use 'git log' to view them). A
 2942 big thank you to all contributors as without you it would be impossible to
 2943 keep up with the development in the Linux area. We love you all... :-)
 2944 
 2945 Version 2.3 (December 2017)
 2946 
 2947 Abstract
 2948 
 2949 New features and bigger enhancements:
 2950 
 2951 -   First steps towards running Relax-and-Recover unattended in general.
 2952     Several user dialogs that had been implemented in ReaR via the bash
 2953     builtin 'read' or the bash 'select' keyword are now implemented via the
 2954     new UserInput function. The UserInput function proceeds with a default
 2955     input value after a timeout so that it is now possible to let ReaR run
 2956     unattended with its default behaviour. Additionally one can predefine an
 2957     automated input value for each particular UserInput function call so that
 2958     it is now also possible for the user to predefine what ReaR should do when
 2959     running unattended. For details see the USER_INPUT_... config variables in
 2960     default.conf. Currently not all user dialogs use the UserInput function so
 2961     that this or that user dialog needs to be adapted when it is reported to
 2962     us via our issue tracker https://github.com/rear/rear/issues
 2963     In contrast when programs that are called by ReaR work interactively
 2964     (e.g. third-party backup tools that show user dialogs or password prompts)
 2965     the program call itself must be adapted to run unattended (if possible),
 2966     see the section 'It should be possible to run ReaR unattended' in our
 2967     https://github.com/rear/rear/wiki/Coding-Style
 2968     Wiki article.
 2969 
 2970 -   SSH support in the ReaR rescue/recovery system was overhauled. By default
 2971     it is now secure which means the recovery system is free of SSH secrets.
 2972     Individual settings can be specified via the SSH_FILES,
 2973     SSH_UNPROTECTED_PRIVATE_KEYS, and SSH_ROOT_PASSWORD config variables (for
 2974     details see default.conf).
 2975 
 2976 -   Improved verification of the ReaR rescue/recovery system contents. Now
 2977     during 'rear mkrescue/mkbackup' there is a verification step where 'ldd'
 2978     tests for each program/binary and library in the recovery system whether
 2979     or not its required binaries/libraries can be found in the recovery
 2980     system.
 2981 
 2982 -   Improved autodetection during 'rear recover' when disks on the replacement
 2983     hardware seem to not match compared to what there was on the original
 2984     system so that ReaR is now more fail-safe against recreating on a possibly
 2985     wrong disk.
 2986 
 2987 Possibly backward incompatible changes:
 2988 
 2989 -   In addition to STDERR now also STDOUT is redirected into the ReaR log
 2990     file. Accordingly all output of programs that are called by ReaR is now in
 2991     the log file so that the log file content is more complete and there is no
 2992     longer unintended verbose information from programs on the terminal where
 2993     ReaR was lauched. On the other hand this means when programs prompt via
 2994     STDOUT to get some user input (e.g. a program prompts for a user
 2995     confirmation under this or that circumstances) the program's STDOUT prompt
 2996     is no longer visible to the user when the program was not called properly
 2997     in the particular ReaR script as described in the section 'What to do with
 2998     stdin, stdout, and stderr' in our
 2999     https://github.com/rear/rear/wiki/Coding-Style Wiki article. We tried to
 3000     fix as many program calls as possible but it is impossible (with
 3001     reasonable effort / with a reasonable amount of time) to check all program
 3002     calls in all ReaR scripts so that this or that unnoticed program call will
 3003     need to be fixed when it is reported to us via our issue tracker
 3004     https://github.com/rear/rear/issues
 3005 
 3006 -   SSH support in the ReaR rescue/recovery system is now secure by default.
 3007     There are no longer private SSH keys in the recovery system by default and
 3008     a RSA key is generated from scratch when starting sshd during recovery
 3009     system startup. Accordingly it does no longer work by default to use SSH
 3010     in the recovery system via the SSH keys that exist on the original system.
 3011     To get SSH keys included in the recovery system use the SSH_FILES and
 3012     SSH_UNPROTECTED_PRIVATE_KEYS config variables (for details see
 3013     default.conf).
 3014 
 3015 -   Verification of required binaries/libraries in the ReaR rescue/recovery
 3016     system. By default it is now fatal when 'ldd' reports a 'not found'
 3017     library for any file in a /bin/ or /sbin/ directory in the recovery system
 3018     so that now 'rear mkrescue/mkbackup' may fail where it had (blindly)
 3019     worked before. In particular third-party backup tools sometimes use their
 3020     libraries via unexpected ways which can cause 'false alarm' by the 'ldd'
 3021     test. With the new config variable NON_FATAL_BINARIES_WITH_MISSING_LIBRARY
 3022     one can specify for which files a 'not found' library should be considered
 3023     as 'false alarm' (for details see default.conf).
 3024 
 3025 -   Improved MIGRATION_MODE autodetection when the disk layout looks
 3026     ambiguous. Now 'rear recover' switches by default more often into
 3027     MIGRATION_MODE where manual disk layout configuration happens via several
 3028     user dialogs so that by default 'rear recover' shows more often user
 3029     dialogs compared to before but the intended behaviour can be enforced via
 3030     the MIGRATION_MODE config variable (for details see default.conf).
 3031 
 3032 Details (mostly in chronological order):
 3033 
 3034 -   Use /etc/os-release and /etc/system-release before falling back to
 3035     lsb_release check in function SetOSVendorAndVersion (issues #1611, #731)
 3036 
 3037 -   Make BACKUP_URL=iso for mkrescue and mkbackuponly no longer fatal (issue
 3038     #1613)
 3039 
 3040 -   Add ntpdate support (issue #1608)
 3041 
 3042 -   Fix for XFS file system recreation code. In xfsprogs >= 4.7 log section
 3043     sunit=0 is considered invalid (issue #1603)
 3044 
 3045 -   Changed the macro fedora_release into fedora in the rear.spec file (issue
 3046     #1192 and bz1419512)
 3047 
 3048 -   Borg backup as back end now displays progress, when ReaR is launched in
 3049     verbose mode (issue #1594)
 3050 
 3051 -   Better MIGRATION_MODE autodetection (pull request #1593 related to issue
 3052     #1271)
 3053 
 3054 -   With the new config variable NON_FATAL_BINARIES_WITH_MISSING_LIBRARY the
 3055     user can specify what programs where the 'ldd' test reports 'not found'
 3056     libraries are non-fatal so that those programs in the recovery system do
 3057     not lead to an Error abort of "rear mkrescue/mkbackup". This is a generic
 3058     method so that the user can avoid issues in particular with third-party
 3059     backup tools that soemtimes have unexpected ways to use their specific
 3060     libraries like https://github.com/rear/rear/issues/1533 (for TSM) and
 3061     https://github.com/rear/rear/pull/1560 (for FDR/Upstream).
 3062 
 3063 -   Add a NSR_CLIENT_MODE to the backup method NSR (issue #1584)
 3064 
 3065 -   Let /bin/ldd detect *.so with relative paths (issue #1560)
 3066 
 3067 -   Add support for Bridge Interfaces(issue #1570). Usually, virtual
 3068     interfaces are skipped, but for Bridges to work, we consider Bridges as
 3069     physical interfaces, because the Bridge interface holds the IP address,
 3070     not the physical interface attached to the Bridge. This patch enables
 3071     those configurations:
 3072 
 3073     -   Bridge over simple Ethernet
 3074     -   Bridge over Bond
 3075     -   Bridge over Vlan interface
 3076 
 3077 -   Use UserInput in some more usual places to improve that 'rear recover' can
 3078     run unattended in migration mode (issues #1573, #1399)
 3079 
 3080 -   Error out for OUTPUT_URL=null together with OUTPUT=USB (issue #1571)
 3081 
 3082 -   Added/updated paths for FDR/Upstream 4.0 because FDR/Upstream 4.0 includes
 3083     changes to some file paths (issue #1559)
 3084 
 3085 -   Fix copying kernel modules when module aliases are present (issue #1567)
 3086 
 3087 -   Netbackup agents not automatically started on RHEL 7 (issue #1523)
 3088 
 3089 -   Forbid mkrescue and mkbackuponly for iso backup scheme (issues #1547,
 3090     #1548)
 3091 
 3092 -   Only support OpenSSH 3.1 and later for SSH setup (issue #1530)
 3093 
 3094 -   Implemented USB_DEVICE_FILESYSTEM_LABEL (issue #1535)
 3095 
 3096 -   Split network-functions.sh into DHCP setup and general ReaR functions
 3097     (issue #1517)
 3098 
 3099 -   Avoid leaking unprotected SSH private key files onto rescue medium (issues
 3100     #1512, #1513)
 3101 
 3102 -   Improve cryptographic security and user-friendliness for LUKS volumes
 3103     (issue #1493)
 3104 
 3105 -   Improve ReaR network migration (issues #1605, #1510, #1399)
 3106 
 3107 -   Improved encrypted password detection in 500_ssh.sh (issue #1503)
 3108 
 3109 -   Several code improvements in the way libraries are detected and copied
 3110     (issues #1521, #1502, #1494)
 3111 
 3112 -   Allow btrfsmountedsubvol to be excluded via EXCLUDE_RECREATE (issue #1497)
 3113 
 3114 -   Avoid recreation of non-existing btrfs subvolumes (issue #1496)
 3115 
 3116 -   Add automatically some important kernel parameters to KERNEL_CMDLINE
 3117     (issue #1495)
 3118 
 3119 -   Cleanup and simplified default input for the UserInput function (issue
 3120     #1498)
 3121 
 3122 -   Avoid systemd log messages about multiple disk partitions with identical
 3123     name that happened because ReaR used a static 'rear-noname' for originally
 3124     unnamed partitions. Original gpt disk partitions may be unnamed but parted
 3125     requires a name for each gpt partition. Now ReaR uses the basename of the
 3126     partition device path (e.g. sda1, sda2) for originally unnamed partitions
 3127     (issue #1483)
 3128 
 3129 -   Enhanced how the ssh user is copied into the recovery system and improved
 3130     detection of the ssh user (issue #1489)
 3131 
 3132 -   Use meaningful variable for automated UserInput. Enforce calling UserInput
 3133     with a UserInput ID so that automated UserInput is always possible for the
 3134     user. Use and enforce uppercase letters in UserInput IDs because the
 3135     resulting variable names are meant as user config variables (issue #1473)
 3136 
 3137 -   Fix UEFI tools integration (issues #1477, #1478)
 3138 
 3139 -   Added a new YUM backup method which will recreate the system by installing
 3140     it from scratch via installing RPM packages. The YUM backup method uses
 3141     the yum package manager in the same manner as the ZYPPER backup method
 3142     (issue #1464)
 3143 
 3144 -   BACKUP_PROG_OPTIONS used to be a string variable, turn it into an array
 3145     (issue #1475)
 3146 
 3147 -   Now CLONE_ALL_USERS_GROUPS always extends the CLONE_USERS and CLONE_GROUPS
 3148     arrays (issues #1471, #1464)
 3149 
 3150 -   PXE code improvements (issue #1466)
 3151 
 3152 -   Several improvements in the multipath code to allow full migration (issues
 3153     #1449, #1450)
 3154 
 3155 -   Several improvements on the TSM code (issues #1539, #1461, #1452)
 3156 
 3157 -   Activate btrfs filesystem creation with uuid. Recent btrfs version finally
 3158     added this option (issue #1463)
 3159 
 3160 -   By default a directories_permissions_owner_group file is created that
 3161     saves permissions, owner, and group of basic directories plus symbolic
 3162     link names and link targets of basic directories. Those basic directories
 3163     are the currently used mountpoints (except some unwanted "noise" from all
 3164     what there is mounted) plus the directories of the Filesystem Hierarchy
 3165     Standard (FHS) that actually exist on the system. Additionally with the
 3166     new DIRECTORIES_TO_CREATE array the user can now explicitly specify
 3167     directories and symlinks that are still missing in his particular
 3168     environment (issue #1459)
 3169 
 3170 -   Fix for cryptsetup hang on cryptsetup luksOpen ... when dmsetup is not
 3171     present in recovery system (issue #1458)
 3172 
 3173 -   Enhance MOUNTPOINTS_TO_RESTORE into DIRECTORIES_TO_CREATE (issue #1455)
 3174 
 3175 -   Several improvements for ppc64le/ppc64 arch. Systemd automatic serial
 3176     console detection, lilo and yaboot improvements (issue #1446, #1442)
 3177 
 3178 -   Introduction of UserInput in 300_map_disks.sh (issues 1399 and 1431)
 3179 
 3180 -   Adapt /etc/motd when 'rear recover' is running to avoid the additional
 3181     'Run rear recover to restore your system' message that only makes sense as
 3182     long as 'rear recover' was not ever started (issue 1433)
 3183 
 3184 -   SLES12 with btrfs but without snapshots failed to recreate/mount btrfs
 3185     FS/subvolumes during recovery (issue #1036)
 3186 
 3187 -   Adapt chrp-boot option when xorrisofs is used. Xorrisofs use
 3188     -chrp-boot-part option to generate PPC boot while mkisofs use -chrp (issue
 3189     #1430)
 3190 
 3191 Version 2.2 (July 2017)
 3192 
 3193 -   Let the get_disk_size() function retry several times to be more fail-safe
 3194     when udev needs some time until device files appear. This introduces the
 3195     new generic helper function retry_command() plus the new config variables
 3196     REAR_SLEEP_DELAY and REAR_MAX_RETRIES. For details see default.conf and
 3197     lib/layout-functions.sh (issue #1370)
 3198 
 3199 -   ReaR failed to continue due incorrect check of presence of USB device
 3200     (REAR-000) in /proc/mounts, despite foregoing script
 3201     (060_mount_NETFS_path.sh) did mounting of this device (issue #1415)
 3202 
 3203 -   Add missing privilege separation dir to start sshd on Debian 9 (issue
 3204     #1381)
 3205 
 3206 -   Redirect rsync verbose output to backup log (issue #1387)
 3207 
 3208 -   Load storage controllers in rescue system in same order as on host system
 3209     (issue #1384):
 3210 
 3211     -   Copy over modules from initrd on SUSE LINUX
 3212     -   Prevent sorting of MODULES_LOAD array to keep the order intended
 3213 
 3214 -   Add /yaboot to ISO_FILE when running SUSE ppc64 (issue #1414)
 3215 
 3216 -   Add SSL cert directories so we can interact with Google Cloud Storage
 3217     (issue #1402)
 3218 
 3219 -   Modified the "unattended" into "automatic" with ISO_DEFAULT required for
 3220     automated recovery tests (issue #1397)
 3221 
 3222 -   Use the original fds when ReaR was launched (which are now saved as fd6,
 3223     fd7, and fd8 for stdin, stdout, and stderr respectively) for actually
 3224     intended user input and user output. To keep backward compatible behaviour
 3225     all old deprecated usage of '>&8' is converted into '>/dev/null' but
 3226     /dev/null usage in general should be cleaned up later (issues #887, #1395)
 3227 
 3228 -   Added new generic UserInput and UserOutput plus LogUserOutput functions
 3229     that are intended to replace current user input functionality that calls
 3230     select or read directly. For the next ReaR version 2.3 it is planned to
 3231     also redirect stdout into the log file in addition to stderr (issues #885,
 3232     #1366, #1398, #1399)
 3233 
 3234 -   The 'make rpm' now relies on 'make srpm' which creates the src.rpm package
 3235     first. This src.rpm package can then be easily copied to another computer
 3236     to rebuild a rpm package from it without needed the sources itself (or git
 3237     checkout) (issue #1389)
 3238 
 3239 -   Replaced some perl regexp with grep native extended regexp (issue #1376)
 3240 
 3241 -   Introducing SECURE_BOOT_BOOTLOADER variable in default.conf. This variable
 3242     should enable users booting with Secure Boot, to use whatever custom
 3243     signed boot loader they like, and removes hard coded entry 'shim.efi' from
 3244     the ReaR code (issue #1374)
 3245 
 3246 -   Enhanced and cleaned up making ISO on POWER (ppc64/ppc64le). Now the
 3247     backup can be stored in the ISO (via BACKUP_URL=iso...) and even multiple
 3248     ISOs work on POWER now (issues #697, #1383)
 3249 
 3250 -   Create multipath.conf only during migration (from non-multipath to
 3251     multipath), and always copy /etc/multipath/bindings to the TARGET_FS_ROOT
 3252     (issues #1382, #1393)
 3253 
 3254 Version 2.1 (June 2017)
 3255 
 3256 -   Support for Grub2 installation with software RAID1 on Linux on POWER
 3257     (ppc64/ppc64le) (issue #1369)
 3258 
 3259 -   REBUILD_INITRAMFS variable was introduced. The new default.conf setting
 3260     REBUILD_INITRAMFS="yes" rebuilds the initramfs/initrd during "rear
 3261     recover" to be more on the safe side. With REBUILD_INITRAMFS="" the old
 3262     behaviour can still be specified (issue #1321)
 3263 
 3264 -   ISO_RECOVER_MODE=unattended mode (issue #1351) - required for automated
 3265     ReaR testing with OUTPUT=ISO
 3266 
 3267 -   MODULES variable supports now special values like 'all_modules',
 3268     'loaded_modules', 'no_modules' (issues #1202, #1355)
 3269 
 3270 -   Include systemd/network to preserve "Predictable Network Interface Names"
 3271     (issue #1349)
 3272 
 3273 -   Various improvements regarding multipath (issues #1190, #1309, #1310,
 3274     #1311, #1314, #1315, #1324, #1325, #1328, #1329, #1344, #1346)
 3275 
 3276 -   Show OUTPUT variables in rear dump (issue #1337)
 3277 
 3278 -   Added support for "grub PXE style" via PXE_CONFIG_GRUB_STYLE and
 3279     PXE_TFTP_IP on non x86 platform (issue #1339)
 3280 
 3281 -   Try 'wipefs -force' and use 'dd' as fallback to better clean up disk
 3282     partitions (issue #1327)
 3283 
 3284 -   Reorganized "finalize" scripts ordering and cleanup of the PPC bootloader
 3285     installation (issue #1323)
 3286 
 3287 -   Avoid long default wait in 'dig' when DNS servers are not set (issue
 3288     #1319)
 3289 
 3290 -   Fail-safe calculations in partitioning code (issues #1269, #1307)
 3291 
 3292 -   Improved support on ppc/ppc64/ppc64le architectures (issues #1178, #1311,
 3293     #1313, #1322)
 3294 
 3295 -   Define hostname in both /etc/HOSTNAME and /etc/hostname in rescue image
 3296     (for Arch) (issue #1316)
 3297 
 3298 -   Rename network interface when MAC not present in udev (issue #1312)
 3299 
 3300 -   Added support for 'nano' editor (in addition to 'vi') (issues #1298,
 3301     #1306)
 3302 
 3303 -   mmcblk disk types are now supported (issues #1301, #1302)
 3304 
 3305 -   NETFS_RESTORE_CAPABILITIES variable was introduced to restore file
 3306     capabilities in a proper way (issue #1283)
 3307 
 3308 -   Added required libs and files for 'curl' with HTTPs by default (issues
 3309     #1267, #1279)
 3310 
 3311 -   More precise XFS file system creation during rear recover (issues #1208,
 3312     #1213, #1276)
 3313 
 3314 -   DRLM management and security improvements (issue #1252)
 3315 
 3316 -   Improved BOOTLOADER support (issue #1242)
 3317 
 3318 -   DRLM support for multiple backups via multiple config files (issue #1229)
 3319 
 3320 -   FIRMWARE_FILES support to exclude firmware files in rescue image to reduce
 3321     the size of image (issue #1216)
 3322 
 3323 -   Enable SELinux in the rescue image for tar internal backup method if
 3324     BACKUP_SELINUX_DISABLE=0 (issue #1215)
 3325 
 3326 -   BOOT_OVER_SAN is now fully supported (issues #1190, #1309, #1314, #1315,
 3327     #1325, #1329, #1344)
 3328 
 3329 -   NVME disks are now fully supported (issue #1191)
 3330 
 3331 -   Some initial basic support for new backup type ZYPPER was added (issues
 3332     #1085, #1209)
 3333 
 3334 -   Finding UEFI boot loaders on non standard places (issues #1204, #1225,
 3335     #1293)
 3336 
 3337 -   The USB UEFI partition size USB_UEFI_PART_SIZE for kernel image has been
 3338     increased from 100 to 200 MB (issue #1205)
 3339 
 3340 -   REAR_INITRD_COMPRESSION variable was introduced to specify initrd
 3341     compression (e.g. 'lzma' for PPC64) (issues #1142, #1218, #1290)
 3342 
 3343 -   New backup type BLOCKCLONE was added to backup non-Linux partitions
 3344     (e.g. Windows NTFS partitions) (issues #1078, #1162, #1172, #1180)
 3345 
 3346 -   Bareos 16.2 is now supported (issue #1169)
 3347 
 3348 -   New USB_PARTITION_ALIGN_BLOCK_SIZE and USB_DEVICE_FILESYSTEM_PARAMS
 3349     variables were added (issue #1217)
 3350 
 3351 -   Improved the USB backup selection menu during the recovery via USB (issue
 3352     #1166)
 3353 
 3354 -   USB_SUFFIX variable was introduced to align backup on USB with backup on
 3355     NFS (issues #1164, #1160, #1145)
 3356 
 3357 -   Forbid incremental backup to work on BACKUP_URL=usb:// (issue #1146)
 3358 
 3359 -   The USB_DEVICE_PARTED_LABEL=gpt setting is now honered while formatting
 3360     the USB disk (issue #1153)
 3361 
 3362 Version 2.00 (January 2017)
 3363 
 3364 (Important Note) ReaR 2.00 introduced the 3-digits scripts instead of the
 3365 2-digits script. This means all scripts must begin with 3 digits,
 3366 e.g. 010-my-script.sh instead of 10-my-script. Therefore, if you wrote your
 3367 own scripts make sure to renumber these. You could also use the make validate
 3368 to check this.
 3369 
 3370 -   Bareos support: add missing directory /var/run/bareos in recovery system
 3371     (issue #1148)
 3372 
 3373 -   Forbid BACKUP_URL=usb for BACKUP_TYPE=incremental/differential (issues
 3374     #1141 and #1145)
 3375 
 3376 -   Improved and added new example configurations (issue #1068, #1058)
 3377 
 3378 -   Modified/Improved the exit code messages of ReaR (issues #1089, #1133)
 3379 
 3380 -   Fix documentation regarding OUTPUT_URL=null (issues #734, #1130)
 3381 
 3382 -   Better and fail safe progress messages while tar backup restore (issue
 3383     #1116)
 3384 
 3385 -   Implement simulation mode with simulation with the workflows validate and
 3386     shell (issue #1098)
 3387 
 3388 -   Update 11-multiple-backups.adoc: Multiple backups are in general not
 3389     supported for BACKUP_TYPE=incremental or BACKUP_TYPE=differential (issues
 3390     #1074 and #1123)
 3391 
 3392 -   Using RUNTIME_LOGFILE in all scripts as needed (issue #1119)
 3393 
 3394 -   New Backup method was added - BORG (issues #1030, #1037, #1046, #1048,
 3395     #1118)
 3396 
 3397 -   Multiple backups are now possible (issues #1088, #1102, #1096) - see the
 3398     documentation page
 3399     https://github.com/rear/rear/blob/master/doc/user-guide/11-multiple-backups.adoc
 3400     (New)
 3401 
 3402 -   Support partitioning and formatting huge USB devices (issue #1105)
 3403 
 3404 -   Skip remount async when systemd is used (issue #1097)
 3405 
 3406 -   Fixed and enhanced code for multiple ISOs (issue #1081)
 3407 
 3408 -   BACKUP_TYPE=incremental and BACKUP_TYPE=differential were updated (issues
 3409     #974, #1069)
 3410 
 3411 -   Added support for setting a UUID on XFS with enabled CRC (RHEL 7) (issue
 3412     #1065)
 3413 
 3414 -   Fix for ISO not bootable for SLES11 ppc64 with root LVM (issue #1061)
 3415 
 3416 -   PXE booting enhancement with new style of uploading the boot files (issue
 3417     #193)
 3418 
 3419 -   Renumbering the ReaR scripts from 2-digits to 3-digits (issue #1051)
 3420 
 3421 -   Improved boot loader detection (issue #1038)
 3422 
 3423 Version 1.19.0 (October 2016)
 3424 
 3425 -   Save bootloader info from POWER architecture and rebuild initrd after
 3426     migration (issues #1029, #1031)
 3427 
 3428 -   Improved documentation and man page in general (issues #918, #930, #1004,
 3429     #1007, #1008)
 3430 
 3431 -   New SLE12-SP2-btrfs-example.conf file because since SLES12-SP2 btrfs quota
 3432     setup for snapper via "snapper setup-quota" is needed (issue #999)
 3433 
 3434 -   Simplified reboot halt poweroff and shutdown in the rescue/recovery system
 3435     in case of systemd (issue #953)
 3436 
 3437 -   If TSM parameters contain a dot, the dot is replaced by an underscore in
 3438     the TSM_SYS variable names (issues #985 and #986)
 3439 
 3440 -   Check if /dev/disk/by-label/RELAXRECOVER exist (issues #979 and #326)
 3441 
 3442 -   Added PRE_BACKUP_SCRIPT and POST_BACKUP_SCRIPT to be able to do custom
 3443     tasks in the mkbackup/mkbackuponly workflows (issue #977)
 3444 
 3445 -   Make TMPDIR work in compliance with Unix standards (issue #969)
 3446 
 3447 -   USE_STATIC_NETWORKING now really overrides USE_DHCLIENT (issue #964)
 3448 
 3449 -   Make it safe against wrong btrfs subvolumes on SLES12 (issues #963, #966)
 3450 
 3451 -   Encrypted incremental backup cannot read the tar label (issue #952)
 3452 
 3453 -   Introduction of the NETWORKING_PREPARATION_COMMANDS variable to prepare
 3454     network setup in the rescue/recovery system (issue #960)
 3455 
 3456 -   After migration fs_uuid for root partition was not changed in ELILO config
 3457     file /etc/elilo.conf (issue #956)
 3458 
 3459 -   Clarified rear man page and default.conf file around BACKUP_URL=rsync:
 3460     (issues #930 and #918)
 3461 
 3462 -   Make "rear recover" work with default btrfs on SLES12-SP2 (issue #944)
 3463 
 3464 -   Dropped GRUB_SUPERUSER and GRUB_RESCUE_PASSWORD to avoid that GRUB_RESCUE
 3465     could change the behaviour of the GRUB2 bootloader in the currently
 3466     running system in unexpected ways. With the new optional GRUB_RESCUE_USER
 3467     setting GRUB_RESCUE works in compliance with the existing GRUB2
 3468     configuration (issues #938, #942)
 3469 
 3470 -   Bail out if not enough disk space for GRUB and GRUB2 rescue image (issue
 3471     #913)
 3472 
 3473 -   Use BACKUP_PROG_COMPRESS_OPTIONS as an array so that one can use it to
 3474     provide more complex values (issue #904)
 3475 
 3476 -   Add /usr/lib/syslinux/bios to the search path for mbr.bin (issue #908)
 3477 
 3478 -   Always load modules in /etc/modules (issue #905)
 3479 
 3480 -   Ask user for EFI partition size on USB disk (issue #849)
 3481 
 3482 -   Insure /etc/rear/mappings directory exists before doing a recovery (issue
 3483     #861)
 3484 
 3485 -   First steps for rescue/recovery system update support via
 3486     RECOVERY_UPDATE_URL (issue #841)
 3487 
 3488 -   NFS mount points are not recreated after a recover (issue #818)
 3489 
 3490 -   Correcting ReaR return code handling in auto recover mode (issue #893)
 3491 
 3492 -   Added NFSv4 support for security 'sys' only so far (issue #754)
 3493 
 3494 -   Changed the usage of 'rpcinfo -p' a bit to have the same outcome of
 3495     different Linux flavours (issue #889)
 3496 
 3497 -   RSYNC: /boot/efi needs -relative rsync option (issue #871)
 3498 
 3499 -   New variables added for Bareos: BAREOS_RESTORE_JOB and BAREOS_FILESET
 3500 
 3501 -   Multipath partition not found in rhel7.2 (issue #875)
 3502 
 3503 -   Adding support for ppc64le PowerNV (non-virtualized aka Bare-Metal) (issue
 3504     #863)
 3505 
 3506 -   First steps to support new ftpfs BACKUP_URL scheme (issue #845)
 3507 
 3508 -   Clean up 'url_host()' (issue #856)
 3509 
 3510 -   Fix that libaio (needed for multipath) could be missing in rescue/recovery
 3511     system because libaio can be located in different directories (issue #852)
 3512 
 3513 -   Improved the Relax-and-Recover menu for GRUB2 (issues #844, #849, #850)
 3514 
 3515 -   Check for valid BACKUP_URL schemes (issue #842)
 3516 
 3517 -   USB UEFI boot support (issue #831)
 3518 
 3519 -   Mitigate the problem that btrfs subvolums are not restored by default via
 3520     TSM (issue #833)
 3521 
 3522 -   Determine EFI virtual disk size automatically (issue #816)
 3523 
 3524 -   ebiso image size is too small if BACKUP=TSM (issue #811)
 3525 
 3526 -   Improving the logics around ebiso usage in UEFI mode (issue #801)
 3527 
 3528 -   Fix for wrong UUID in initrd for bootfs (issues #649 and #851)
 3529 
 3530 Version 1.18.0 (March 2016)
 3531 
 3532 -   Support was added for NVME SSD type of disk devices (issue #787)
 3533 
 3534 -   For LUKS added the password libraries (issue #679)
 3535 
 3536 -   Script 99_sysreqs.sh was added to save the minimal system requirements
 3537     necessary for cloning a system in a remote DRP data center (issue #798)
 3538 
 3539 -   New 99_move_away_restored_files.sh to remove restored files after recover
 3540     (issue #799) New array was introduced to make this -
 3541     BACKUP_RESTORE_MOVE_AWAY_FILES=()
 3542 
 3543 -   Improved 40-start-udev-or-load-modules.sh script for better udevd handling
 3544     (issue #766)
 3545 
 3546 -   Run ldconfig -X before dhclient gets started at boot time (issue #772)
 3547 
 3548 -   Remove the "-c3" option fron rsyslogd start-up (issue #773)
 3549 
 3550 -   Add example configuration for NetBackup Master/Media server
 3551 
 3552 -   Added backup capabilities; getcap and setcap are used to backup and
 3553     restore (issue #771)
 3554 
 3555 -   Correct bash syntax so ReaR is compatible with bash v3 and v4 (issue #765,
 3556     #767)
 3557 
 3558 -   Added support for new backup method Novastor NovaBACKUP DC (BACKUP=NBKDC)
 3559     (issue #669)
 3560 
 3561 -   Code was improved to have network teaming support (issue #655)
 3562 
 3563 -   Example configuration to put backup and rescue image on same ISO image,
 3564     eg. DVD (issue #430)
 3565 
 3566 -   Improved the ReaR documentation
 3567 
 3568 -   remove the noatime mount option for cifs mount (issue #752)
 3569 
 3570 -   Replace option 'grep -P' to 'grep -E' due to SELinux errors (issues #565,
 3571     #737)
 3572 
 3573 -   Hidding the encryption key while doing the restore in the rear.log (issue
 3574     #749)
 3575 
 3576 -   is_true function was to uniform the different ways of enable/disble
 3577     variable settings (issue #625)
 3578 
 3579 -   Added and use sysctl.conf; rescue mode should honor these settings (issue
 3580     #748)
 3581 
 3582 -   The BACKUP_PROG_COMPRESS variable was not used during incremental backup
 3583     (issue #743)
 3584 
 3585 -   prevent any other workflow in ReaR rescue mode then recover (issue #719)
 3586 
 3587 -   Exclude Oracle ASM device directory from Rescue System (issue #721)
 3588 
 3589 -   SaveBashFlagsAndOptions and RestoreBashFlagsAndOptions in
 3590     usr/share/rear/lib/framework-functions.sh were added (issue #700)
 3591 
 3592 -   /mnt/local became a global variable TARGET_FS_ROOT (issue #708)
 3593 
 3594 -   Copy rear.log from recovery into /var/log/rear/recovery/ directory after a
 3595     'rear recover' (issue #706)
 3596 
 3597 -   wipefs will be used when available (issue #649)
 3598 
 3599 -   SAN related improvements with btrfs (issue #695)
 3600 
 3601 -   Support for shim.efi (UEFI booting) added (issue #702)
 3602 
 3603 -   Added support for elilo (used by SLES 11/12) (issue #583, #691, #692,
 3604     #693)
 3605 
 3606 -   Added the -debugscripts command line option (help-workflow) (issue #688)
 3607 
 3608 -   Removed dosfslabel as required program for vfat UEFI boot partition (issue
 3609     #694)
 3610 
 3611 -   Bareos team added BAREOS_FILESET and ISO_DEFAULT to default.conf (for
 3612     automated DR tests executed by Bareos team; issues #686, #719)
 3613 
 3614 -   Fix getty/agetty with upstart (issue #685)
 3615 
 3616 -   New SLE11-SLE12-SAP-HANA-UEFI-example.conf (issue #683)
 3617 
 3618 -   usr/share/rear/conf/examples/SLE12-SP1-btrfs-example.conf added as an
 3619     example configuration file
 3620 
 3621 -   Added support for the SUSE specific gpt_sync_mbr partitioning scheme
 3622     (issue #544)
 3623 
 3624 -   Improved btrfs snapshot support with SLES 12 (issue #556)
 3625 
 3626 -   Unload scsi_debug driver in recovery mode for RHEL 7.1 (issue #626)
 3627 
 3628 -   Saved the current mount points and permissions; in order to improve and
 3629     avoid missing mount points after recovery (issue #619)
 3630 
 3631 -   NSR servername not defined causing ReaR to hang (issue #637)
 3632 
 3633 -   Removed mingetty as a required package (issue #661)
 3634 
 3635 -   Adding -scrollprompt=no to dsmc query in script
 3636     verify/TSM/default/40_verify_tsm.sh (issue #667)
 3637 
 3638 -   Fixed a bug around USB_DEVICE and OUTPUT_URL mis-match (issue #579)
 3639 
 3640 -   grub support for ppc64 (issue #673)
 3641 
 3642 -   grub2 supported was added for ppc64 (issue #672)
 3643 
 3644 -   ppc64le support was added into the rear.spec (issue #665)
 3645 
 3646 -   Network code partially rewritten to improve teaming (issue #662)
 3647 
 3648 -   Changed default value of USE_CFG2HTML from 1 to empty (means do not run
 3649     cfg2html by default) (issue #643)
 3650 
 3651 -   Move the 50_selinux_autorelabel.sh script to the default location so it
 3652     gets picked up by all backup methods. This was required for RHEL 7 (issue
 3653     #650)
 3654 
 3655 -   Check via NSR if the ISO image is not obsolete (issue #653)
 3656 
 3657 -   Added ebiso support within ReaR (required for UEFI booting with SLES 11 &
 3658     12 (issue #657)
 3659 
 3660 -   FDR/Upstream (BACKUP=FDRUPSTREAM) (New) (issue #659)
 3661 
 3662 Version 1.17.2 (August 2015)
 3663 
 3664 -   Several fixed required to the Debian packaging rules needed so it builds
 3665     correctly on OBS
 3666 
 3667 -   Fixed the NTP startup script (issue #641)
 3668 
 3669 -   Fixed the vfat label issue (issue #647)
 3670 
 3671 -   Improved the DUPLICITY method with finding all required libraries and
 3672     python scripts
 3673 
 3674 -   Added the /run directory to the list of recreating missing directories
 3675     (issue #619)
 3676 
 3677 -   Fix issue with USB disk and rsync as internal backup program (issue #645)
 3678 
 3679 -   Fix rsync restore: -anchored invalid rsync option (issue #642)
 3680 
 3681 -   A new variable was introduced NSR_POOLNAME (issue #640)
 3682 
 3683 -   Replaced almost all temporary files from /tmp/ to $TMP_DIR/ (issue #607)
 3684     Related to security recommendations for Fedora and RHEL:
 3685 
 3686     -   https://bugzilla.redhat.com/show_bug.cgi?id=1239009 (f22)
 3687     -   https://bugzilla.redhat.com/show_bug.cgi?id=1238843 (rhel 7.2)
 3688 
 3689 -   Move nfs-client from depends to recommends in Debian control file (issue
 3690     #633)
 3691 
 3692 -   In packaging/rpm/rear.spec replaced "BuildArch: noarch" with
 3693     "ExclusiveArch: %ix86 x86_64 ppc ppc64" that should tell the user that
 3694     ReaR is known to work only on %ix86 x86_64 ppc ppc64 and removed
 3695     "Requires: yaboot" for ppc ppc64 because that is the default installed
 3696     bootloader on ppc ppc64 (issues #629 and #631)
 3697 
 3698 -   Support the Oracle Linux 6 ksplice module (issue #605)
 3699 
 3700 -   In script 27_hpraid_layout.sh added the missing
 3701     HPSSACLI_BIN_INSTALLATION_DIR variable to the COPY_AS_IS array (issue
 3702     #630)
 3703 
 3704 -   Modified the packaging Makefile and rules for debian to fix the failing
 3705     OBS Debian builds (issue #604)
 3706 
 3707 -   Syslinux version > 5.00 is now supported (ISO and USB output) - works on
 3708     Debian 8, Ubuntu 15.04 (issue #624)
 3709 
 3710 -   Bail out when syslinux/modules are not found in
 3711     lib/bootloader-functions.sh (issues #467 and #596) You could also define a
 3712     variable SYSLINUX_MODULES_DIR if ReaR cannot find it automatically (should
 3713     not be necessary)
 3714 
 3715 -   Support was added for SLES11 on PPC64 hardware (issues #616 and #628)
 3716 
 3717 -   Support was added for new hardware - PPC64LE - RHEL and Ubuntu (issue
 3718     #627)
 3719 
 3720 -   FIX the hashed password (SSH_ROOT_PASSWORD variable) and added a missing
 3721     library libfreeblpriv3 (issue #560)
 3722 
 3723 -   Insert a 3 seconds sleep after a volume group restauration to give udevd
 3724     or systemd-udevd time to create needed devices (issue #608 and #617)
 3725 
 3726 -   Variable MANUAL_INCLUDE=YES has been introduced to work with array
 3727     BACKUP_PROG_INCLUDE (issue #597)
 3728 
 3729 -   Add new variable NSR_DEFAULT_POOL_NAME (defaulting to Default) to use a
 3730     different default pool name. Renamed the RETENTION_TIME variable to
 3731     NSR_RETENTION_TIME (issue #640)
 3732 
 3733 -   ReaR website shows the user guide which is part of the ReaR software
 3734     (linked to GitHub)
 3735 
 3736 -   new document 10-integrating-external-backup.adoc which explains the steps
 3737     to take for a new backup integration into ReaR
 3738 
 3739 -   All AsciiDoc documentation changed extention from .txt to .adoc
 3740 
 3741 Version 1.17.1 (June 2015)
 3742 
 3743 -   Removed the plain password in the logs (and output) coming from
 3744     BACKUP_PROG_CRYPT_KEY to avoid crib (issue #568)
 3745 
 3746 -   Mount vfat file system without special mount options seems to work much
 3747     better then with these options in recovery mode, therefore, we do not use
 3748     these anymore (especially for /boot/efi) (issue #576)
 3749 
 3750 -   Elilo support has been added for SLES (not fully tested yet) - issue #583
 3751 
 3752 -   Grub2 rescue menu has been added (enable this feature with
 3753     GRUB_RESCUE=y) - issue #589
 3754 
 3755 -   splitted script 31_include_uefi_tools.sh in two pieces:
 3756     31_include_uefi_tools.sh: to grab the UEFI tools (as long as /boot/efi is
 3757     mounted), and 32_include_uefi_env.sh: to dig deeper into the configuration
 3758     when UEFI is active (related to issue #214)
 3759 
 3760     This is necessary to have to UEFI tools on SLES 11/12 where we cannot
 3761     create an UEFI bootable ISO image. We must boot in BIOS mode, and need the
 3762     UEFI tools to make the system bootable over UEFI.
 3763 
 3764 -   It is now possible to format an USB disk with a vfat and ext3 partition
 3765     (for UEFI booting) - issue #593
 3766 
 3767     rear -v format -- --efi /dev/<usbdevice>
 3768 
 3769 -   Simplified the code for ext* fs and added StopIfError calls to prevent
 3770     divide by zero during recovery (issue #598)
 3771 
 3772 -   Syslinux version >6 requires some special handling due to splitting up the
 3773     package (Ubuntu 15.04) (issue #584)
 3774 
 3775 -   Debian 8 support added with ISO booting with latest syslinux release as
 3776     well (issues #596, #599 and #600)
 3777 
 3778 -   Changed the behavior of SSH_ROOT_PASSWORD - now saved as MD5 hash
 3779     password, but backwards compatibility is still respected (issue #560)
 3780 
 3781 -   For EMC NetWorker server/client we added some exclude items to
 3782     COPY_AS_IS_EXCLUDE_NSR (issue #571)
 3783 
 3784 -   Removed the Warning message from main usr/sbin/rear script as it was
 3785     misleading (issues #563 and #564)
 3786 
 3787 -   output/ISO/Linux-i386/80_create_isofs.sh: make sure ISO_FILES[@] are
 3788     copied to isofs directory (issue #569)
 3789 
 3790 System and Software Requirements
 3791 
 3792 Relax-and-Recover works on GNU/Linux kernel with version 2.6 and higher. For
 3793 lower kernel versions Relax-and-Recover cannot be used, and for these systems,
 3794 mkcdrec http://mkcdrec.sourceforge.net/ is still a good alternative.
 3795 
 3796 As Relax-and-Recover has been solely written in the bash language we need the
 3797 bash shell which is standard available on all GNU/Linux based systems. The
 3798 default backup program Relax-and-Recover uses is GNU/tar which is also
 3799 standard available.
 3800 
 3801 Relax-and-Recover is known to work well on x86, x86_64 and ppc64(le) based
 3802 architectures. Relax-and-Recover has also been ported to ia64 and arm
 3803 architectures, but these are less tested. Use the 'rear validate' command
 3804 after every successful DR test please and mail us the results.
 3805 
 3806 Choosing the best compression algorithm
 3807 
 3808 The default backup program with Relax-and-Recover is (BACKUP_PROG=tar) GNU tar
 3809 and the default compression used with tar is gzip. However, is using gzip the
 3810 best choice? We have done some tests and published the results. See
 3811 Relax-and-Recover compression tests
 3812 http://www.it3.be/2013/09/16/NETFS-compression-tests/
 3813 
 3814 Support
 3815 
 3816 Relax-and-Recover (ReaR) is an Open Source project under GPL v3 license which
 3817 means it is free to use and modify. However, the creators of ReaR have spend
 3818 many, many hours in development and support. We will only give free of charge
 3819 support in our free time (and when work/home balance allows it).
 3820 
 3821 That does not mean we let our user basis in the cold as we do deliver support
 3822 as a service (not free of charge).
 3823 
 3824 Supported and Unsupported Operating Systems
 3825 
 3826 We try to keep our wiki page Test Matrix ReaR 2.7
 3827 https://github.com/rear/rear/wiki/Test-Matrix-ReaR-2.7
 3828 up-to-date with feedback we receive from the community.
 3829 
 3830 ReaR 2.7 is supported on the following Linux based operating systems:
 3831 
 3832 -   Fedora 29, 30, 31, 32, 33, and 34
 3833 -   RHEL 6, 7, 8, and 9
 3834 -   CentOS 6, 7, and 8
 3835 -   Scientific Linux 6 and 7
 3836 -   SLES 12 and 15
 3837 -   openSUSE Leap 15.x
 3838 -   Debian 8, and 9
 3839 -   Ubuntu 16, 17, and 18
 3840 
 3841 ReaR 2.7 dropped official support for the following Linux based operating
 3842 systems:
 3843 
 3844 -   Fedora < 29
 3845 -   RHEL < 6
 3846 -   CentOS < 6
 3847 -   Scientific Linux < 6
 3848 -   SLES < 12
 3849 -   openSUSE Leap 42.x and before (i.e. openSUSE <= 13)
 3850 -   openSUSE Tumbleweed
 3851 -   Debian < 8
 3852 -   Ubuntu < 16
 3853 
 3854 Usually ReaR 2.7 should also work on newer versions of the above listed
 3855 supported Linux based operating systems but sometimes arbitrary failures can
 3856 happen when software that is used by ReaR (like partitioning tools, filesystem
 3857 tools, bootloader tools, ISO image creating tools, networking tools, and so
 3858 on) changes in not fully backward compatible ways or when there are
 3859 innovations of the basic system (like kernel, storage, bootloader, init,
 3860 networking, and so on) that are not yet supported by ReaR.
 3861 
 3862 In theory ReaR 2.7 should work on openSUSE Tumbleweed but in practice
 3863 arbitrary failures could happen at any time because the Tumbleweed
 3864 distribution is a pure rolling release version of openSUSE containing the
 3865 latest stable versions of all software
 3866 (cf. https://en.opensuse.org/Portal:Tumbleweed) so arbitrary changes of any
 3867 software are possible at any time that could arbitrarily break how ReaR works.
 3868 
 3869 ReaR 2.7 may still work for SLES 11 and openSUSE Leap 42.x or even earlier
 3870 openSUSE versions but it is no longer sufficiently well tested there so
 3871 arbitrary regressions could appear. For example recreating LUKS encrypted volumes
 3872 does no longer work with SLES11 SP4 because cryptsetup 1.1.3 in SLES11 SP4 does
 3873 not support UUID and some other cryptsetup options that are used by default in ReaR 2.7.
 3874 
 3875 ReaR 2.7 and earlier versions are known to no longer work reasonably well for
 3876 the following Linux based operating systems:
 3877 
 3878 -   RHEL 5 (and probably also CentOS 5): See issue #1766
 3879 -   SLES 9 and 10: See issue #1842
 3880 
 3881 If you require support for unsupported Linux operating systems you must
 3882 acquire a ReaR support contract.
 3883 
 3884 Requests to port ReaR to another operating system (not Linux) can only be
 3885 achieved with serious sponsoring.
 3886 
 3887 Supported and Unsupported Architectures
 3888 
 3889 ReaR 2.7 is supported on:
 3890 
 3891 -   Intel x86 type of processors
 3892 -   AMD x86 type of processors
 3893 -   PPC64 processors
 3894 -   PPC64LE processors
 3895 
 3896 ReaR 2.7 may or may not work on:
 3897 
 3898 -   Intel Itanium processors
 3899 -   ARM type of processors
 3900 -   IBM Z "s390x" type of processors
 3901 
 3902 ReaR 2.7 does not support:
 3903 
 3904 -   old PPC (32bit) processors
 3905 
 3906 If you feel the need to get a fully functional ReaR working on one of the
 3907 above mentioned types of processors please buy consultancy from one of our
 3908 official developers.
 3909 
 3910 Supported ReaR versions
 3911 
 3912 ReaR has a long history (since 2006) and we cannot support all released
 3913 versions. If you have a problem we urge you to install the latest stable ReaR
 3914 version or the development version (available on GitHub) before submitting an
 3915 issue.
 3916 
 3917 We understand that it is not always possible to install on hundreds of systems
 3918 the latest version so we are willing to support previous versions of ReaR when
 3919 you buy a support contract. We cannot handle the big amount of support
 3920 requests anymore on a voluntary base and we must give paid projects priority,
 3921 therefore, we urge our customers to buy a support contract for one or more
 3922 systems. You buy time with our core developers.
 3923 
 3924 Known Problems and Workarounds
 3925 
 3926 Issue Description: 'rear' package on Ubuntu 14.04 depends on isolinux package
 3927 (which does not exist)
 3928 
 3929 -   Workaround:
 3930 
 3931 Read the comments in https://github.com/rear/rear/issues/1403
 3932 
 3933 Issue Description: tar -test-label is not supported on Centos 5 who have tar
 3934 version 1.15
 3935 
 3936 -   Workaround:
 3937 
 3938 Read the comments in https://github.com/rear/rear/issues/1014
 3939 
 3940 Issue Description: BACKUP=NSR on RHEL 6 could break yum
 3941 
 3942 https://github.com/rear/rear/issues/387
 3943 describes a problem seen on RHEL 6 where when rear uses NSR and
 3944 afterwards the link /lib64/libexpat.so.1 has been changed.
 3945 
 3946 -   Workaround:
 3947 
 3948 So far there is no workaround for this issue.
 3949 
 3950 Issue Description: usage of an alternative configuration directory is
 3951 different in mkbackup or recover mode
 3952 
 3953 Using rear -v -c /etc/rear/mydir mkbackup works fine in production, but when
 3954 you try (once booted from rescue image) rear -v -c /etc/rear/mydir recover it
 3955 will fail.
 3956 
 3957 -   Workaround:
 3958 
 3959 The configuration files are copied to /etc/rear/ into the rescue image, so you
 3960 need to type: rear -v recover See issue #512
 3961 
 3962 Issue Description: Is there a possibility to add btrfs subvolume to a rsync
 3963 backup
 3964 
 3965 -   Workaround:
 3966 
 3967 At present (release 1.18) there is no workaround in place. If you happen to
 3968 know how this could be fixed then add your ideas to
 3969 https://github.com/rear/rear/issues/417
 3970 
 3971 Issue Description: UEFI ISO booting does not work on openSUSE 12.x, or SLES
 3972 11/12
 3973 
 3974 -   Workaround:
 3975 
 3976 At present (release 1.18.x and higher) genisoimage cannot produce ISO images
 3977 that can boot via UEFI on an openSUSE distribution (and also SLES). However,
 3978 use the ebiso package
 3979 http://download.opensuse.org/repositories/Archiving:/Backup:/Rear/SLE_11_SP3/x86_64/ebiso-0.2.3-1.x86_64.rpm
 3980 instead to create UEFI ISO images on SLES.
 3981 
 3982 Issue Description: System reconfiguration still has some weaknesses.
 3983 
 3984 -   this has to be tested before relying on it, there are too many unknowns
 3985     involved so that we cannot guarantee anything in this area. It has been
 3986     developed mostly as a P2V tool to migrate HP servers to VMware Vms
 3987 
 3988 -   hard disks need to be at least of the same size and amount as in the
 3989     original system, ATM this is a simple 1:1 mapping of old to new disks,
 3990     there is no removal of RAID groups or merging of smaller disks onto a
 3991     bigger one or making stuff smaller.
 3992 
 3993 -   any use of /dev/disk/by-path or /dev/disk/by-id is untested and will most
 3994     likely not work. In some cases Relax-and-Recover will print a warning, but
 3995     we are not able to detect all cases. Typically this leads to unbootable
 3996     systems or bad /etc/fstab files
 3997 
 3998 Issue Description: If SELinux is not disabled during backup (variable
 3999 BACKUP_SELINUX_DISABLE= in /etc/rear/local.conf) then we might see errors in
 4000 the rear-$(hostname).log file such as:
 4001 
 4002     tar: var/cache/yum/i386/15/updates/packages: Cannot setfilecon: No such file or directory
 4003 
 4004 -   Workaround:
 4005 
 4006 Make sure the BACKUP_URL destination understands extended attributes (CIFS is
 4007 out of the question and NFS is problematic). When using local disks (or
 4008 external USB devices) make sure the proper mount options are given in the
 4009 BACKUP_OPTIONS variable, e.g.:
 4010 
 4011     BACKUP_OPTIONS="rw,relatime,seclabel,user_xattr,acl,barrier=1,data=ordered"
 4012 
 4013 (TIP) BACKUP_SELINUX_DISABLE=1 variable has been introduced in the
 4014 /usr/share/rear/conf/default.conf file to disable SELinux while the backup is
 4015 running (default setting).
 4016 
 4017 Issue Description: ERROR: FindStorageDrivers called but STORAGE_DRIVERS is
 4018 empty
 4019 
 4020 Above error message might be seen after a fresh installation of the GNU/Linux
 4021 kernel. ReaR got confused between the running kernel version number and the
 4022 actual fresh kernel available.
 4023 
 4024 -   Workaround:
 4025 
 4026 Reboot your server before using ReaR again, which is a good practice anyway
 4027 after upgrading the GNU/Linux kernel.
 4028