Geniale Option
Anstelle einer zusätzlichen Partition für "Persistence" auf dem USB-Stick/Festplatte, was mit dem Heise-ISO funnktioniert, ist von Ventoy und Ubuntu (bzw. Heise) und auch anderen Linuxe auch eine einfache Datei ("disk image") als virtueller Dateiträger machbar. Dies macht das Handling und die Portabilität wesentlich einfacher, sogar mehrere persistence Dateien für unterschiedliche Stände sind möglich.
s.a. https://www.ventoy.net/en/plugin_persistence.html
Problem
Leider enthält das ISO an dieser Stelle einen Fehler.
Es geht hier um das kleinere ISO, welches als Datei "desinfect-202200-amd64.iso" auf der groĂźen ISO drauf ist!
Die Ramdisk verursacht das Problem, genauer das Skript desinfect-202100-amd64.iso/casper/initrd.[lz|55]/scripts/casper ist zwar auf "persistence" vorbereitet, aber enthält Fehler.
Das Skript ist unverändert (und fehlerhaft) seit 2021, vorher hat es funktioniert.
Startet man mit "persistence" File (anstelle einer Partition) bleibt der Bootvorgang stehen mit:
(initramfs)/init: line 556: root_persistence_label: not found
Lösung/Patch für das Problem
Korrekturvorschlag, desinfect-202100-amd64.iso/casper/initrd.[lz|55]/scripts/casper patchen, danach funktioniert es einwandfrei:
Zeile 12, fehlende Variable einfĂĽgen:
root_persistence_label="desinfSIGS"
Alle 4 Vorkommen von
$(root_persistence_label)
ersetzen durch
${root_persistence_label}
Ich hoffe die Heise Verantwortlichen lesen mit und beheben dies dauerhaft :-)
Zum Nachmachen und Selbsthilfe auf einem aktuellen Ubuntu (22.04 bei mir):
# nachinstallieren
apt-get install openssh-server isomaster
# [DIR] ist ein Platzhalter fĂĽr ein beliebiges Verzeichnis
mkdir [DIR] # leeres Verzeichnis erstellen und desinfect-202200-amd64.iso von heise hierhin kopieren
#[... KOPIEREN der ISO ...]
export DIR="[DIR]" # Variable mit dem Verzeichnis setzen
cd "${DIR}"
export ISO="${DIR}/desinfect-202200-amd64.iso"
export ISOMNT="${DIR}/mnt"
export RDLZ="${DIR}/rdlz"
export RD55="${DIR}/rd55"
export RPL="desinfSIGS"
mkdir "${ISOMNT}" "${RDLZ}" "${RD55}"
mount -o loop "${ISO}" "${ISOMNT}" # ISO mounten
# initrd bearbeiten
for RD in "${RDLZ}" "${RD55}" ; do
cd "${RD}"
RDX="${RD:(-2)}"
unmkinitramfs "${ISOMNT}/casper/initrd.${RDX}" . # initrd entpacken, es entstehen 3 Verzeichnisse early, early2 und main
cp -p "main/scripts/casper" "main/scripts/casper.org" # Original sichern
# editieren, Achtung hinter "\" am Ende der Zeile kein Leerzeichen
cat "main/scripts/casper.org" | \
sed "s/\$(root_persistence_label)/\${root_persistence_label}/g" | \
sed "s/home_persistence=\"home-rw\"/root_persistence_label=\""${RPL}"\"\nhome_persistence=\"home-rw\"/1" \
> "main/scripts/casper"
# neue initrd
cd "early"
find . -print0 | cpio --null --create --format=newc > "../../initrd.${RDX}"
cd "../early2"
find kernel -print0 | cpio --null --create --format=newc >> "../../initrd.${RDX}"
cd "../main"
find . | cpio --create --format=newc | gzip -9 >> "../../initrd.${RDX}"
cd "${DIR}"
[[ -d "${RD}" ]] && rm -r "${RD}"
done
umount "${DIR}/mnt"
Als Ergebnis sollten die beiden neuen ramdisk's initrd.lz und initrd.55 in [DIR] landen.
Nun Tool isomaster unter Ubuntu starten und die beiden Dateien ersetzen.
File / Open, desinfect-202200-amd64.iso selektieren, im unteren Teil des Fenster ist der Inhalt des ISO zu sehen, ins Verzeichnis casper navigieren, Dateien initrd.55 und initrd.lz slektieren, Button Remove drĂĽcken.
Im oberen Fenster die beiden neuen initrd.lz und initrd.55 selektieren, Button Add drĂĽcken.
File / Save As, desinfect-202200-amd64-NEU.iso - fertig.
Das Posting wurde vom Benutzer editiert (03.07.2022 11:32).