diff --git a/assemble_image.sh b/assemble_image.sh
index 5521e19bf385a354b9679c3b728826720ad5c38f..1456ce60afe5a847e78bf67db7667b9fd342e422 100755
--- a/assemble_image.sh
+++ b/assemble_image.sh
@@ -3,17 +3,15 @@
 set -e
 set -x
 
-image_size="6600M"
-img1="kubuntu-20.04.3-desktop-amd64.iso"
-img2="kubuntu-21.10-desktop-amd64.iso"
+image_size="3600M"
+img1="kubuntu-22.04-desktop-amd64.iso"
 bootimg="$img1"
 : ${workspace:="/workspace"}
 : ${USE_OFFLINE_REPO:=0}
 if [[ "$USE_OFFLINE_REPO" -eq 1 ]]
 then
-    offlinerepo1='archives-focal'
-    offlinerepo2='archives-impish'
-    image_size='13G'
+    offlinerepo1='archives-jammy'
+    image_size='10G'
 fi
 
 # mtools, ddrescure, fdisk, grub, 7z
@@ -33,20 +31,20 @@ rsync -av /usr/share/grub/unicode.pf2 "$workspace/part_files"/grub/fonts/
 mv "$workspace/part_files"/grub/* "$workspace/part_files"/boot/grub/
 rm -rf "$workspace/part_files"/grub
 
-rsync --copy-links --size-only --checksum "$img1" "$workspace/part_files/"
-rsync --copy-links --size-only --checksum "$img2" "$workspace/part_files/"
+7z x "$img1" /preseed/kubuntu.seed -o"$workspace/part_files"
+cat "$workspace/part_files/preseed/lip.seed" >> "$workspace/part_files/preseed/kubuntu.seed"
+mv -f "$workspace/part_files/preseed/kubuntu.seed" "$workspace/part_files/preseed/lip.seed"
+xorriso -indev "$img1" -outdev "$workspace/part_files/$img1" -map "$workspace/part_files/preseed" /preseed -rm /preseed/kubuntu.seed -- -chown_r 0 /preseed -- -chgrp_r 0 /preseed -- -chmod_r a+rwx /preseed
 
 source ./grub_config.sh # functions to fill grub_template.cfg
 cp grub_template.cfg "$workspace/part_files/boot/grub/grub.cfg"
 fill_grub_config_template "$img1" "$workspace/part_files/boot/grub/grub.cfg"
-fill_grub_config_template "$img2" "$workspace/part_files/boot/grub/grub.cfg"
 
 if [[ "$USE_OFFLINE_REPO" -eq 1 ]]
 then
     # Note: in practice you might still want to create the offline repo separately and just copy or move the directories here.
     # Creating the offline repo requires root privileges and can be quite slow.
     ./create_offlinerepo.sh "$workspace/part_files/$offlinerepo1" "$img1" $(grep '^[^#]' packages | cut -d'|' -f 2)
-    ./create_offlinerepo.sh "$workspace/part_files/$offlinerepo2" "$img2" $(grep '^[^#]' packages | cut -d'|' -f 2)
 fi
 
 cp packages "$workspace/part_files/packages"
diff --git a/grub_template.cfg b/grub_template.cfg
index 74afa5110de95b7f15ddbf7f0385fedf8df67d86..158aecfb5023ec92bd51692d9f7705e158e79cfe 100644
--- a/grub_template.cfg
+++ b/grub_template.cfg
@@ -19,7 +19,7 @@ function loadCasper {
     set initrd="$3"
     loopback loop ($root)/${isoname}
     echo    "Loading kernel"
-    linux   (loop)${kernel} boot=casper file=/isodevice/preseed/lip.seed ${cmdline} iso-scan/filename=/${isoname} sysrq_always_enabled pstore.pstore_disable nosplash verbose --
+    linux   (loop)${kernel}  boot=casper file=/cdrom/preseed/lip.seed ${cmdline} iso-scan/filename=/${isoname} sysrq_always_enabled pstore.pstore_disable nosplash verbose --
     echo    "Loading initrd"
     initrd  (loop)${initrd}
     echo    "Starting kernel"
@@ -29,7 +29,7 @@ function loadCasper {
 function img_menu {
     set release="$1"
     menuentry "Empfohlen: ${release} (deutsch)" "$2" "$3" "$4" {
-        set cmdline="debian-installer/language=de keyboard-configuration/layoutcode?=de"
+        set cmdline="debian-installer/locale=de_DE keyboard-configuration/layoutcode?=de"
         loadCasper "$2" "$3" "$4"
     }
 
diff --git a/packages b/packages
index 8a59238aa3beaab6c39895e1d313eb311c254f2f..cff4d20c7d8a6e7f6809861225f1a188c768877f 100644
--- a/packages
+++ b/packages
@@ -24,7 +24,7 @@
    P |python3-seaborn|Seaborn: Schönes Plotten mit Python
    p |python3-sympy|sympy: Python-Bibliothek für symbolische Rechnungen
    P |ipython3|ipython: Interaktiver Python Interpreter mit Tab-Vervollständgung
-   P |bpython3|bpython: Ein weiterer interaktiver Python Interpreter
+   P |bpython|bpython: Ein weiterer interaktiver Python Interpreter
    P |gnuplot|gnuplot: Programm um Funktions- und Datenplots anzufertigen
    P |wxmaxima|wxmaxima: Graphische Benutzeroberfläche für das Maxima Computer Algebra System
    p |liblapack-dev|LAPACK: Eine Standard-Numerik-Bibliothek für Physiker und Numeriker
@@ -42,7 +42,7 @@
 L    |ubiquity|
 
 #Desktop stuff for Kubuntu
- C   |thunderbird|Thunderbird: E-Mail-Client
+ D   |thunderbird|Thunderbird: E-Mail-Client
  C   |texstudio|texstudio: Graphischer LaTeX-Editor
  c   |kile|kile: Alternativer graphischer LaTeX-Editor
  D   |ffmpeg|