[solved] Relax and Recover - D12 <2GB Error and lib not found

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

[solved] Relax and Recover - D12 <2GB Error and lib not found

Beitrag von speefak » 19.07.2023 12:47:57

Moin,

ich habe gerade beim Erstellen eines Systembackups unter Debian 12 festgestellt, dass es eine Option im mkisofs/genimage eine Fehler verusacht :

Code: Alles auswählen

ERROR: File for ISO backup.tar.gz size 2671542173 greater or equal ISO_FILE_SIZE_LIMIT=2147483648
Some latest log messages since the last called script 820_create_iso_image.sh:
  2023-07-19 12:10:10.389758269 Starting '/usr/bin/xorrisofs'
  2023-07-19 12:10:10.394528704 Making ISO image
Some messages from /var/tmp/rear.pHxSv5mxVHG3Yie/tmp/rear.mkbackup.stdout_stderr since the last called script 820_create_iso_image.sh:
  67396
  962
  2046
  7977184
  38912
  26744
  5203318
  2671542173
Use debug mode '-d' for some debug messages or debugscript mode '-D' for full debug messages with 'set -x' output
Aborting due to an error, check /var/log/rear/rear-blackbox-cli.log for details
Exiting rear mkbackup (PID 97068) and its descendant processes ...
Running exit tasks
Beendet
xorriso weist lt. Netz diese Beschränkung nicht auf. Daraufhin habe ich via "$:/usr/bin# ln -s xorriso genisoimage" genisoimage gegen xorriso getauscht ( 2023-07-19 12:10:10.389758269 Starting '/usr/bin/xorrisofs' ) - allerdings auch ohne Erfolg.

Bevor ich nun per try and error mein neues System zerschieße weis vllt. jmd wie der o.g. Fehler einfach zu beheben ist ( z.B. mkisofs default config => abschalten des Dateigrößenchecks ) ?

Davon hat leider auch nicht funktioniert : https://bugzilla.redhat.com/show_bug.cgi?id=1462189

Filesizegröße in der rear config ändern bringt auch nichts : sed -i 's/ISO_FILE_SIZE_LIMIT=.*/ISO_FILE_SIZE_LIMIT=10147483648/g' /usr/share/rear/conf/default.conf
=> http://lists.relax-and-recover.org/pipe ... 02437.html



Lösungen :
- Fehler: libsystemd-shared-252.so => not found => Lösung => viewtopic.php?t=187376#p1332778
- Fehler tar Archiv < 2GB => viewtopic.php?p=1333045#p1333045 ( ggf. viewtopic.php?t=187376#p1333012 )
- Relay and Recover Mod Skript => https://github.com/speefak/rear-backup
Zuletzt geändert von speefak am 21.07.2023 17:19:19, insgesamt 9-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von MSfree » 19.07.2023 13:34:17

speefak hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 12:47:57
Filesizegröße in der rear config ändern bringt auch nichts : sed -i 's/ISO_FILE_SIZE_LIMIT=.*/ISO_FILE_SIZE_LIMIT=10147483648/g' /usr/share/rear/conf/default.conf
Die maximale Dateigröße auf einem ISO9660-Dateisystem darf 4.294.967.296 Bytes sein. 10TiB ist also sowieso unzulässig.

Allerdings beschränken die meisten Programme zum Erstellen von ISO9660-Datesystemen die Größe auf die Hälfte (2.147.483.648 Bytes).

Schonmal über UDF statt ISO9660 nachgedacht? Das hat viele der Beschränkungen nicht.

Benutzeravatar
cosinus
Beiträge: 3441
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von cosinus » 19.07.2023 13:34:59

Wieso muss denn das Backup in eine ISO-Datei gegossen werden?
Mit xorriso erstelle ich wenn ich das denn mal brauche so eine ISO-Datei:

Code: Alles auswählen

xorrisofs -J -r -V $LABEL -o $output_isofile $datei

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 13:47:35

cosinus hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 13:34:59
Wieso muss denn das Backup in eine ISO-Datei gegossen werden?
Mit xorriso erstelle ich wenn ich das denn mal brauche so eine ISO-Datei:

Code: Alles auswählen

xorrisofs -J -r -V $LABEL -o $output_isofile $datei
Weil ich ein default System aus einer VM so recht einfach als bootbares iso auf einen USB Stick packen kann. Den kann ich dann an DAUs verschicken und die stecken den Stick in den Rechner und müssen nur noch warten. Nach ein paar Minuten ist das fertige System dann installiert. Das geht zwar auch alles mit Live CD, dd und co.. Mit rear kann ich die VM aktualisieren, eine iso erstellen und wenn nötig die ISO auf ein Stick packen.

Ist UDF bootfähig oder nur iso9660 ?

Was mich wundert : Ich habe unter Debian 10 ein bootfähiges ISO mit 4,7 GB erstellen können ?!

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von MSfree » 19.07.2023 13:53:19

speefak hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 13:47:35
Ist UDF bootfähig oder nur iso9660 ?
Ja.
Was mich wundert : Ich habe unter Debian 10 ein bootfähiges ISO mit 4,7 GB erstellen können ?!
ISO9660 ist ein Dateisystem, das bis zu 8TiB groß werden darf. Jede einzelne Datei in diesem Dateisystem ist bei ISO9660 aber auf (eigentlich) 4TiB, meist aber auf 2TiB begrenzt.

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 14:32:20

Mit den Archiven komme ich nicht weiter. Ich weis auch nicht wo ich von den Configs noch ansetzen sollte :roll:

Den Fehler

Code: Alles auswählen

/usr/lib/x86_64-linux-gnu/systemd/libsystemd-core-252.so requires additional libraries
	libsystemd-shared-252.so => not found
konnte ich beheben :

Code: Alles auswählen

sudo su
echo "/usr/lib/x86_64-linux-gnu/systemd" > "/etc/ld.so.conf.d/libsystemd-core.conf"
ldconfig
=> https://github.com/rear/rear/issues/3021

PS : ich werde versuchen das tar image von rear backup zu >2G Dateien zu spliten ...

Benutzeravatar
cosinus
Beiträge: 3441
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von cosinus » 19.07.2023 14:34:18

MSfree hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 13:34:17
10TiB ist also sowieso unzulässig.
Wie kommst du denn auf 10 TiB? Die Angabe ist doch in Bytes wenn keine Einheit danach steht? :|

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von JTH » 19.07.2023 14:37:49

cosinus hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 14:34:18
Wie kommst du denn auf 10 TiB? Die Angabe ist doch in Bytes wenn keine Einheit danach steht?
Und ein großes B ist doch üblicherweise das Kürzel für Bytes. Oder worüber genau stolperst du? (Schon wieder Verwirrung durch uneinheitliche Einheiten :wink:)
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 14:58:36

Ich bin z.Z. bei Try and Error und habe nun alles erdenkliche versucht.

- ISO Größe einschränken erzeugt mehrere iso Datein => nicht praktikabel für mich

- cat /usr/share/rear/prep/ISO/GNU/Linux/320_verify_mkisofs.sh :
# For ebiso the ISO_FILE_SIZE_LIMIT test must not be skipped with ISO_FILE_SIZE_LIMIT=0
# because it would be disastrous when e.g. a backup.tar.gz in the ISO becomes bigger than 2GiB
# that gets corrupted in the ISO so the backup is lost and restore via "rear recover" cannot work:
is_positive_integer $ISO_FILE_SIZE_LIMIT || Error "ebiso has a 2GiB file size limit but ISO_FILE_SIZE_LIMIT is not set accordingly"
# 2 GiB = 2 * 1024 * 1024 * 1024 bytes = 2147483648 bytes:
test $ISO_FILE_SIZE_LIMIT -le 2147483648 || Error "ebiso has a 2GiB file size limit but ISO_FILE_SIZE_LIMIT is greater than 2GiB"
Schade damit ist Realax an recover dann wohl raus :oops: :evil: :twisted: Es war so ein geniales tool für o.g. Zwecke, aber wenn durch die Verwendung von ebiso mit den 2 GB Einschränkungen jetzt nur noch max 2 GB bzw. 1,7 nach Abzug der 250mb iso boot Dateien als Backarchiv möglich sind, ist realex and recover de facto nicht mehr nutzbar :roll:

Was mich nur verwundert : Unter Debian 10 lief alles super, bootbare ISO Datein mit 7 GB +X? waren gar kein Problem. Ich weis nicht was geändert wurde. Lt. Anleitungen im Netz gibt es Lösungen, die aber wohl nur unter RHEL aber nicht unter Debian funktionieren :oops: . Es wird wohl an "ebiso" "mkisofs" oder "genisoimage" liegen und lt. Netz kann die genisoimage/mkisofs Beschränkung mit "xorriso" behoben werden da xorriso diese 2 GB Einschränkungen wohl nicht habr. Aber Xorriso wiederrum wird zwar von rear verwendet aber eine Zeile später bricht rear dann mit der Meldung "Image über 2GB groß" ab.

Ich gebs auf (für heute ) und suche eine andere Möglichkeit ... zur Not wieder mit DD , 32 GB USB Sticks und LiveCD/Anydesk *GRML!!!!!
Zuletzt geändert von speefak am 19.07.2023 15:10:18, insgesamt 1-mal geändert.

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von MSfree » 19.07.2023 15:00:58

cosinus hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 14:34:18
Wie kommst du denn auf 10 TiB?
Das hätten GiB sein sollen. Habe wohl auf der Tastatur eine Zeile zu weit oben angeschlagen. :P

Benutzeravatar
cosinus
Beiträge: 3441
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von cosinus » 19.07.2023 15:05:51

JTH hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 14:37:49
Und ein großes B ist doch üblicherweise das Kürzel für Bytes. Oder worüber genau stolperst du? (Schon wieder Verwirrung durch uneinheitliche Einheiten :wink:)
Das hier:

Code: Alles auswählen

ISO_FILE_SIZE_LIMIT=10147483648
Damit ist doch 10.147 GB gemeint also ca. 9.45 GiB - oder nicht? :P

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 15:11:39

ob nun 10 oder 4 als GB oder GIB - Es ist beides über 2 GB und verursacht immer die gleichen Fehler - es ist zum *kotzsmily

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 15:16:05

/usr/share/rear/output/ISO/Linux-i386/820_create_iso_image.sh

Code: Alles auswählen

# ebiso uses different command line options and parameters:
if test "ebiso" = $( basename $ISO_MKISOFS_BIN ) ; then
    # ebiso currently works only with UEFI:
    if is_true $USING_UEFI_BOOTLOADER ; then
        $ISO_MKISOFS_BIN $ISO_MKISOFS_OPTS -R -o $ISO_DIR/$ISO_PREFIX.iso -e boot/efiboot.img .
    else
        Error "$ISO_MKISOFS_BIN works only with UEFI"
    fi
else
    $ISO_MKISOFS_BIN $v $ISO_MKISOFS_OPTS -o "$ISO_DIR/$ISO_PREFIX.iso" \
        -b isolinux/isolinux.bin -c isolinux/boot.cat \
        -no-emul-boot -boot-load-size 4 -boot-info-table \
        -R -J -volid "$ISO_VOLID" $EFIBOOT -v -iso-level 3 .  >/dev/null
        ##-R -J -volid "$ISO_VOLID" $EFIBOOT  "${ISO_FILES[@]}"  >/dev/null
fi
Das beudetet es kann nicht an ebiso liegen, denn ebiso ist hier gar nicht installiert und lt. code ist für ebiso der fallback "$ISO_MKISOFS_BIN" - ist das nun genisoimage oder mkisofs oder xorriso ? Ich blick da nicht mehr durch :roll: :roll: :roll:

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 15:27:23

Die Dateigrößenprüfung findet in der Datei "/usr/share/rear/lib/output-functions.sh " statt.

Code: Alles auswählen

function assert_ISO_FILE_SIZE_LIMIT () {
    # Skip when there is no usable ISO_FILE_SIZE_LIMIT set (in particular for ISO_FILE_SIZE_LIMIT=0):
    is_positive_integer $ISO_FILE_SIZE_LIMIT || return 0
    local file_for_iso file_for_iso_size
    for file_for_iso in "$@" ; do
        file_for_iso_size=$( stat -L -c '%s' $file_for_iso )
        # Continue "bona fide" with testing the next one if size could not be determined (assume the current one is OK):
        is_positive_integer $file_for_iso_size || continue
        # Continue testing the next one when this one is below the file size limit:
        test $file_for_iso_size -lt $ISO_FILE_SIZE_LIMIT && continue
        # Show only basename to avoid the meaningless ReaR-internal path where files for the ISO are (temporarily) located:
        
continue  # <<<<<<<<<<<<< überspint die Fehlermelsung und programm exit

        Error "File for ISO $( basename $file_for_iso ) size $file_for_iso_size greater or equal ISO_FILE_SIZE_LIMIT=$ISO_FILE_SIZE_LIMIT"
    done
}
Mit der Änderung läuft rear sauber durch.


WTF !!! => mktemp: failed to create file via template '/home/rear_tmp/tmp.XXXXXXXXXXX ( beim recover )

Fazit Relay and Recover ist in der 2.7ner Version total verbugt ( zumindest unter Debian 12 ) und wie schon gesagt so nicht mehr nutzbar :oops: :evil: :twisted:
Zuletzt geändert von speefak am 19.07.2023 15:40:23, insgesamt 1-mal geändert.

Benutzeravatar
cosinus
Beiträge: 3441
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von cosinus » 19.07.2023 15:39:23

Also mit xorrisofs kannst du Dateien bis max. 4 GB ins ISO packen.

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 15:41:42

ja ich weis , aber ich weis nicht wie das mit rear ans laufe bekommen und ob das der einzige Fehler ist ( s.o. beim recover )

die option TMPDIR= in der /etc/rear/rear.local funktioniert nicht richtig => beim recover wird unter $TMPDIR eine datei erwarte die nicht existent ist ( partition template oder so )

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von speefak » 19.07.2023 16:04:44

cosinus hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 15:39:23
Also mit xorrisofs kannst du Dateien bis max. 4 GB ins ISO packen.
4,7 GB ( 4.5 GB Backuparchiv) war das Maximum was ich unter D10 hatte. Es scheint nun zu klappen, nachdem der Größen check der ISO in der "/usr/share/rear/lib/output-functions.sh" mit "continue" übersprungen wird

EDIT 4.5 GB Scheint die max Archivgröße zu sein um es noch auf eine ISO zu bekommen.

scdbackup
Beiträge: 59
Registriert: 15.10.2011 11:11:51

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von scdbackup » 19.07.2023 18:58:31

Hi,

speefak schrieb:
> ERROR: File for ISO backup.tar.gz size 2671542173 greater or equal ISO_FILE_SIZE_LIMIT=2147483648

Das ist offenbar das uralte Limit von 2 GiB - 1 fuer den "long" Datentyp
auf 32-Bit-Systemen. Das war vor 20 Jahren ein Problem fuer Linux, weil
Funktionen wie fseek(3) desen Typ zum addressieren verwenden.

MSFree schrieb:
> Die maximale Dateigröße auf einem ISO9660-Dateisystem darf
> 4.294.967.296 Bytes sein.

4 GiB - 1 ist die Maximalgroesse fuer einen einzelnen Datenfile in
ISO 9660 mit "Level of Interchange" 1 oder 2.
mkisofs/xorrisofs Option

Code: Alles auswählen

-iso-level 3
gibt die Groesse frei bis knapp 8 TiB (2 hoch 32 mal 2048). Allerdings
enthaelt xorriso per Default eine Sperre bei 400 GiB. Man muss auch damit
rechnen, dass nicht alle Betriebssysteme Files mit 4 GiB oder mehr aus
ISO 9660 lesen koennen. Linux und MS-Windows koennen es.

xorriso hat ein Limit von 4 TiB - 2 KiB bei der Gesamtgroesse des ISO 9660
Filesystems weil es seine Ausgabe durch libburn schleust und bei deren
Design niemand daran gedacht hat, dass vorzeichenlose Blockadressen
noetig waeren.

Have a nice day :)

Thomas

Benutzeravatar
cosinus
Beiträge: 3441
Registriert: 08.02.2016 13:44:11
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Bremen

Re: Debian 12 - rear - mkisofs Fehler

Beitrag von cosinus » 19.07.2023 23:58:31

speefak hat geschrieben: ↑ zum Beitrag ↑
19.07.2023 16:04:44
4,7 GB ( 4.5 GB Backuparchiv) war das Maximum was ich unter D10 hatte.
Hmm..mit xorrisofs bekomm ich ne Fehlermeldung bei einer Datei mit 4 GiB oder mehr.

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von speefak » 20.07.2023 13:22:30

Danke an scdbackup für die ausführliche Erklärung :THX:

Ich frage mich nur warum beim Debian 12 diese Uraltlasten wieder zum tragen kommen ?! Unter D10 habe ich ein Backupfile von 4,5 GB + ISO boot Datein = 4,7 GB.
(s. gallery/image/4144)

Wenn ich in der rear config xorriso als "isotool" angebe passt irgendwas mit der Syntax wieder nicht. xorriso/rear Fehler: unknown argument "-isolevel" "3" "."

Ich habe es aktuell am Laufen - mit genisoimage geht es bis 4GB. Eine weitere Änderung gegenüber rear auf D10: Die Option "export TMPDIR=/PATH/" erzeugt beim Recover ein Fehler: "Datei /PATH/rear.XXXXXXXX " nicht gefunden ( nach dem Mapping der Netzwerkkarten ).

Benutzeravatar
MSfree
Beiträge: 10777
Registriert: 25.09.2007 19:59:30

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von MSfree » 20.07.2023 14:02:06

speefak hat geschrieben: ↑ zum Beitrag ↑
20.07.2023 13:22:30
Ich frage mich nur warum beim Debian 12 diese Uraltlasten wieder zum tragen kommen ?! Unter D10 habe ich ein Backupfile von 4,5 GB + ISO boot Datein = 4,7 GB.
Nochmal, es geht nicht um die Größe des ISO-Dateisystems, denn das darf bis zu 8 TiB große werden. 4.7 GB sind da noch weit drunter.

Es geht darum, daß eine einzelne Datei in dem ISO nicht größer als 4 GiB werden darf. Das ist auch keine Altlast sondern per Definition so, ISO kann nichtmehr als 4GB pro Datei. Du kannst problemlos aus 20 2GB-Dateien ein ISO mit 20GB Gesamtgröße bauen. Es ist aber nicht möglich, ein ISO aus 8 5GB-Dateien zu bauen.

Wenn das bei dir jemals geklappt haben sollte, ist die 4.5GB-Datei auf jeden Fall korrupt und nicht lesbar.

scdbackup
Beiträge: 59
Registriert: 15.10.2011 11:11:51

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von scdbackup » 20.07.2023 14:58:33

Hi,

speefak schrieb:
> xorriso/rear Fehler: unknown argument "-isolevel" "3" "."

Da fehlt der Bindestrich zwischen "iso" und "level".

Bei mir kommt allerdings eine andere Fehlermeldung:

Code: Alles auswählen

$ xorrisofs -isolevel 3
...
xorriso : FAILURE : -as genisofs: Unrecognized option '-isolevel'
xorriso : aborting : -abort_on 'FAILURE' encountered 'FAILURE'
Es kann also sein, dass bei Dir schon vor dem Lauf von
mkisofs/xorrisofs/genisoimage gemeckert und abgelehnt wird.
Ich finde allerdings auch keine passende Codestelle mit
https://codesearch.debian.net/search?q= ... &literal=0

Interessant ist, dass "-iso-level 3" an einigen Stellen im Code vorkommt:
https://codesearch.debian.net/search?q= ... &literal=0
Es gibt zB. Erklaerungen zur Filegroesse:
https://sources.debian.org/src/rear/2.7 ... l=856#L856
und die Behauptung, dass "Linux-i386" mit -iso-level 3 arbeitet, "Linux-ia64"
aber nicht:
https://sources.debian.org/src/rear/2.7 ... ?hl=57#L52
(Du wirst doch nicht etwa einen Itanium-Rechner haben ?)

cosinus schrieb:
> Hmm..mit xorrisofs bekomm ich ne Fehlermeldung bei einer Datei mit 4 GiB
> oder mehr.

Ohne -iso-level 3 soll das auch so sein.
Man kann als Motivation vermuten, dass selbst Linux in der 2.4-Aera
Probleme mit grossen Files in ISO 9660 hatte - mal ganz abgesehen vom
2-GiB-Problem, das noch ein bisschen aelter ist. Es ist also ein Hinweis
mit dem Holzhammer an den Anwender, dass er sich ueberlegen muss, ob das
Zielbetriebssystem mit 4 GiB klarkommt.

xorriso ist ein bisschen juenger (2007) und erlaubt in seinem eigenen
Kommandomodus Level 3 per Grundeinstellung. Aber die "-as mkisofs" Emulation
soll halt so gut es geht das Verhalten von mkisofs nachbilden. Das schliesst
auch die eher antiken Grundeinstellungen ein.
(Nur Rock Ridge muss man bei xorrisofs ausdruecklich abschalten, wenn man
es den partout nicht haben will.)

MSfree schrieb:
> ISO kann nichtmehr als 4GB pro Datei.

Doch, kann es. Ich zitiere mal https://de.wikipedia.org/wiki/ISO_9660
"ISO 9660-Level 3
Dateien dürfen fragmentiert werden, d. h. als sogenannte Multi-Extent-Dateien
abgelegt werden, hauptsächlich, um Dateien ≥ 4 GB sowie Packet-Writing oder
inkrementelles CD-Schreiben zu ermöglichen."

Ein File wird im ISO 9660 Directorybaum durch einen oder mehrere Directory
Records beschrieben. Jeder dieser Records gibt die Blocknummer (LBA) und
die Anzahl der Bytes in je einem Feld von 32 Bit Breite an. Wenn der File
mehr Bytes enthaelt, als mit 32 Bit darstellbar ist, dann wird ein weiterer
Directory Record mit dem selben Namen eingetragen. Seine Blocknummer ist
dann entsprechend groesser und er kann die naechsten knapp 4 GiB darstellen.
Das geht so weiter, bis alle Bytes des Datenfiles erfasst sind.
Den Datenbrocken, den ein einzelner Directory Record verwaltet nennt man
"Extent". "Multi-extent" heisst also auch Multi-Directory-Record.

Wie man sieht, ist das ein klein bisschen kompliziert fuer den Leser eines
ISO 9660 Filesystems. Deswegen gibt es die Levels of Interchange 1 und 2,
die besagen, dass ein hirnarmer Leser das mit dem Mulit-extent nicht
koennen muss. Wie gesagt, Linux und MS-Windows halten sich mehr zugute.

Have a nice day :)

Thomas

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von speefak » 21.07.2023 10:45:26

Das scheint dann ein Bug von rear-backup für amd64 Architekturen zu sein.

Spontan fallen mir 2 Möglichkeiten ein :

1 - Code Review ( ist ja nur eine Script Datei, wenn die i368 Version funktioniert )
2- xorriso Befehl mit Script "mappen"


EDIT :

Code: Alles auswählen


xorriso -as mkisofs -iso-level 3 file.mkv -o test.iso
xorriso 1.5.0 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:test.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 26.5g free
Added to ISO image: file '/file.mkv'='/home/speefak/file.mkv'
xorriso : UPDATE :       1 files added in 1 seconds
xorriso : UPDATE :       1 files added in 1 seconds
xorriso : UPDATE :  0.53% done
xorriso : UPDATE :  4.05% done
[...]
xorriso : UPDATE :  96.69% done, estimate finish Fri Jul 21 10:57:24 2023
xorriso : UPDATE :  97.03% done, estimate finish Fri Jul 21 10:57:25 2023
xorriso : UPDATE :  97.29% done, estimate finish Fri Jul 21 10:57:26 2023
ISO image produced: 4066352 sectors
Written to medium : 4066352 sectors at LBA 0
Writing to 'stdio:test.iso' completed successfully.

~$ ll test.iso 
-rw-r--r-- 1 speefak speefak 7,8G Jul 21 10:57 test.iso
~$ sudo mount test.iso /mnt/other
mount: /mnt/other: WARNING: device write-protected, mounted read-only.
~$ ll /mnt/other
insgesamt 7,8G
-rw-r--r-- 1 speefak speefak 7,8G Jul 21 10:54 file.mkv
~$ 

funktioniert ;)

So ganz ist mir der Zusammenhang zwischen xorriso und mkisofs nicht klar. Ist xorriso kein eigenständiges Programm und nutzt daher mkisofs (xorriso -as mkisofs -iso-level 3 file.mkv -o test.iso) ? Gilt die iso-level 3 option nun für xorriso oder mkisofs ? Das wäre für ein Codereview gut zu wissen ;)

Benutzeravatar
speefak
Beiträge: 449
Registriert: 27.04.2008 13:54:20

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von speefak » 21.07.2023 11:43:23

Kann es vllt sein, dass eien bootbare ISO mit iso Level 3 nicht möglich ist und rear beim erstellen einer bootbaren iso abbricht ? Ich habe gerade einmal die Script durchgesehn und die "iso-level" syntax scheint überall richtig zu sein ( isolevel find ich bei volltestsuche nicht in den Scriptdatein :roll: )

Optionen in /etc/rear/local.conf :

Code: Alles auswählen

[...]
		MKISOFS_BIN=xorriso
                USE_XORRISO=true
[...]                
used OS size: 8.1 GB
tar image size (lt rear output log ): 3.1 GB
isofile size: 3.6 GB
isofile tarimage ( tar file in isoimage): 3.3 GB
=> works
...
used OS size: 11,2 GB
tar image size (lt rear output log ): 5.4 GB
isofile size: 6.1 GB
isofile tarimage ( tar file in isoimage): 5.8 GB
=> works
...
Zuletzt geändert von speefak am 21.07.2023 12:36:41, insgesamt 1-mal geändert.

scdbackup
Beiträge: 59
Registriert: 15.10.2011 11:11:51

Re: Relax and Recover - Bugs - läuft das bei jmd unter D12 ?

Beitrag von scdbackup » 21.07.2023 12:15:19

Hi,

speefak schrieb:
> Das scheint dann ein Bug von rear-backup für amd64 Architekturen zu sein.

Sofern Du Dich nicht beim Experimentieren verhaspelt hast wuerde ich das
auch so sehen.

Gucken wir nochmal ueber die Fakten in diesem Thread:

https://bugzilla.redhat.com/show_bug.cgi?id=1462189
deutet an, dass genisoimage nicht korrekt auf -iso-level 3 reagiert,
xorrisofs das aber tut. (Man berichtet, dass die Verwendung von xorrisofs
das Problem in Fedora loest.)
Ich kann das leider nur bestaetigen:

Code: Alles auswählen

$ genisoimage -iso-level 3 -o test.iso KNOPPIX_V8.6-2019-08-08-EN.iso 
I: -input-charset not specified, using utf-8 (detected in locale settings)
File KNOPPIX_V8.6-2019-08-08-EN.iso is larger than 4GiB-1.
-allow-limited-size was not specified. There is no way do represent this file size. Aborting.
(Repariert wird in genisoimage nix mehr. Auch wenn wir sehr betteln.)

Die Variable ISO_FILE_SIZE_LIMIT ist in offenbar auf den sehr konservativen
Wert 2147483648 (minus 1) gesetzt.
Das koennte die entscheidende Neuerung in Debian 12 sein. In der Version von
Debian 11 kommt ISO_FILE_SIZE_LIMIT nicht in der Defaultkonfiguration vor:
https://sources.debian.org/src/rear/2.6 ... ault.conf/
In der von Debian 12 schon:
https://sources.debian.org/src/rear/2.7 ... ault.conf/

http://lists.relax-and-recover.org/pipe ... 02437.html
deutet an, dass "rear recover" ein Problem mit Files >= 2 GiB in
ISO 9660 Filesystemen haben kann.
Das ist erstaunlich, weil zumindest in Linux und MS-Windows im Jahr 2020
wirklich keine aktuellen Probleme mit dieser Groesse auftreten sollten.
Aber gut, man kann ISO_FILE_SIZE_LIMIT aendern und dann probieren, ob die
Wiederherstellung eines Backups klappt.
(Wenn's nicht klappt ist rear einfach kein ernstzunehmendes Backupsystem.)

Du hast ISO_FILE_SIZE_LIMIT in /usr/share/rear/conf/default.conf geaendert
aber keine positive Wirkung gesehen. Erst als Du die Funktion
assert_ISO_FILE_SIZE_LIMIT gehackt hast um den Test abzuwuergen, gab es
Fortschritt.
Die Aenderung an ISO_FILE_SIZE_LIMIT scheint also nicht wirksam geworden
zu sein. Vielleicht wegen diesen Stueck Code:
https://sources.debian.org/src/rear/2.7 ... ?hl=23#L13

Code: Alles auswählen

# Enforce 2GiB ISO_FILE_SIZE_LIMIT when the MODULES array contains 'loaded_modules'
...
     ISO_FILE_SIZE_LIMIT=2147483648
-------------------------------------------------------------------

Dann kamen Berichte von Dir, die noch Fragen offen lassen:

> EDIT 4.5 GB Scheint die max Archivgröße zu sein um es noch auf eine ISO zu bekommen.

Wie hat sich diese Grenze genau beim rear-Lauf geaeussert ?
Irgendwelche Originalmeldungen nach denen man im Code suchen koennte ?

> Wenn ich in der rear config xorriso als "isotool" angebe passt irgendwas
> mit der Syntax wieder nicht.
> xorriso/rear Fehler: unknown argument "-isolevel" "3" "."

Die Debian Codesuche findet das Wort "isolevel" nicht in rear, ebensowenig
wie "unknown argument". Ich sehe auch bei "xorriso" keinen speziellen
Test im Code, der -iso-level pruefen wuerde.

Du muesstest dringend rausfinden, wo diese Fehlermeldung herkommt.
Da koennte ein reparierbarer Bug sitzen.

> 2- xorriso Befehl mit Script "mappen"

xorriso laeuft auch im mkisofs-Emulationsmodus, wenn es als "mkisofs"
oder "genisoimage" aufgerufen wird.
Du koenntest also Dein /usr/bin/genisoimage umnennen (z.B. real_genisoimage)
und dann /usr/bin/xorriso auf /usr/bin/genisoimage kopieren oder einen
Softlink von /usr/bin/genisoimage nach xorriso legen.

Aber das hat Nachteile bei anderer Software, wie die Fedora-User
feststellen muessen, denen das nun so untergeschoben wird. Programme
beschweren sich ueber die Versionsnummer oder wollen Option -udf benutzen,
die xorrisofs nicht unterstuetzt.
Es waere also viel besser, wenn Du rear mit einem ehrlichen Aufruf von
xorrisofs zum Laufen bekaemst.

--------------------------------------------------------------------
Nach Deinem EDIT:

> xorriso -as mkisofs -iso-level 3 file.mkv -o test.iso
> xorriso 1.5.0 : RockRidge filesystem manipulator, libburnia project.
> ...
> funktioniert.

Das ist aber nicht die xorriso Version von Debian 12 (muesste 1.5.4 sein),
sondern die von Debian 10.
Nichtsdestotrotz ist der Erfolg auch bei aelteren Versionen zu erwarten.

> So ganz ist mir der Zusammenhang zwischen xorriso und mkisofs nicht klar.
> Ist xorriso kein eigenständiges Programm

EDIT:
xorriso ist voellig unabhaengig von mkisofs oder cdrecord. Es basiert auf den
Libraries libisofs, libburn und ist implementiert in libisoburn. Ein Version, die ihre
eigenen Libraries mitbringt, wird zeitgleich mit libisoburn als "GNU xorriso"
veroffentlicht. Debian benutzt aber die einzelnen Libraries.
EDIT Ende.

xorrisofs ist ein Eingabemodus des Programms xorriso. Der wird entweder durch
das xorriso Kommando "-as" "mkisofs" gestartet, oder wenn xorriso ueber einen
der Namen "xorrisofs", "mkisofs" oder "genisoimage" gestartet wird.

Dieser Modus aendert einige Grundeinstellungen (zB. das ISO Level), wenn sie
nicht schon durch vorherige xorriso Befehle geaendert wurden.
xorriso in seinem eigenen Kommandomodus erlaubt Level 3 als Grundeinstellung
und limitiert die Filegroesse auf 400 GiB - 200 KiB. Man kann das aendern
mit den Befehlen -compliance "iso_level=..." oder -file_size_limit.

Die man-Pages von xorriso und xorrisofs sind gefuerchtet fuer ihre Laenge
und beruechtigt dafuer, dass man die Loesung immer erst im Text findet, wenn
man sie sich muehsam zusammengeraetselt hat.
(Ich habe in 16 Jahren niemanden gefunden, der eine Anleitung aus Anwendersicht
schreiben wuerde.)

> und nutzt daher mkisofs

Nein. Nur die Namen von vielen Optionen und ggf. den Programmnamen.
man xorrisofs sagt ziemlich am Anfang:

Code: Alles auswählen

xorrisofs understands options of program mkisofs from cdrtools by Joerg
Schilling.  Its implementation is part of program xorriso which  shares
no source code with cdrtools.
Es sind spaeter einige Optionen dazugekommen, die Faehigkeiten von xorriso
im mkisofs-Modus bereitstellen. ZB. fuer die Produktion von ISOs, die vom
USB Stick booten.

Hauptnachteil von xorrisofs gegenueber mkisofs ist, dass die Optionen -udf
und -hfs nicht unterstuetzt werden. UDF finde ich persoenlich bloed und HFS
ist so tot, dass einige Linux Entwickler es aus dem Kernel schmeissen wollen.
Meine Motivation fuer xorriso ist Backup und die meiner User ist Booten.

--------------------------------------------------------------------
Und noch eine neue Botschaft waehrend ich hier tippe:

> Kann es vllt sein, dass eien bootbare ISO mit iso Level 3 nicht möglich ist

Die beiden haben wenig miteinander zu tun. Die bootenden Systeme muessen mit
Level 3 umgehen koennen oder duerfen sich nicht fuer die grossen Files
interessieren. Vielleicht muss man also die Files klein halten, die der
Bootloader selbst lesen oder an Linux weitergeben muss (initrd ?). Aber ein
fetter Datenfile, der erst von einem voll gebooteten Linux gelesen werden
soll, duerfte keine Probleme machen.

Level 3 wird im ISO nicht extra angekuendigt. Man merkt es erst, wenn man
auf einen grossen File mit mehr als einem Extent stoesst.

Have a nice day :)

Thomas

Antworten