Merge remote-tracking branch 'origin/github/pr/145' master
authorMichael Prokop <mika@grml.org>
Wed, 13 Mar 2024 11:42:48 +0000 (12:42 +0100)
committerMichael Prokop <mika@grml.org>
Wed, 13 Mar 2024 11:42:48 +0000 (12:42 +0100)
75 files changed:
debian/changelog
debian/control
debian/copyright
debian/grml-live.maintscript
debian/rules
docs/grml-live.txt
etc/grml/fai/config/debconf/GRMLBASE
etc/grml/fai/config/files/etc/apt/preferences.d/jessie-backports/DEBIAN_JESSIE [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BOOKWORM [new file with mode: 0644]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BUSTER [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_JESSIE [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_LENNY [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_SID
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_SQUEEZE [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STRETCH [deleted file]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TESTING
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TRIXIE [new file with mode: 0644]
etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_UNSTABLE
etc/grml/fai/config/files/etc/fstab/GRMLBASE
etc/grml/fai/config/files/etc/initramfs-tools/modules/GRMLBASE [new file with mode: 0644]
etc/grml/fai/config/files/etc/inittab/GRMLBASE [deleted file]
etc/grml/fai/config/files/etc/inittab/GRML_SMALL [deleted file]
etc/grml/fai/config/files/etc/locale.conf/GRMLBASE [new file with mode: 0644]
etc/grml/fai/config/files/etc/lsb-base-logging.sh/GRMLBASE [deleted file]
etc/grml/fai/config/files/etc/systemd/system/getty@tty2.service.d/override.conf/GRMLBASE
etc/grml/fai/config/files/etc/systemd/system/getty@tty3.service.d/override.conf/GRMLBASE
etc/grml/fai/config/files/etc/systemd/system/getty@tty4.service.d/override.conf/GRMLBASE
etc/grml/fai/config/files/etc/systemd/system/ssh.service/GRMLBASE
etc/grml/fai/config/files/etc/tmpfiles.d/man-db.conf/GRMLBASE [new file with mode: 0644]
etc/grml/fai/config/files/usr/share/doc/grml-docs/startpage.html/GRMLBASE
etc/grml/fai/config/grml/squashfs-excludes
etc/grml/fai/config/hooks/instsoft.GRMLBASE
etc/grml/fai/config/hooks/instsoft.ZFS [new file with mode: 0755]
etc/grml/fai/config/package_config/DEBIAN_BOOKWORM [new file with mode: 0644]
etc/grml/fai/config/package_config/DEBIAN_SQUEEZE [deleted file]
etc/grml/fai/config/package_config/DEBIAN_STABLE [new file with mode: 0644]
etc/grml/fai/config/package_config/DEBIAN_TESTING [new file with mode: 0644]
etc/grml/fai/config/package_config/DEBIAN_TRIXIE [new file with mode: 0644]
etc/grml/fai/config/package_config/DEBIAN_UNSTABLE [new file with mode: 0644]
etc/grml/fai/config/package_config/GRMLBASE
etc/grml/fai/config/package_config/GRML_FULL
etc/grml/fai/config/package_config/GRML_SMALL
etc/grml/fai/config/package_config/SYSTEMD [deleted file]
etc/grml/fai/config/package_config/ZFS [moved from etc/grml/fai/config/package_config/FILE_RC with 50% similarity]
etc/grml/fai/config/scripts/DEBORPHAN/10-whitelist
etc/grml/fai/config/scripts/GRMLBASE/15-initsetup
etc/grml/fai/config/scripts/GRMLBASE/18-timesetup
etc/grml/fai/config/scripts/GRMLBASE/21-usersetup
etc/grml/fai/config/scripts/GRMLBASE/25-locales
etc/grml/fai/config/scripts/GRMLBASE/39-modprobe
etc/grml/fai/config/scripts/GRMLBASE/42-branding
etc/grml/fai/config/scripts/GRMLBASE/44-grub
etc/grml/fai/config/scripts/GRMLBASE/45-grub-images
etc/grml/fai/config/scripts/GRMLBASE/50-lvm
etc/grml/fai/config/scripts/GRMLBASE/80-initramfs
etc/grml/fai/config/scripts/GRMLBASE/85-systemd [new file with mode: 0755]
etc/grml/fai/config/scripts/GRMLBASE/91-update-pciids
etc/grml/fai/config/scripts/GRMLBASE/93-update-usbids [deleted file]
etc/grml/grml-live.conf
etc/zsh/completion.d/_grml-live
examples/reprepro/conf/distributions
examples/reprepro/conf/updates
grml-live
remaster/grml-live-remaster
templates/EFI/debian/BOOT/README
templates/EFI/debian/BOOT/grubx64.efi.signed
templates/EFI/debian/BOOT/shimx64.efi.signed
templates/GRML/grml-cheatcodes.txt
templates/boot/grub/%SHORT_NAME%_options.cfg
templates/boot/grub/addons.cfg
templates/boot/isolinux/f10
templates/boot/isolinux/grml.cfg
templates/boot/isolinux/hidden.cfg
templates/boot/isolinux/isolinux.cfg

index 45542a7..e087f41 100644 (file)
@@ -1,3 +1,307 @@
+grml-live (0.47.6) unstable; urgency=medium
+
+  * [642ff89] docs: update instructions for basefile creation to include
+    capabilities
+
+ -- Michael Prokop <mika@grml.org>  Sat, 24 Feb 2024 10:56:00 +0100
+
+grml-live (0.47.5) unstable; urgency=medium
+
+  * Software related changes:
+    - [922087b] drop dmraid from GRML_FULL + GRML_SMALL
+  * [ee314fb] templates: drop deprecated nodmraid boot option and update
+    grml-cheatcodes.txt
+
+ -- Michael Prokop <mika@grml.org>  Fri, 02 Feb 2024 16:52:57 +0100
+
+grml-live (0.47.4) unstable; urgency=medium
+
+  * [bdf9b40] grml-cheatcodes.txt: drop URL for no-longer existing live-
+    initramfs.en.7.txt
+  * [06e703a] Fix usage of FAI's shell.log vs. scripts.log
+  * Software related changes:
+    - [e0a2d0b] add xxd to GRML_SMALL + GRML_FULL
+    - [dca230e] add memtest86+ to GRML_FULL (amd64/i386 only)
+
+ -- Michael Prokop <mika@grml.org>  Fri, 02 Feb 2024 16:04:31 +0100
+
+grml-live (0.47.3) unstable; urgency=medium
+
+  * Software related changes:
+    - [c30d41f] add zstd to GRML_SMALL. Thanks to Marc Haber
+
+ -- Michael Prokop <mika@grml.org>  Mon, 15 Jan 2024 12:35:35 +0100
+
+grml-live (0.47.2) unstable; urgency=medium
+
+  [ Michael Prokop ]
+  * [94ef34a] templates/boot/isolinux/f10: use https and replace freenode
+    with oftc
+  * [69fe8e2] grml-docs/startpage.html: rework and update instructions
+  * [cbbab37] templates/boot/grub/%SHORT_NAME%_options.cfg: fix missing
+    quotes
+
+  [ Darshaka Pathirana ]
+  * [4e76a27] Remove Grml release name from the boot options
+
+ -- Michael Prokop <mika@grml.org>  Sat, 23 Dec 2023 13:22:32 +0100
+
+grml-live (0.47.1) unstable; urgency=medium
+
+  [ Michael Prokop ]
+  * Software related changes:
+    - [892768a] ship xserver-xorg-video-intel with grml32-full
+    - [f123b91] drop thin-provisioning-tools from GRML_FULL
+
+  [ Darshaka Pathirana ]
+  * [c0460ec] Unify boot options order
+
+ -- Michael Prokop <mika@grml.org>  Fri, 01 Dec 2023 12:39:26 +0100
+
+grml-live (0.47.0) unstable; urgency=medium
+
+  * [f365415] Add debootstrap to Depends
+  * [1a9a788] Rework memtest handling, incl. usage of latest available
+    memtest file
+  * [e57c3ad] templates/boot/grub/addons: use chainloader instead of
+    linuxefi
+
+ -- Michael Prokop <mika@grml.org>  Thu, 19 Oct 2023 17:24:51 +0200
+
+grml-live (0.46.1) unstable; urgency=medium
+
+  * [b041d9e] grml-live-remaster: aufs got replaced by overlay.
+    Thanks to Alhyene for the patch
+  * Software related changes:
+    - [3faa4ab] add toilet to GRML_SMALL + GRML_FULL and
+      lolcat to GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Thu, 14 Sep 2023 18:24:41 +0200
+
+grml-live (0.46.0) unstable; urgency=medium
+
+  The "hello arm64 / aarch64" release
+
+  * [f0c9fee] Drop deprecated GRMLBASE/93-update-usbids (update-usbids
+    is gone)
+  * [cb68d92] GRMLBASE/91-update-pciids: also ignore exit code 1
+  * [74c4bce] Support FAI's newer scripts.log, as used with FAI
+    versions >=6.0
+  * [e530f07] Provide workaround for dhcpcd/isc-dhcp-client + cloud-init
+    for bookworm. Thanks to János Pásztor for the bug report
+  * [e1a5504] Initial arm64 / aarch64 support
+  * Software related changes:
+    - [97f7e34] install architecture specific fwupd-signed packages
+
+ -- Michael Prokop <mika@grml.org>  Fri, 08 Sep 2023 18:00:52 +0200
+
+grml-live (0.45.0) unstable; urgency=medium
+
+  * [d6d5fee] Drop depends on fai-server. Thanks to András Korn
+  * [75e65f3] Deprecate FAI's make-fai-nfsroot.conf
+  * [29d5e28] Update zsh completion + ship it via Debian package
+  * [5730180] Add support for Debian/trixie (current Debian/testing)
+    Thanks to cb <christopher@bocki.com> for the PR
+  * Software related changes:
+    - [8359ac7] add lz4 to GRML_FULL. Thanks to willmcginnis
+      for the suggestion
+    - [fe23a7a] drop dstat (unmaintained upstream)
+    - [0adb425] ship fwupd with fwupd-signed + policykit-1 +
+      udisks2 for firmware updates
+
+ -- Michael Prokop <mika@grml.org>  Fri, 11 Aug 2023 19:32:56 +0200
+
+grml-live (0.44.0) unstable; urgency=medium
+
+  * [7005037] grml-cheatcodes.txt: document usage of
+    bootfrom=/dev/disk/by-label* + drop deprecated tohd.
+    Thanks to Csillag Tamas
+  * [bac3076] No longer bootstrap with --no-merged-usr.
+    Thanks to Csillag Tamas for reporting
+  * [00d296a] DEBIAN_STABLE: enable non-free-firmware component
+    and use stable-backports
+  * Software related changes:
+    - [7eb1881] add f3 to GRML_FULL.
+      Thanks to Keith Irwin for the suggestion
+    - [3152440] add gdisk to GRML_SMALL
+    - [e7ada95] switch from isc-dhcp-client to dhcpcd.
+      Thanks to András Korn for the suggestion
+
+ -- Michael Prokop <mika@grml.org>  Fri, 30 Jun 2023 14:25:46 +0200
+
+grml-live (0.43.2) unstable; urgency=medium
+
+  * [842c047] Increase EFI image size when using Secure Boot on amd64.
+    Thanks to János Pásztor for bugreport and initial patch
+
+ -- Michael Prokop <mika@grml.org>  Thu, 23 Feb 2023 12:37:12 +0100
+
+grml-live (0.43.1) unstable; urgency=medium
+
+  * [721a473] Secure Boot: update grub and shim binaries.
+    Thanks to János Pásztor for bugreport and PR
+  * [6f345c1] Use serial console with 115200n8 by default.
+    Thanks to anarcat for bugreport
+  * [cd1b0e9] Drop deprecated /etc/inittab configuration files
+  * [f771ff8] Update debian/copyright
+  * [c7d7687] Update Vcs-git header to use github.com
+  * [dfec112] Bump Standards-Version to 4.6.2
+  * Software related changes:
+    - [b55c661] drop firmware-ath9k-htc (provided by firmware-atheros)
+
+ -- Michael Prokop <mika@grml.org>  Mon, 20 Feb 2023 14:19:26 +0100
+
+grml-live (0.43.0) unstable; urgency=medium
+
+  The "Good Riddance" release
+
+  * [d1575f1] Drop /etc/grml/fai/config/files/etc/lsb-base-
+    logging.sh/GRMLBASE
+  * [a4d3b31] Ship custom tmpfiles.d configuration to avoid man-db cache
+    removal. Thanks to 2f2a and Darshaka Pathirana
+  * [87ea3f5] Support new non-free-firmware component
+  * [19b3f2b] Add non-free component to security.debian.org repository of
+    old Debian releases
+  * [1f5167a] Update examples/reprepro/conf to a more recent Debian
+    release
+  * [5a77db4] Drop support for lenny, squeeze, wheezy, jessie, stretch +
+    buster Debian releases and default to bookworm
+  * [19a0467] Drop file-rc support
+
+ -- Michael Prokop <mika@grml.org>  Fri, 03 Feb 2023 17:52:32 +0100
+
+grml-live (0.42.2) unstable; urgency=medium
+
+  * [c55290b] GRMLBASE/39-modprobe: do not expect all files in
+    /etc/modprobe.d to be used
+  * [1aa1823] GRMLBASE/39-modprobe: avoid usage of
+    /lib/modprobe.d/50-nfs.conf
+  * [ed733f2] Revert "Set SHELL variable in tty1"
+  * [2013537] Revert "Run zsh when starting screen"
+
+ -- Michael Prokop <mika@grml.org>  Fri, 25 Nov 2022 11:57:09 +0100
+
+grml-live (0.42.1) unstable; urgency=medium
+
+  [ Michael Prokop ]
+  * Software related changes:
+    - [797426b] add hping3 to GRML_FULL
+    - [19a81f4] add tmux to GRML_SMALL
+    - [2bb0740] re-add xfsdump to GRML_FULL
+    - [acf26ea] add espeak-ng
+    - [134a171] re-add ifenslave to GRML_SMALL and GRML_FULL
+    - [74dcb54] add mtx to GRML_FULL
+
+  [ Darshaka Pathirana ]
+  * [7422d31] Set SHELL variable in tty1
+
+ -- Michael Prokop <mika@grml.org>  Fri, 11 Nov 2022 17:07:55 +0100
+
+grml-live (0.42.0) unstable; urgency=medium
+
+  The "happy carnival" release
+
+  * [c01a86b] Support Memtest86+ with UEFI
+  * [ea1e5ea] Provide workaround for kmod/initramfs-tools issue with
+    NFS/netboot. Thanks to András Korn
+
+ -- Michael Prokop <mika@grml.org>  Fri, 11 Nov 2022 10:23:23 +0100
+
+grml-live (0.41.2) unstable; urgency=medium
+
+  * [bb84a88] Deploy default /etc/locale.conf, to avoid systemd-firstboot
+    prompting during bootup
+  * [6d6606f] /etc/fstab: fix note from rebuilfstab->grml-udev-
+    rebuildfstab switch. Thanks to Christoph Biedl for reporting
+  * [c137314] Drop SYSTEMD package config file, no longer relevant. Thanks
+    to András Korn for reporting
+  * [cff6607] Provide apt sources.list file to support 'bookworm' as
+    Debian suite
+  * Software related changes:
+    - [33f9c6c] drop firmware-intelwimax package from GRMLBASE
+
+ -- Michael Prokop <mika@grml.org>  Mon, 07 Nov 2022 21:25:47 +0100
+
+grml-live (0.41.1) unstable; urgency=medium
+
+  [ András Korn ]
+  * [48f94bb] Add support for building grml ISOs with zfs
+
+  [ Michael Prokop ]
+  * [6d869c1] ssh.service: avoid indirection via /bin/sh + do not run test
+    mode in ExecStartPre
+  * [8d93bbb] ssh.service: fix ssh-keygen usage
+  * [541a6ce] Replace egrep usage with grep -E
+  * Software related changes:
+    - [e528680] drop xfsdump from GRML_FULL
+    - [37addd3] drop mercurial from GRML_FULL
+    - [8daed70] drop subversion from GRML_FULL
+    - [da5e5ca] drop tshark + wireshark from GRML_FULL
+    - [c22b14e] drop facter, mcollective + puppet from GRML_FULL
+    - [bb35e69] re-add firmware-ath9k-htc to GRMLBASE
+    - [309a8e7] re-add iptstate to GRML_SMALL + GRML_FULL
+    - [9c9bd3f] re-add fluxbox and drop openbox + obconf in GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Mon, 10 Oct 2022 18:53:40 +0200
+
+grml-live (0.41.0) unstable; urgency=medium
+
+  [ András Korn ]
+  * [7e7a352] Exclude /var/lib/dkms/* from squashfs
+  * [6e5c0af] Avoid build error if etc/adjtime doesn't exist in chroot
+  * [8459108] Add ZFS fai class
+  * [c289d2f] Add comment about dwarves (can be needed to build kernel
+    modules)
+
+  [ Michael Prokop ]
+  * [ad202c1] docs: document new ZFS class
+  * Software related changes:
+    - [b2ab701] switch from bsdmainutils to bsdextrautils + bsdutils in
+      GRML_SMALL + GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Wed, 17 Aug 2022 13:30:33 +0200
+
+grml-live (0.40.3) unstable; urgency=medium
+
+  * [482cb8d] GRMLBASE/50-lvm: also clear /lib/udev/rules.d/69-lvm.rules
+  * [f131526] GRMLBASE/21-usersetup: use adduser for adding user to group
+
+ -- Michael Prokop <mika@grml.org>  Thu, 28 Jul 2022 10:58:44 +0200
+
+grml-live (0.40.2) unstable; urgency=medium
+
+  * [1d02eb2] Disable man-db settings to speed up package installation.
+    Thanks to Thorsten Glaser for the suggestion
+  * Software related changes:
+    - [63e3a60] add stenc to GRML_FULL
+    - [0989e6c] add mbuffer to GRML_FULL
+    - [94bec0b] add sqlite3 to GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Fri, 03 Jun 2022 14:33:53 +0200
+
+grml-live (0.40.1) unstable; urgency=medium
+
+  * Software related changes:
+    - [3edddae] move from ntp/ntpdate to ntpsec/ntpsec-ntpdate in
+      GRML_SMALL + GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Wed, 20 Apr 2022 14:48:15 +0200
+
+grml-live (0.40.0) unstable; urgency=medium
+
+  * [50d26fb] buildinfo generation: avoid error message with older
+    versions of jo
+  * [581da74] Use grubx64.efi file from grml_chroot, instead of relying on
+    host system
+  * [27016a8] Redesign RELEASE_INFO handling + fix variable replacements
+    within templates
+  * Software related changes:
+    - [47c2f47] replace fluxbox with openbox + obconf in GRML_FULL
+    - [affb053] drop bonnie++ from GRML_FULL
+    - [b5165f0] add myrescue to GRML_FULL
+
+ -- Michael Prokop <mika@grml.org>  Mon, 21 Mar 2022 16:18:34 +0100
+
 grml-live (0.39.2) unstable; urgency=medium
 
   [ Michael Prokop ]
 grml-live (0.39.2) unstable; urgency=medium
 
   [ Michael Prokop ]
index 5089473..f9dc097 100644 (file)
@@ -8,9 +8,9 @@ Build-Depends-Indep:
  asciidoc,
  docbook-xsl,
  xsltproc,
  asciidoc,
  docbook-xsl,
  xsltproc,
-Standards-Version: 4.5.1
+Standards-Version: 4.6.2
 Homepage: https://grml.org/grml-live/
 Homepage: https://grml.org/grml-live/
-Vcs-git: git://git.grml.org/grml-live.git
+Vcs-git: https://github.com/grml/grml-live.git
 Vcs-Browser: https://git.grml.org/?p=grml-live.git
 Origin: Grml
 Bugs: mailto:bugs@grml.org
 Vcs-Browser: https://git.grml.org/?p=grml-live.git
 Origin: Grml
 Bugs: mailto:bugs@grml.org
@@ -20,19 +20,18 @@ Architecture: all
 Depends:
  bc,
  bzip2,
 Depends:
  bc,
  bzip2,
+ debootstrap,
  dosfstools,
  fai-client (>= 3.4.0),
  dosfstools,
  fai-client (>= 3.4.0),
- fai-server (>= 3.4.0),
  isolinux (>= 3:6.03+dfsg-5+deb8u1~),
  jo,
  isolinux (>= 3:6.03+dfsg-5+deb8u1~),
  jo,
- memtest86+,
  mksh,
  moreutils,
  mtools,
  pciutils,
  rsync,
  squashfs-tools (>= 1:4.2-0~bpo60),
  mksh,
  moreutils,
  mtools,
  pciutils,
  rsync,
  squashfs-tools (>= 1:4.2-0~bpo60),
- syslinux,
+ syslinux | syslinux-efi,
  xorriso,
  ${misc:Depends},
 Recommends:
  xorriso,
  ${misc:Depends},
 Recommends:
@@ -40,6 +39,7 @@ Recommends:
  grub-pc-bin,
  imagemagick,
  ipxe,
  grub-pc-bin,
  imagemagick,
  ipxe,
+ memtest86+,
  syslinux-utils,
 Suggests:
  fai-doc,
  syslinux-utils,
 Suggests:
  fai-doc,
index a04f208..5741d92 100644 (file)
@@ -4,7 +4,7 @@ Upstream-Contact: Michael Prokop <mika@grml.org>
 Source: https://github.com/grml/grml-live/
 
 Files: *
 Source: https://github.com/grml/grml-live/
 
 Files: *
-Copyright: 2007-2018 Michael Prokop <mika@grml.org>
+Copyright: 2007-2023 Michael Prokop <mika@grml.org>
 License: GPL-2+
 
 Files: fonts/graphicoreBitmapFont0-Light.otf
 License: GPL-2+
 
 Files: fonts/graphicoreBitmapFont0-Light.otf
@@ -15,16 +15,28 @@ Files: scripts/bootgrub.mksh scripts/bootilnx.mksh
 Copyright: 2007, 2008, 2009, 2010 Thorsten Glaser <tg@mirbsd.org>
 License: MirOS
 
 Copyright: 2007, 2008, 2009, 2010 Thorsten Glaser <tg@mirbsd.org>
 License: MirOS
 
-Files: templates/EFI/BOOT/grubx64.efi.signed
+Files: templates/EFI/debian/BOOT/grubx64.efi.signed
+Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc
+           2009-2012 Intel Corporation
+Comment: see https://metadata.ftp-master.debian.org/changelogs/main/g/grub2/unstable_copyright
+License: GPL-3+
+
+Files: templates/EFI/debian/BOOT/shimx64.efi.signed
+Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc
+           2012 Canonical Ltd.
+Comment: see https://metadata.ftp-master.debian.org/changelogs/main/s/shim-signed/unstable_copyright
+License: BSD-2-Clause
+
+Files: templates/EFI/ubuntu/BOOT/grubx64.efi.signed
 Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc
            2012 Canonical Ltd.
 Copyright: 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc
            2012 Canonical Ltd.
-Comment: /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed from http://de.archive.ubuntu.com/ubuntu/pool/main/g/grub2-signed/grub-efi-amd64-signed_1.80.2+2.02~beta3-4ubuntu2.2_amd64.deb
+Comment: /usr/lib/grub/x86_64-efi-signed/grubx64.efi.signed from http://de.archive.ubuntu.com/ubuntu/pool/main/g/grub2-signed/grub-efi-amd64-signed_1.93+2.02-2ubuntu8_amd64.deb
 License: GPL-3+
 
 License: GPL-3+
 
-Files: templates/EFI/BOOT/shimx64.efi.signed
+Files: templates/EFI/ubuntu/BOOT/shimx64.efi.signed
 Copyright: 2012 Red Hat, Inc
            2009-2012 Intel Corporation
 Copyright: 2012 Red Hat, Inc
            2009-2012 Intel Corporation
-Comment: /usr/lib/shim/shimx64.efi.signed from http://de.archive.ubuntu.com/ubuntu/pool/main/s/shim-signed/shim-signed_1.32~17.04.1+0.9+1474479173.6c180c6-1ubuntu1_amd64.deb
+Comment: /usr/lib/shim/shimx64.efi.signed from http://de.archive.ubuntu.com/ubuntu/pool/main/s/shim-signed/shim-signed_1.34.9+13-0ubuntu2_amd64.deb
 License: BSD-2-Clause
 
 License: GPL-2+
 License: BSD-2-Clause
 
 License: GPL-2+
index 5ab930d..c00535e 100644 (file)
@@ -1,4 +1,8 @@
 rm_conffile /etc/grml/fai/config/files/etc/apt/grml.key/GRMLBASE 0.32.3~
 rm_conffile /etc/grml/fai/config/files/etc/apt/grml.key/GRMLBASE 0.32.3~
+rm_conffile /etc/grml/fai/config/files/etc/inittab/GRMLBASE 0.43.0~
+rm_conffile /etc/grml/fai/config/files/etc/inittab/GRML_SMALL 0.43.0~
+rm_conffile /etc/grml/fai/config/files/etc/lsb-base-logging.sh/GRMLBASE 0.42.3~
 rm_conffile /etc/grml/fai/config/files/etc/systemd/system/serial-getty@ttyS0.service.d/override.conf/GRMLBASE 0.33.2~
 rm_conffile /etc/grml/fai/config/scripts/GRMLBASE/36-cpufrequtils 0.33.0~
 rm_conffile /etc/grml/fai/config/scripts/GRMLBASE/40-deborphan 0.35.0~
 rm_conffile /etc/grml/fai/config/files/etc/systemd/system/serial-getty@ttyS0.service.d/override.conf/GRMLBASE 0.33.2~
 rm_conffile /etc/grml/fai/config/scripts/GRMLBASE/36-cpufrequtils 0.33.0~
 rm_conffile /etc/grml/fai/config/scripts/GRMLBASE/40-deborphan 0.35.0~
+rm_conffile /etc/grml/fai/config/scripts/GRMLBASE/93-update-usbids 0.45.0~
index 8787428..864e829 100755 (executable)
@@ -13,7 +13,7 @@ override_dh_binary:
        dh_binary
 
 override_dh_install:
        dh_binary
 
 override_dh_install:
-       egrep -q "GRML_LIVE_VERSION=.*UNRELEASED" grml-live || \
+       grep -qE "GRML_LIVE_VERSION=.*UNRELEASED" grml-live || \
                        (echo "Wrong version in grml-live" && exit 2)
        # build docs
        cd docs && $(MAKE) && cd ../
                        (echo "Wrong version in grml-live" && exit 2)
        # build docs
        cd docs && $(MAKE) && cd ../
@@ -21,6 +21,8 @@ override_dh_install:
        sed -i -e "s/GRML_LIVE_VERSION='\*\*\*UNRELEASED\*\*\*'/GRML_LIVE_VERSION='$(DEB_VERSION)'/" grml-live
        find . -name grml-live.8
        dh_install
        sed -i -e "s/GRML_LIVE_VERSION='\*\*\*UNRELEASED\*\*\*'/GRML_LIVE_VERSION='$(DEB_VERSION)'/" grml-live
        find . -name grml-live.8
        dh_install
+       # zsh completion
+       dh_install etc/zsh/completion.d/_grml-live usr/share/zsh/vendor-completions
 
 override_dh_fixperms:
        dh_fixperms
 
 override_dh_fixperms:
        dh_fixperms
index 639ad88..da845af 100644 (file)
@@ -62,8 +62,8 @@ Use the specified architecture instead of the currently running one.  This
 allows building a 32bit system on a 64bit host (though you can't build a 64bit
 system on a 32bit system/kernel of course). Please notice that real
 crosscompiling (like building a ppc system on x86) isn't possible due to the
 allows building a 32bit system on a 64bit host (though you can't build a 64bit
 system on a 32bit system/kernel of course). Please notice that real
 crosscompiling (like building a ppc system on x86) isn't possible due to the
-nature and the need of working in a chroot. Currently supported values: i386
-and amd64.
+nature and the need of working in a chroot. Currently supported values: i386,
+amd64 and arm64.
 
   -b::
 
 
   -b::
 
@@ -82,7 +82,7 @@ really know that you do not want to update the chroot.
   -c **CLASSES**::
 
 Specify the CLASSES to be used for building the ISO via FAI.  By default only
   -c **CLASSES**::
 
 Specify the CLASSES to be used for building the ISO via FAI.  By default only
-the classes GRMLBASE, GRML_FULL and I386/AMD64 (depending on system
+the classes GRMLBASE, GRML_FULL and I386/AMD64/ARM64 (depending on system
 architecture) are assumed.  Additionally you can specify a class providing a
 (grml-)kernel (see <<classes,the 'CLASSES' section in this document>> for
 details about available classes). So instead of GRML_FULL you can also use e.g.
 architecture) are assumed.  Additionally you can specify a class providing a
 (grml-)kernel (see <<classes,the 'CLASSES' section in this document>> for
 details about available classes). So instead of GRML_FULL you can also use e.g.
@@ -202,7 +202,7 @@ Specify name of the release.
 
 Specify the Debian suite you want to use for your live-system. If unset defaults
 to "testing". Supported values are: stable, testing, unstable (or their
 
 Specify the Debian suite you want to use for your live-system. If unset defaults
 to "testing". Supported values are: stable, testing, unstable (or their
-corresponding release names like "stretch"). Please be aware that recent Debian
+corresponding release names like "bookworm"). Please be aware that recent Debian
 suites might require a recent base.tgz
 (${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
 debootstrap.
 suites might require a recent base.tgz
 (${GRML_FAI_CONFIG}/config/basefiles/$CLASSNAME.tar.gz) or a recent version of
 debootstrap.
@@ -297,9 +297,9 @@ losing the simplicity in the build process.
 The main and base class provided by grml-live is named GRMLBASE. It's strongly
 recommended to **always** use the class GRMLBASE when building an ISO using
 grml-live, as well as the architecture dependent class which provides the kernel
 The main and base class provided by grml-live is named GRMLBASE. It's strongly
 recommended to **always** use the class GRMLBASE when building an ISO using
 grml-live, as well as the architecture dependent class which provides the kernel
-(being 'I386' for x86_32 and 'AMD64' for x86_64) and a GRML_* class (like
-GRML_SMALL or GRML_FULL). The following files and directories are
-relevant for class GRMLBASE by default:
+(being 'I386' for x86_32, 'AMD64' for x86_64 and 'ARM64' for arm64) and a GRML_*
+class (like GRML_SMALL or GRML_FULL).
+The following files and directories are relevant for class GRMLBASE by default:
 
   ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/
   ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE
 
   ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/
   ${GRML_FAI_CONFIG}/config/debconf/GRMLBASE
@@ -312,10 +312,10 @@ files/directories.
 
 If you want to use your own configuration, extend an existing configuration
 and/or add additional packages to your ISO just invent a new class (or extend an
 
 If you want to use your own configuration, extend an existing configuration
 and/or add additional packages to your ISO just invent a new class (or extend an
-existing one). For example if you want to use your own class named "FOOBAR" just
-set CLASSES="GRMLBASE,GRML_SMALL,AMD64,FOOBAR" inside /etc/grml/grml-live.local
-or invoke grml-live using the classes option: "grml-live -c
-GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...".
+existing one). For example if you want to use your own class named "FOOBAR" on
+your amd64 build, et CLASSES="GRMLBASE,GRML_SMALL,AMD64,FOOBAR" inside
+/etc/grml/grml-live.local or invoke grml-live using the classes option:
+"grml-live -c GRMLBASE,GRML_SMALL,AMD64,FOOBAR ...".
 
 More details regarding the class concept can be found in the documentation of
 FAI itself (being available at /usr/share/doc/fai-doc/).
 
 More details regarding the class concept can be found in the documentation of
 FAI itself (being available at /usr/share/doc/fai-doc/).
@@ -332,13 +332,6 @@ selected. The following classes are predefined:
 
 * DEBORPHAN: get rid of all packages listed in output of deborphan
 
 
 * DEBORPHAN: get rid of all packages listed in output of deborphan
 
-* FILE_RC: instead of using systemd as init system use file-rc instead. file-rc
-was the init system used by Grml until and including stable release 2014.11,
-starting with beginning of 2016 Grml switched to systemd instead. If you want to
-build a live system in the old style using file-rc instead of systemd then enable
-this class. Please notice that the Grml team no longer provides support for it
-though.
-
 * FRESHCLAM: execute freshclam (if it's present) to update clamav definitions
 (increases resulting ISO size ~70MB). By default it's skipped to avoid bigger
 ISO size.
 * FRESHCLAM: execute freshclam (if it's present) to update clamav definitions
 (increases resulting ISO size ~70MB). By default it's skipped to avoid bigger
 ISO size.
@@ -385,6 +378,8 @@ placed in the output directory under grml_sources.
 * XORG: providing important packages for use with a base grml-featured X.org
 setup
 
 * XORG: providing important packages for use with a base grml-featured X.org
 setup
 
+* ZFS: package selection to add support for OpenZFS/zfsonlinux
+
 [[files]]
 Files
 -----
 [[files]]
 Files
 -----
@@ -520,9 +515,9 @@ The easiest way to get a running grml-live setup is to just use Grml.
 Of course using grml-live on a plain, original Debian installation is supported
 as well. So there we go.
 
 Of course using grml-live on a plain, original Debian installation is supported
 as well. So there we go.
 
-What we have: plain, original Debian stretch (9.x).
+What we have: plain, original Debian bookworm (v12).
 
 
-What we want: build a Grml ISO based on Debian/stretch for the amd64 architecture
+What we want: build a Grml ISO based on Debian/bookworm for the amd64 architecture
 using grml-live.
 
 Instructions
 using grml-live.
 
 Instructions
@@ -549,6 +544,7 @@ Instructions
   # mkdir -p /etc/grml/fai/config/basefiles/
   # mv I386.tar.gz /etc/grml/fai/config/basefiles/
   # mv AMD64.tar.gz /etc/grml/fai/config/basefiles/
   # mkdir -p /etc/grml/fai/config/basefiles/
   # mv I386.tar.gz /etc/grml/fai/config/basefiles/
   # mv AMD64.tar.gz /etc/grml/fai/config/basefiles/
+  # mv ARM64.tar.gz /etc/grml/fai/config/basefiles/
 
   # install relevant tools
   apt-get --no-install-recommends install grml-live
 
   # install relevant tools
   apt-get --no-install-recommends install grml-live
@@ -564,7 +560,7 @@ Instructions
   # CHROOT_INSTALL="/etc/grml/fai/chroot_install"
   ## adjust if necessary (defaults to ./grml/):
   ## OUTPUT="/srv/grml-live"
   # CHROOT_INSTALL="/etc/grml/fai/chroot_install"
   ## adjust if necessary (defaults to ./grml/):
   ## OUTPUT="/srv/grml-live"
-  FAI_DEBOOTSTRAP="stretch http://ftp.debian.org/debian/"
+  FAI_DEBOOTSTRAP="bookworm http://deb.debian.org/debian/"
   # ARCH="amd64"
   CLASSES="GRMLBASE,GRML_FULL,AMD64"
   EOF
   # ARCH="amd64"
   CLASSES="GRMLBASE,GRML_FULL,AMD64"
   EOF
@@ -687,7 +683,7 @@ FAI_DEBOOTSTRAP:
   [...]
   APT_PROXY="http://localhost:3142/"
   [...]
   [...]
   APT_PROXY="http://localhost:3142/"
   [...]
-  FAI_DEBOOTSTRAP="stretch http://localhost:3142/ftp.debian.org/debian stretch main contrib non-free"
+  FAI_DEBOOTSTRAP="bookworm http://localhost:3142/ftp.debian.org/debian bookworm main contrib non-free"
 
 Make sure apt-cacher-ng is running ('/etc/init.d/apt-cacher-ng restart').
 That's it.  All downloaded files will be cached in /var/cache/apt-cacher-ng then.
 
 Make sure apt-cacher-ng is running ('/etc/init.d/apt-cacher-ng restart').
 That's it.  All downloaded files will be cached in /var/cache/apt-cacher-ng then.
@@ -710,26 +706,27 @@ syslinux, used by default for official Grml images) then just execute:
   % isohybrid grml.iso
 
 [[create-a-base-tgz]]
   % isohybrid grml.iso
 
 [[create-a-base-tgz]]
-How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz)
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+How do I create a base tar.gz (I386.tar.gz or AMD64.tar.gz or ARM64.tar.gz)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 [[basetgz]]
 
 First of all create the chroot using debootstrap (requires root):
 
   BASECHROOT='/tmp/basefile'  # path where the chroot gets generated
 [[basetgz]]
 
 First of all create the chroot using debootstrap (requires root):
 
   BASECHROOT='/tmp/basefile'  # path where the chroot gets generated
-  SUITE='stretch'              # using the current stable release should always work
-  debootstrap --exclude=info,tasksel,tasksel-data "$SUITE" "$BASECHROOT" http://ftp.debian.org/debian
-  tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' -zcf "${SUITE}".tar.gz ./
+  SUITE='bookworm'            # using the current stable release should always work
+  debootstrap --exclude=info,tasksel,tasksel-data,isc-dhcp-client,isc-dhcp-common "${SUITE}" "${BASECHROOT}" http://deb.debian.org/debian
+  tar -C "$BASECHROOT" --exclude='var/cache/apt/archives/*.deb' --exclude 'var/lib/apt/lists/*_*' --xattrs --xattrs-include='*.*' --acls -zcf "${SUITE}".tar.gz ./
 
 [TIP]
 By default debootstrap builds a chroot matching the architecture of the running
 host system. If you're using an amd64 system and want to build an i386 base.tgz
 then invoke debootstrap using the '--arch i386' option. Disclaimer: building an
 AMD64 base.tgz won't work if you are using a 32bit kernel system of course.
 
 [TIP]
 By default debootstrap builds a chroot matching the architecture of the running
 host system. If you're using an amd64 system and want to build an i386 base.tgz
 then invoke debootstrap using the '--arch i386' option. Disclaimer: building an
 AMD64 base.tgz won't work if you are using a 32bit kernel system of course.
+Also building an ARM64 base.tgz requires an arm64 system.
 
 Finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
 that it needs to be uppercase letters matching the class names, so: e.g.
 
 Finally place the generated tarball in /etc/grml/fai/config/basefiles/ (note
 that it needs to be uppercase letters matching the class names, so: e.g.
-AMD64.tar.gz for amd64 and I386.tar.gz for i386).
+AMD64.tar.gz for amd64, I386.tar.gz for i386 or ARM64.tar.gz for arm64).
 
 Then executing grml-live should use this file as base system instead of executing
 debootstrap. Check out the output for something like:
 
 Then executing grml-live should use this file as base system instead of executing
 debootstrap. Check out the output for something like:
index 3a43fc9..89b3503 100644 (file)
@@ -1,5 +1,7 @@
 locales locales/default_environment_locale select en_US.UTF-8
 locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
 locales locales/default_environment_locale select en_US.UTF-8
 locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
+man-db man-db/auto-update boolean false
+man-db man-db/build-database boolean false
 openssh-server openssh-server/permit-root-login boolean true
 passwd passwd/shadow boolean true
 portmap portmap/loopback boolean false
 openssh-server openssh-server/permit-root-login boolean true
 passwd passwd/shadow boolean true
 portmap portmap/loopback boolean false
diff --git a/etc/grml/fai/config/files/etc/apt/preferences.d/jessie-backports/DEBIAN_JESSIE b/etc/grml/fai/config/files/etc/apt/preferences.d/jessie-backports/DEBIAN_JESSIE
deleted file mode 100644 (file)
index a877c25..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-Explanation: this file was installed by grml-live to allow installation of systemd/udev (required for systemd-container) from backports
-Package: systemd libsystemd0 libpam-systemd libapparmor1 ifupdown systemd-sysv udev libudev1 usb-modeswitch
-Pin: release a=jessie-backports
-Pin-Priority: 997
-
-Explanation: this file was installed by grml-live to allow installation of linux-base (required for kernel packages) from backports
-Package: linux-base firmware-misc-nonfree firmware-linux-nonfree firmware-linux
-Pin: release a=jessie-backports
-Pin-Priority: 997
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BOOKWORM b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BOOKWORM
new file mode 100644 (file)
index 0000000..6d48e20
--- /dev/null
@@ -0,0 +1,7 @@
+# official debian repository:
+  deb     http://ftp.debian.org/debian/ bookworm main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ bookworm main contrib non-free-firmware non-free
+
+# security updates:
+  deb     http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware non-free
+  deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware non-free
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BUSTER b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_BUSTER
deleted file mode 100644 (file)
index 6be17af..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# official debian repository:
-  deb     http://ftp.debian.org/debian/ buster main contrib non-free
-  deb-src http://ftp.debian.org/debian/ buster main contrib non-free
-
-# security updates:
-  deb     http://security.debian.org/ buster/updates main contrib
-  deb-src http://security.debian.org/ buster/updates main contrib
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_JESSIE b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_JESSIE
deleted file mode 100644 (file)
index 6e8cf12..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# official debian repository:
-  deb     http://ftp.debian.org/debian/ jessie main contrib non-free
-  deb-src http://ftp.debian.org/debian/ jessie main contrib non-free
-
-# security updates:
-  deb     http://security.debian.org/ jessie/updates main contrib
-  deb-src http://security.debian.org/ jessie/updates main contrib
-
-# backports:
-  deb     http://ftp.debian.org/debian/ jessie-backports main contrib non-free
-  deb-src http://ftp.debian.org/debian/ jessie-backports main contrib non-free
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_LENNY b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_LENNY
deleted file mode 100644 (file)
index 9f9aaab..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-# official debian repository:
-  deb     http://ftp.debian.org/debian/ lenny main contrib non-free
-  deb-src http://ftp.debian.org/debian/ lenny main contrib non-free
-
-# security updates:
-  deb     http://security.debian.org/ lenny/updates main contrib
-  deb-src http://security.debian.org/ lenny/updates main contrib
index b20afb0..2732475 100644 (file)
@@ -1,3 +1,3 @@
 # official debian repository:
 # official debian repository:
-  deb     http://ftp.debian.org/debian/ sid main contrib non-free
-  deb-src http://ftp.debian.org/debian/ sid main contrib non-free
+  deb     http://ftp.debian.org/debian/ sid main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ sid main contrib non-free-firmware non-free
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_SQUEEZE b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_SQUEEZE
deleted file mode 100644 (file)
index 548e7ed..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# official debian repository:
-  deb     http://ftp.debian.org/debian/ squeeze main contrib non-free
-  deb-src http://ftp.debian.org/debian/ squeeze main contrib non-free
-
-# security updates:
-  deb     http://security.debian.org/ squeeze/updates main contrib
-  deb-src http://security.debian.org/ squeeze/updates main contrib
-
-# backports:
-  deb     http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
-  deb-src http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
index a952b1e..3585bfb 100644 (file)
@@ -1,11 +1,11 @@
 # official debian repository:
 # official debian repository:
-  deb     http://ftp.debian.org/debian/ stable main contrib non-free
-  deb-src http://ftp.debian.org/debian/ stable main contrib non-free
+  deb     http://ftp.debian.org/debian/ stable main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ stable main contrib non-free-firmware non-free
 
 # security updates:
 
 # security updates:
-  deb     http://security.debian.org/debian-security stable-security main
-  deb-src http://security.debian.org/debian-security stable-security main
+  deb     http://security.debian.org/debian-security stable-security main contrib non-free-firmware non-free
+  deb-src http://security.debian.org/debian-security stable-security main contrib non-free-firmware non-free
 
 # backports:
 
 # backports:
-  deb     http://ftp.debian.org/debian/ bullseye-backports main contrib non-free
-  deb-src http://ftp.debian.org/debian/ bullseye-backports main contrib non-free
+  deb     http://ftp.debian.org/debian/ stable-backports main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ stable-backports main contrib non-free-firmware non-free
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STRETCH b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STRETCH
deleted file mode 100644 (file)
index f27cc7f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-# official debian repository:
-  deb     http://ftp.debian.org/debian/ stretch main contrib non-free
-  deb-src http://ftp.debian.org/debian/ stretch main contrib non-free
-
-# security updates:
-  deb     http://security.debian.org/ stretch/updates main contrib
-  deb-src http://security.debian.org/ stretch/updates main contrib
-
-# backports:
-  deb     http://ftp.debian.org/debian/ stretch-backports main contrib non-free
-  deb-src http://ftp.debian.org/debian/ stretch-backports main contrib non-free
index a7dbe01..9b6ef42 100644 (file)
@@ -1,7 +1,7 @@
 # official debian repository:
 # official debian repository:
-  deb     http://ftp.debian.org/debian/ testing main contrib non-free
-  deb-src http://ftp.debian.org/debian/ testing main contrib non-free
+  deb     http://ftp.debian.org/debian/ testing main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ testing main contrib non-free-firmware non-free
 
 # security updates:
 
 # security updates:
-  deb     http://security.debian.org/ testing-security main contrib
-  deb-src http://security.debian.org/ testing-security main contrib
+  deb     http://security.debian.org/ testing-security main contrib non-free-firmware non-free
+  deb-src http://security.debian.org/ testing-security main contrib non-free-firmware non-free
diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TRIXIE b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TRIXIE
new file mode 100644 (file)
index 0000000..7403459
--- /dev/null
@@ -0,0 +1,7 @@
+# official debian repository:
+  deb     http://ftp.debian.org/debian/ trixie main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ trixie main contrib non-free-firmware non-free
+
+# security updates:
+  deb     http://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free
+  deb-src http://security.debian.org/debian-security trixie-security main contrib non-free-firmware non-free
index 1491bcb..f280307 100644 (file)
@@ -1,3 +1,3 @@
 # official debian repository:
 # official debian repository:
-  deb     http://ftp.debian.org/debian/ unstable main contrib non-free
-  deb-src http://ftp.debian.org/debian/ unstable main contrib non-free
+  deb     http://ftp.debian.org/debian/ unstable main contrib non-free-firmware non-free
+  deb-src http://ftp.debian.org/debian/ unstable main contrib non-free-firmware non-free
index 37df293..ffd52b7 100644 (file)
@@ -16,12 +16,12 @@ devpts         /dev/pts         devpts noauto,mode=0622                      0
 /dev/dvd       /media/dvd       auto   user,noauto,exec,ro                   0      0
 # some other examples:
 # /dev/hda1      /Grml         ext3    dev,suid,user,noauto 0  2
 /dev/dvd       /media/dvd       auto   user,noauto,exec,ro                   0      0
 # some other examples:
 # /dev/hda1      /Grml         ext3    dev,suid,user,noauto 0  2
-# //1.2.3.4/pub  /smb/pub      smbfs   defaults,user,noauto,uid=grml,gid=grml 0 0
+# //192.0.2.42/pub  /smb/pub      smbfs   defaults,user,noauto,uid=grml,gid=grml 0 0
 # linux:/pub     /beer         nfs     defaults             0  0
 # tmpfs          /tmp          tmpfs   size=300M            0  0
 # none           /proc/bus/usb usbfs   defaults,nodev,noexec,nosuid,noauto,devgid=1001,devmode=664 0 0
 # linux:/pub     /beer         nfs     defaults             0  0
 # tmpfs          /tmp          tmpfs   size=300M            0  0
 # none           /proc/bus/usb usbfs   defaults,nodev,noexec,nosuid,noauto,devgid=1001,devmode=664 0 0
-# 192.168.1.101:/backups /media/nfs nfs  defaults,user,wsize=8192,rsize=8192 0 0
+# 192.0.2.42:/backups /media/nfs nfs  defaults,user,wsize=8192,rsize=8192 0 0
 #
 #
-# Warning! Please do *not* change any lines below because they are auto-generated by.
-# If you want to disable rebuildfstab set CONFIG_FSTAB='no' in /etc/grml/autoconfig!
+# Warning! Please do *not* change any lines below because they are auto-generated.
+# If you want to disable rebuildfstab set CONFIG_FSTAB='no' in /etc/grml/autoconfig.
 # See 'man grml-udev-rebuildfstab' for more details about the following entries.
 # See 'man grml-udev-rebuildfstab' for more details about the following entries.
diff --git a/etc/grml/fai/config/files/etc/initramfs-tools/modules/GRMLBASE b/etc/grml/fai/config/files/etc/initramfs-tools/modules/GRMLBASE
new file mode 100644 (file)
index 0000000..4500f80
--- /dev/null
@@ -0,0 +1,28 @@
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/80-initramfs script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/initramfs-tools/modules/GRMLBASE
+################################################################################
+# List of modules that you want to include in your initramfs.
+# They will be loaded at boot time in the order below.
+#
+# Syntax:  module_name [args ...]
+#
+# You must run update-initramfs(8) to effect this change.
+#
+# Examples:
+#
+# raid1
+# sd_mod
+
+# workaround for broken netboot images, see
+# https://bugs.debian.org/1022172 +
+# https://github.com/grml/grml/issues/192
+auth_rpcgss
+grace
+lockd
+nfs
+nfs_acl
+nfsv3
+rpcrdma
+rpcsec_gss_krb5
+sunrpc
diff --git a/etc/grml/fai/config/files/etc/inittab/GRMLBASE b/etc/grml/fai/config/files/etc/inittab/GRMLBASE
deleted file mode 100644 (file)
index 7e49dba..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# This file was deployed via grml-live's
-# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup script, using
-# ${GRML_FAI_CONFIG}/config/files/etc/inittab/GRMLBASE
-################################################################################
-# Filename:      inittab
-# Purpose:       init(8) configuration.
-# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports:   see http://grml.org/bugs/
-# License:       This file is licensed under the GPL v2.
-################################################################################
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:respawn:/bin/zsh --login >/dev/tty1 2>&1 </dev/tty1
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/grml-halt
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/grml-reboot
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-pf::powerwait:/etc/init.d/powerfail start
-pn::powerfailnow:/etc/init.d/powerfail now
-po::powerokwait:/etc/init.d/powerfail stop
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-#  <id>:<runlevels>:<action>:<process>
-# 4 virtual consoles with immortal shells
-# Note that on most Debian systems tty7 is used by the X Window System.
-# Use tty8 a second xserver.
-1:12345:respawn:/sbin/grml-runtty /dev/tty1 /usr/share/grml-scripts/run-welcome root
-2:2345:respawn:/sbin/grml-runtty /dev/tty2 /usr/share/grml-scripts/run-screen root
-3:2345:respawn:/sbin/grml-runtty /dev/tty3 /usr/share/grml-scripts/run-screen root
-4:2345:respawn:/sbin/grml-runtty /dev/tty4 /usr/share/grml-scripts/run-screen $USERNAME
-5:2345:respawn:/sbin/grml-runtty /dev/tty5 /bin/zsh $USERNAME
-6:2345:respawn:/sbin/grml-runtty /dev/tty6 /bin/zsh $USERNAME
-9:2345:respawn:/sbin/getty  38400 tty9
-#10:2345:respawn:/sbin/grml-runtty /dev/tty10 /usr/sbin/grml-iptstate root
-11:2345:respawn:/sbin/grml-runtty /dev/tty11 /usr/bin/htop root
-12:2345:respawn:/sbin/grml-runtty /dev/tty12 /usr/share/grml-scripts/run-multitail root
-
-################################################################################
-# Please do NOT remove the line with the marker as it is important for the
-# bootoption serial/console. line(s) will be inserted here according to the
-# provided kernel command line:
-#grmlserial# is a marker, important for the bootoption serial/console
-################################################################################
-
-# Example how to put a getty on a serial line (for a terminal)
-# T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-# T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-#-- isdnutils begin
-# Change the lines below for your local setup and uncomment them.
-# Use "init q" to reread inittab.
-# look at the vboxgetty / mgetty manpage for more information (mgetty isn't
-# standard!)
-#
-#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
-#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -s 38400 ttyI1
-#-- isdnutils end
-
-# Run X Window session from CDROM in runlevel 5
-#w5:5:wait:/bin/sleep 2
-#x5:5:wait:/etc/init.d/xsession start
-
-# Use line below to use secvpnmon. Use init q to reread inittab.
-# SVPN:2345:respawn:/usr/sbin/secvpnmon
diff --git a/etc/grml/fai/config/files/etc/inittab/GRML_SMALL b/etc/grml/fai/config/files/etc/inittab/GRML_SMALL
deleted file mode 100644 (file)
index 09f48eb..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-# This file was deployed via grml-live's
-# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/15-initsetup script, using
-# ${GRML_FAI_CONFIG}/config/files/etc/inittab/GRML_SMALL
-################################################################################
-# Filename:      inittab.small
-# Purpose:       init(8) configuration for grml-small
-# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports:   see http://grml.org/bugs/
-# License:       This file is licensed under the GPL v2.
-################################################################################
-
-# The default runlevel.
-id:2:initdefault:
-
-# Boot-time system configuration/initialization script.
-# This is run first except when booting in emergency (-b) mode.
-si::sysinit:/etc/init.d/rcS
-
-# What to do in single-user mode.
-~~:S:respawn:/bin/zsh --login >/dev/tty1 2>&1 </dev/tty1
-
-# /etc/init.d executes the S and K scripts upon change
-# of runlevel.
-#
-# Runlevel 0 is halt.
-# Runlevel 1 is single-user.
-# Runlevels 2-5 are multi-user.
-# Runlevel 6 is reboot.
-
-l0:0:wait:/etc/init.d/grml-halt
-l1:1:wait:/etc/init.d/rc 1
-l2:2:wait:/etc/init.d/rc 2
-l3:3:wait:/etc/init.d/rc 3
-l4:4:wait:/etc/init.d/rc 4
-l5:5:wait:/etc/init.d/rc 5
-l6:6:wait:/etc/init.d/grml-reboot
-
-# What to do when CTRL-ALT-DEL is pressed.
-ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now
-
-# Action on special keypress (ALT-UpArrow).
-kb::kbrequest:/bin/echo "Keyboard Request -- edit /etc/inittab to let this work."
-
-# What to do when the power fails/returns.
-pf::powerwait:/etc/init.d/powerfail start
-pn::powerfailnow:/etc/init.d/powerfail now
-po::powerokwait:/etc/init.d/powerfail stop
-
-# /sbin/getty invocations for the runlevels.
-#
-# The "id" field MUST be the same as the last
-# characters of the device (after "tty").
-#
-# Format:
-#  <id>:<runlevels>:<action>:<process>
-# 4 virtual consoles with immortal shells
-# Note that on most Debian systems tty7 is used by the X Window System.
-# Use tty8 a second xserver.
-1:12345:respawn:/sbin/grml-runtty /dev/tty1 /usr/share/grml-scripts/run-welcome root
-2:2345:respawn:/sbin/grml-runtty /dev/tty2 /usr/share/grml-scripts/run-screen root
-3:2345:respawn:/sbin/grml-runtty /dev/tty3 /usr/share/grml-scripts/run-screen root
-#4:2345:respawn:/sbin/grml-runtty /dev/tty4 /usr/share/grml-scripts/run-screen $USERNAME
-#5:2345:respawn:/sbin/grml-runtty /dev/tty5 /bin/zsh $USERNAME
-#6:2345:respawn:/sbin/grml-runtty /dev/tty6 /bin/zsh $USERNAME
-#9:2345:respawn:/sbin/getty  38400 tty9
-#10:2345:respawn:/sbin/grml-runtty /dev/tty10 /usr/sbin/grml-iptstate root
-#11:2345:respawn:/sbin/grml-runtty /dev/tty11 /usr/bin/htop root
-#12:2345:respawn:/sbin/grml-runtty /dev/tty12 /usr/share/grml-scripts/run-multitail root
-
-################################################################################
-# Please do NOT remove the line with the marker as it is important for the
-# bootoption serial/console. line(s) will be inserted here according to the
-# provided kernel command line:
-#grmlserial# is a marker, important for the bootoption serial/console
-################################################################################
-
-# Example how to put a getty on a serial line (for a terminal)
-# T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
-# T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100
-
-#-- isdnutils begin
-# Change the lines below for your local setup and uncomment them.
-# Use "init q" to reread inittab.
-# look at the vboxgetty / mgetty manpage for more information (mgetty isn't
-# standard!)
-#
-#I0:2345:respawn:/usr/sbin/vboxgetty -d /dev/ttyI0
-#I1:2345:respawn:/sbin/mgetty -D -m '"" ATZ OK AT&Eyourmsnhere OK AT&B512 OK' -s 38400 ttyI1
-#-- isdnutils end
-
-# Run X Window session from CDROM in runlevel 5
-#w5:5:wait:/bin/sleep 2
-#x5:5:wait:/etc/init.d/xsession start
-
-# Use line below to use secvpnmon. Use init q to reread inittab.
-# SVPN:2345:respawn:/usr/sbin/secvpnmon
diff --git a/etc/grml/fai/config/files/etc/locale.conf/GRMLBASE b/etc/grml/fai/config/files/etc/locale.conf/GRMLBASE
new file mode 100644 (file)
index 0000000..37206c4
--- /dev/null
@@ -0,0 +1,6 @@
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/25-locales script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/locale.conf/GRMLBASE
+################################################################################
+# This file lists the locales configuration as used by e.g. systemd-firstboot
+LANG=C.UTF-8
diff --git a/etc/grml/fai/config/files/etc/lsb-base-logging.sh/GRMLBASE b/etc/grml/fai/config/files/etc/lsb-base-logging.sh/GRMLBASE
deleted file mode 100644 (file)
index ec31701..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# This file was deployed via grml-live's
-# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/20-sudo script, using
-# ${GRML_FAI_CONFIG}/config/files/etc/lsb-base-logging.sh/GRMLBASE
-
-# override output of the status on the left side of the terminal
-# introduced in lsb-base >= 4.1+Debian1
-log_end_msg_pre() { :; }
-log_action_msg_pre() { :; }
-
-if log_use_fancy_output; then
-  __LSB_PFX="$($TPUT -S << EOGREEN
-  bold
-  setaf 2
-EOGREEN
-  ) * $($TPUT -S << EONORMAL
-  sgr0
-  op
-EONORMAL
-  )"
-else
-  __LSB_PFX=" * "
-fi
-
-log_daemon_msg_pre() {
-  printf "${__LSB_PFX}"
-}
-log_action_msg() {
-  printf "${__LSB_PFX}$@."
-}
-log_action_begin_msg() {
-  printf "${__LSB_PFX}$@... "
-}
index 41761bd..87b9e67 100644 (file)
@@ -6,7 +6,6 @@ Restart=always
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty2
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty2
-Environment="SHELL=/bin/zsh"
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
 
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
 
index 072e055..786468e 100644 (file)
@@ -6,7 +6,6 @@ Restart=always
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty3
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty3
-Environment="SHELL=/bin/zsh"
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
 
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
 
index fcf42ef..a94f83a 100644 (file)
@@ -6,7 +6,6 @@ Restart=always
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty4
 StandardInput=tty
 StandardOutput=tty
 TTYPath=/dev/tty4
-Environment="SHELL=/bin/zsh"
 User=$USERNAME
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
 User=$USERNAME
 ExecStart=
 ExecStart=-/usr/share/grml-scripts/run-screen
index e41b058..3a6729e 100644 (file)
@@ -7,8 +7,7 @@ ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
 
 [Service]
 EnvironmentFile=-/etc/default/ssh
 
 [Service]
 EnvironmentFile=-/etc/default/ssh
-ExecStartPre=-/bin/sh -c "/usr/bin/ssh-keygen -A"
-ExecStartPre=/usr/sbin/sshd -t
+ExecStartPre=-/usr/bin/ssh-keygen -A
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
 ExecReload=/usr/sbin/sshd -t
 ExecReload=/bin/kill -HUP $MAINPID
 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
 ExecReload=/usr/sbin/sshd -t
 ExecReload=/bin/kill -HUP $MAINPID
diff --git a/etc/grml/fai/config/files/etc/tmpfiles.d/man-db.conf/GRMLBASE b/etc/grml/fai/config/files/etc/tmpfiles.d/man-db.conf/GRMLBASE
new file mode 100644 (file)
index 0000000..c248a47
--- /dev/null
@@ -0,0 +1,6 @@
+# This file was deployed via grml-live's
+# ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/85-systemd script, using
+# ${GRML_FAI_CONFIG}/config/files/etc/tmpfiles.d/man-db.conf/GRMLBASE
+
+# Override default (age set to 1w) to avoid disappearing mandb caches
+d /var/cache/man 0755 man man -
index 4397911..697dd05 100644 (file)
@@ -4,7 +4,7 @@
 # Filename:      startpage.html
 # Purpose:       information page on Grml
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
 # Filename:      startpage.html
 # Purpose:       information page on Grml
 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports:   see http://grml.org/bugs/
+# Bug-Reports:   see https://grml.org/bugs/
 # License:       This file is licensed under the GPL v2.
 ################################################################################
 -->
 # License:       This file is licensed under the GPL v2.
 ################################################################################
 -->
 <div class="container"><div class="content">
 <h1 align="center">Grml Live Linux</h1>
 
 <div class="container"><div class="content">
 <h1 align="center">Grml Live Linux</h1>
 
-<p>Grml is a Debian based Linux Live system for x86 and x86_64 systems. Its main
-purpose is providing a system for system administrators.</p>
+<p>
+Grml is a Debian based Linux Live system for system administrators and users of texttools.
+</p>
 
 
-<p>You are reading this page probably in the w3m or links browser on the console
-or in xlinks2 or Firefox/Iceweasel running under X. To switch between
-links in w3m and links press the &lt;tab&gt;-key. You can move the cursor via
-the cursor keys.  'B' is the key for going back one page in the browser history,
-pressing 'H' brings you to the help of w3m.  Press 'Q' for exiting w3m, links
-and xlinks2.</p>
+<p>
+You are reading this page probably in the w3m or links browser on the console, or in Firefox running under X.
+Press 'Q' for exiting w3m and links.</p>
 
 
-<p><strong>Note:</strong> If you find bugs, please <a
-href="http://grml.org/bugs/">report them</a>!  Thank you for helping
-us to improve Grml!</p>
-
-<h2>Overview</h2>
-
-<p>Find the package list of installed software at <a
-  href="http://grml.org/files/">grml.org/files/</a>.</p>
+<p>
+<strong>Notice:</strong> if you find any bugs please <a href="https://grml.org/bugs/">report them to the Grml team</a>!
+Thank you for helping us to improve Grml!
+</p>
 
 <h2>Quickstart</h2>
 
 <ul>
 
 <h2>Quickstart</h2>
 
 <ul>
+  <li>Find the package list of installed software at <a href="https://grml.org/files/">grml.org/files/</a>.</li>
   <li>Use 'grml-tips $KEYWORD' to get hints and tips.</li>
   <li>Use 'grml-x' to start the X window system.</li>
 </ul>
 
 <h2>Online resources</h2>
 
   <li>Use 'grml-tips $KEYWORD' to get hints and tips.</li>
   <li>Use 'grml-x' to start the X window system.</li>
 </ul>
 
 <h2>Online resources</h2>
 
-<p>Subscribe to <a href="http://grml.org/mailinglist/">the Grml mailinglist</a> and join #grml on irc.freenode.net!</p>
+<p>
+Subscribe to <a href="https://grml.org/mailinglist/">the Grml mailinglist</a>, or join us on IRC in #grml on irc.oftc.net.
+</p>
 
 <ul>
 
 <ul>
-  <li><a href="http://grml.org/">grml.org</a></li>
-  <li><a href="http://grml.org/news/">news @ grml.org</a></li>
-  <li><a href="http://grml.org/faq/">faq @ grml.org</a></li>
-  <li><a href="http://grml.org/docs/">docs @ grml.org</a></li>
-  <li><a href="http://grml.org/bugs/">bugs @ grml.org</a></li>
-  <li><a href="http://grml.org/zsh/">zsh @ grml.org</a></li>
-  <li><a href="http://grml.org/contact/">contact the grml-team</a></li>
-  <li><a href="http://www.tldp.org/">Linux Documentation Project</a></li>
+  <li><a href="https://grml.org/">grml.org</a></li>
+  <li><a href="https://wiki.grml.org/">grml-Wiki</a></li>
+  <li><a href="https://grml.org/news/">news @ grml.org</a></li>
+  <li><a href="https://grml.org/faq/">faq @ grml.org</a></li>
+  <li><a href="https://grml.org/docs/">docs @ grml.org</a></li>
+  <li><a href="https://grml.org/bugs/">bugs @ grml.org</a></li>
+  <li><a href="https://grml.org/zsh/">zsh @ grml.org</a></li>
+  <li><a href="https://grml.org/contact/">contact the grml-team</a></li>
 </ul>
 
 </ul>
 
-<p>Press 'Q' for exiting the browsers w3m, links and xlinks2.</p>
+<p>
+Press 'Q' for exiting the browsers w3m and links.
+</p>
+
+<p>
+Enjoy Grml!
+</p>
 
 
-<p>Have fun with Grml!</p>
 </div>
 <div class="copyright">
 </div>
 <div class="copyright">
-&copy; Copyright 2004++ by the <a href="http://grml.org/team/">grml-team</a>.
+&copy; Copyright 2004++ by the <a href="https://grml.org/team/">Grml team</a>.
 </div>
 
 <!-- Piwik --> 
 </div>
 
 <!-- Piwik --> 
index 6c28c80..fed1ce9 100644 (file)
@@ -1,3 +1,4 @@
 run/*
 var/run/*
 var/lock/*
 run/*
 var/run/*
 var/lock/*
+var/lib/dkms/*
index c9932d8..2c4a880 100755 (executable)
@@ -6,11 +6,6 @@
 # License:       This file is licensed under the GPL v2 or any later version.
 ################################################################################
 
 # License:       This file is licensed under the GPL v2 or any later version.
 ################################################################################
 
-FILE_RC=false
-if ifclass FILE_RC ; then
-  FILE_RC=true
-fi
-
 set -u
 set -e
 
 set -u
 set -e
 
@@ -66,15 +61,16 @@ EOF
    # anyway
    $ROOTCMD /usr/lib/dpkg/methods/apt/update /var/lib/dpkg/ apt apt
 
    # anyway
    $ROOTCMD /usr/lib/dpkg/methods/apt/update /var/lib/dpkg/ apt apt
 
-  if $FILE_RC ; then
-    echo "Installing file-rc as FILE_RC class is enabled."
-    # newer aptitude versions won't remove essential packages using
-    # 'aptitude -f -y install file-rc' anymore, therefore force it:
-    $ROOTCMD aptitude -o Aptitude::ProblemResolver::Keep-All-Tier=60000 -f -y install file-rc systemd-sysv-
-  fi
-
    if ! $ROOTCMD test -x /usr/bin/aptitude ; then
    if ! $ROOTCMD test -x /usr/bin/aptitude ; then
-      $ROOTCMD apt-get -y install aptitude
+     # the apt-get update might return an error if there's for example
+     # a hashsum mismatch on Debian mirror sources, we might want to continue
+     # but should warn the user
+     if ! $ROOTCMD apt-get update ; then
+       echo "Warning: there was an error executing apt-get update, continuing anyway."
+       echo "Warning: there was an error executing apt-get update, continuing anyway." >&2
+     fi
+
+     $ROOTCMD apt-get -y install aptitude
    fi
 
    # make sure we can upgrade automatically,
    fi
 
    # make sure we can upgrade automatically,
@@ -119,21 +115,6 @@ if ! $ROOTCMD dpkg-divert --list | grep -q '/usr/sbin/grub-probe' ; then
   $ROOTCMD ln -s /bin/true /usr/sbin/grub-probe
 fi
 
   $ROOTCMD ln -s /bin/true /usr/sbin/grub-probe
 fi
 
-# make sure we have file-rc available before package_config/GRML* is being executed {{{
-# the apt-get update might return an error if there's for example
-# a hashsum mismatch on Debian mirror sources, we might want to continue
-# but should warn the user
-if ! $ROOTCMD apt-get update ; then
-   echo "Warning: there was an error executing apt-get update, continuing anyway."
-   echo "Warning: there was an error executing apt-get update, continuing anyway." >&2
-fi
-
-if $FILE_RC ; then
-  echo "Installing file-rc as FILE_RC class is enabled."
-  # newer aptitude versions won't remove essential packages using
-  # 'aptitude -f -y install file-rc' anymore, therefore force it via:
-  $ROOTCMD aptitude -o Aptitude::ProblemResolver::Keep-All-Tier=60000 -f -y install file-rc systemd-sysv-
-fi
 # }}}
 
 # we definitely don't want to fail running fai dirinstall just
 # }}}
 
 # we definitely don't want to fail running fai dirinstall just
diff --git a/etc/grml/fai/config/hooks/instsoft.ZFS b/etc/grml/fai/config/hooks/instsoft.ZFS
new file mode 100755 (executable)
index 0000000..2e8a072
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/bash
+# Filename:      ${GRML_FAI_CONFIG}/hooks/instsoft.ZFS
+# Purpose:       Build zfs modules in the chroot, then get rid of packages installed for this alone
+# Authors:       (c) András Korn <korn-grml@elan.rulez.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2, or, at your option, any later version.
+################################################################################
+
+set -u
+set -e
+
+# We don't want to install build-essential, dkms et al via package_config
+# because they will end up bloating the iso; it seems cleaner to install
+# them, build the zfs modules, then remove them.
+#
+# TODO: if https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1009179 is ever
+# fixed, switch to building a zfs-modules deb and including that.
+#
+# TODO: convert this into a framework for other classes to ship dkms
+# modules: have a hook/script that installs the build-related packages,
+# another that builds whatever must be built, and a third that does the cleanup.
+#
+# TODO: support other architectures grml and grml-live supports (PRs
+# welcome, I'm sure).
+
+echo "$0: Installing latest kernel and its headers, as well as build-essential."
+# For some reason, apt's autoremove function doesn't pick up some of the
+# extra packages we install here, e.g. gcc-11, so work around that by
+# keeping track of what gets installed. This is an ugly hack and should not
+# be needed, but without it the resulting ISO is hundreds of megabytes
+# larger. I hope this kludge can go away eventually.
+extra_packages=($($ROOTCMD apt-get --assume-no --download-only --mark-auto -u install \
+       build-essential linux-image-amd64 linux-headers-amd64 \
+       | sed '0,/The following NEW packages will be installed/d;/^[^ ]/,$d'))
+$ROOTCMD apt-get --yes --mark-auto -u install build-essential linux-image-amd64 linux-headers-amd64
+
+# Remove all but the latest kernel (TODO: support passing in the desired
+# kernel version by configuration variable instead of using the latest):
+echo "$0: Removing all kernel packages except the latest one, if any."
+for kernelversion in $($ROOTCMD sh -c 'cd /boot; ls -rt vmlinuz-*' | sed 's/^vmlinuz-//;$d'); do
+       echo "$0: Removing obsolete kernel version $kernelversion"
+       $ROOTCMD apt-get --yes --purge remove "linux-.*$kernelversion.*"
+done
+
+# Earlier Debian releases have a dwarves package; newer ones have pahole.
+# This can be needed to build the zfs modules, perhaps depending on kernel
+# configuration (TODO: look into this).
+echo "$0: Installing pahole or dwarves, whichever is available."
+if $ROOTCMD apt-get --yes --mark-auto -u install pahole; then
+       pahole=pahole
+else
+       $ROOTCMD apt-get --mark-auto --yes -u install dwarves
+       pahole=dwarves
+fi
+
+echo "$0: Installing zfs-dkms itself."
+extra_packages=(${extra_packages[@]} $($ROOTCMD apt-get --assume-no --download-only --mark-auto -u install zfs-dkms | sed '0,/The following NEW packages will be installed/d;/^[^ ]/,$d'))
+$ROOTCMD apt-get --yes --mark-auto -u install zfs-dkms
+
+# Now invoke the dkms kernel postinst script for the only kernel that's left
+# -- normally the zfs-dkms postinst script should do this, but maybe it
+# didn't, and redoing it is almost free:
+kernelversion=$($ROOTCMD sh -c 'ls -1 /boot/vmlinuz-*' | sed 's@.*boot/vmlinuz-@@')
+echo "$0: Building zfs-dkms modules for kernel $kernelversion."
+$ROOTCMD /etc/kernel/postinst.d/dkms "$kernelversion"
+
+tempfile=$(mktemp)
+echo "$0: Saving built modules into a backup file (removing the dkms package will remove them, but we'll put them back)."
+$ROOTCMD tar cf - /lib/modules/$kernelversion/updates/dkms >$tempfile
+
+echo "$0: Removing packages only needed to build zfs modules."
+remove_packages=($(echo "${extra_packages[@]}" zfs-dkms '^linux-headers-.*' build-essential $pahole | tr ' ' '\n' | sort -u))
+$ROOTCMD apt-get --yes --purge --autoremove remove ${remove_packages[@]}
+echo "$0: Trying extra hard to get rid of auto-installed packages. This is a hack that is one of the ways we're trying to work around a perceived bug in apt autoremove and should be a no-op."
+$ROOTCMD apt-get --yes --purge autoremove
+
+echo "$0: Restoring backed-up kernel modules."
+$ROOTCMD tar xf - <$tempfile
+rm $tempfile
+$ROOTCMD depmod -a $kernelversion
+echo "$0: Completed successfully. Enjoy your zfs."
diff --git a/etc/grml/fai/config/package_config/DEBIAN_BOOKWORM b/etc/grml/fai/config/package_config/DEBIAN_BOOKWORM
new file mode 100644 (file)
index 0000000..af1c28b
--- /dev/null
@@ -0,0 +1,10 @@
+PACKAGES install
+
+# NOTE: as of grml-live v0.44.0 we switched from isc-dhcp-client to dhcpcd.
+# But cloud-init has a hard dependency on isc-dhcp-client (at least as of
+# v21.4-2 and up and until incl. v23.2.1-1). To ensure that GRML_FULL also
+# works on bookworm OOTB and we can ship cloud-init, we enable the switch
+# towards dhcpcd only for Debian trixie/testing and newer. Also see
+# https://bugs.debian.org/1051421 and
+# https://github.com/grml/grml-live/issues/138
+isc-dhcp-client
diff --git a/etc/grml/fai/config/package_config/DEBIAN_SQUEEZE b/etc/grml/fai/config/package_config/DEBIAN_SQUEEZE
deleted file mode 100644 (file)
index bf18dac..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-PACKAGES install
-
-# needed for linux-image-amd64-grml
-linux-base/squeeze-backports
-initramfs-tools/squeeze-backports
diff --git a/etc/grml/fai/config/package_config/DEBIAN_STABLE b/etc/grml/fai/config/package_config/DEBIAN_STABLE
new file mode 100644 (file)
index 0000000..af1c28b
--- /dev/null
@@ -0,0 +1,10 @@
+PACKAGES install
+
+# NOTE: as of grml-live v0.44.0 we switched from isc-dhcp-client to dhcpcd.
+# But cloud-init has a hard dependency on isc-dhcp-client (at least as of
+# v21.4-2 and up and until incl. v23.2.1-1). To ensure that GRML_FULL also
+# works on bookworm OOTB and we can ship cloud-init, we enable the switch
+# towards dhcpcd only for Debian trixie/testing and newer. Also see
+# https://bugs.debian.org/1051421 and
+# https://github.com/grml/grml-live/issues/138
+isc-dhcp-client
diff --git a/etc/grml/fai/config/package_config/DEBIAN_TESTING b/etc/grml/fai/config/package_config/DEBIAN_TESTING
new file mode 100644 (file)
index 0000000..9a7cc24
--- /dev/null
@@ -0,0 +1,10 @@
+PACKAGES install
+
+# NOTE: as of grml-live v0.44.0 we switched from isc-dhcp-client to dhcpcd.
+# But cloud-init has a hard dependency on isc-dhcp-client (at least as of
+# v21.4-2 and up and until incl. v23.2.1-1). To ensure that GRML_FULL also
+# works on bookworm OOTB and we can ship cloud-init, we enable the switch
+# towards dhcpcd only for Debian trixie/testing and newer. Also see
+# https://bugs.debian.org/1051421 and
+# https://github.com/grml/grml-live/issues/138
+dhcpcd
diff --git a/etc/grml/fai/config/package_config/DEBIAN_TRIXIE b/etc/grml/fai/config/package_config/DEBIAN_TRIXIE
new file mode 100644 (file)
index 0000000..9a7cc24
--- /dev/null
@@ -0,0 +1,10 @@
+PACKAGES install
+
+# NOTE: as of grml-live v0.44.0 we switched from isc-dhcp-client to dhcpcd.
+# But cloud-init has a hard dependency on isc-dhcp-client (at least as of
+# v21.4-2 and up and until incl. v23.2.1-1). To ensure that GRML_FULL also
+# works on bookworm OOTB and we can ship cloud-init, we enable the switch
+# towards dhcpcd only for Debian trixie/testing and newer. Also see
+# https://bugs.debian.org/1051421 and
+# https://github.com/grml/grml-live/issues/138
+dhcpcd
diff --git a/etc/grml/fai/config/package_config/DEBIAN_UNSTABLE b/etc/grml/fai/config/package_config/DEBIAN_UNSTABLE
new file mode 100644 (file)
index 0000000..9a7cc24
--- /dev/null
@@ -0,0 +1,10 @@
+PACKAGES install
+
+# NOTE: as of grml-live v0.44.0 we switched from isc-dhcp-client to dhcpcd.
+# But cloud-init has a hard dependency on isc-dhcp-client (at least as of
+# v21.4-2 and up and until incl. v23.2.1-1). To ensure that GRML_FULL also
+# works on bookworm OOTB and we can ship cloud-init, we enable the switch
+# towards dhcpcd only for Debian trixie/testing and newer. Also see
+# https://bugs.debian.org/1051421 and
+# https://github.com/grml/grml-live/issues/138
+dhcpcd
index 5c3a3db..115df2d 100644 (file)
@@ -13,7 +13,6 @@ eject
 fdisk
 file
 gpm
 fdisk
 file
 gpm
-grml2usb
 grml-autoconfig
 grml-crypt
 grml-debian-keyring
 grml-autoconfig
 grml-crypt
 grml-debian-keyring
@@ -28,9 +27,6 @@ grml-scripts
 grml-scripts-core
 grml-tips
 grml-udev-config
 grml-scripts-core
 grml-tips
 grml-udev-config
-grub-efi-amd64-bin
-grub-efi-ia32-bin
-grub-pc
 haveged
 hdparm
 hwinfo
 haveged
 hdparm
 hwinfo
@@ -51,7 +47,6 @@ resolvconf
 rsync
 rsyslog
 strace
 rsync
 rsyslog
 strace
-syslinux syslinux-common syslinux-utils
 udev
 usbutils
 uuid-runtime
 udev
 usbutils
 uuid-runtime
@@ -68,7 +63,6 @@ firmware-bnx2x
 firmware-brcm80211
 firmware-cavium
 firmware-intel-sound
 firmware-brcm80211
 firmware-cavium
 firmware-intel-sound
-firmware-intelwimax
 firmware-iwlwifi
 firmware-libertas
 firmware-linux
 firmware-iwlwifi
 firmware-libertas
 firmware-linux
@@ -85,7 +79,19 @@ firmware-zd1211
 libpam-systemd
 systemd-container
 
 libpam-systemd
 systemd-container
 
-PACKAGES install FILE_RC
-libpam-systemd-
-systemd-container-
-acpid
+PACKAGES install I386
+grub-pc
+grub-efi-amd64-bin
+grub-efi-ia32-bin
+syslinux syslinux-common syslinux-utils
+grml2usb
+
+PACKAGES install AMD64
+grub-pc
+grub-efi-amd64-bin
+grub-efi-ia32-bin
+syslinux syslinux-common syslinux-utils
+grml2usb
+
+PACKAGES install ARM64
+grub-efi-arm64-bin
index c757ab6..2d83c2f 100644 (file)
@@ -3,17 +3,16 @@ PACKAGES install
 grml-live
 grml-paste
 grml-quickconfig-standard
 grml-live
 grml-paste
 grml-quickconfig-standard
-grml-terminalserver
 
 # base os
 apt
 aptitude
 binfmt-support
 
 # base os
 apt
 aptitude
 binfmt-support
-bsdmainutils
+bsdextrautils
+bsdutils
 dctrl-tools
 devscripts
 dos2unix
 dctrl-tools
 devscripts
 dos2unix
-dstat
 findutils
 htop
 libnss-myhostname
 findutils
 htop
 libnss-myhostname
@@ -22,8 +21,8 @@ locales
 lsb-release
 lsof
 mount
 lsb-release
 lsof
 mount
-ntp
-ntpdate
+ntpsec
+ntpsec-ntpdate
 nullmailer
 passwd
 procps
 nullmailer
 passwd
 procps
@@ -36,12 +35,10 @@ tzdata
 util-linux
 
 # basic accessibility
 util-linux
 
 # basic accessibility
+alsa-utils
 brltty
 brltty
+espeak-ng
 espeakup
 espeakup
-alsa-utils
-
-# broken userland debugging
-ltrace
 
 # deploy on remote sites
 openvpn
 
 # deploy on remote sites
 openvpn
@@ -50,11 +47,10 @@ pppoeconf
 
 # disk subsystems support/debugging
 array-info
 
 # disk subsystems support/debugging
 array-info
-cciss-vol-status
 cryptsetup
 disktype
 cryptsetup
 disktype
-dmraid
 dmsetup
 dmsetup
+f3
 fai-setup-storage
 fio
 gdisk
 fai-setup-storage
 fio
 gdisk
@@ -69,11 +65,11 @@ scsitools
 sdparm
 sg3-utils
 smartmontools
 sdparm
 sg3-utils
 smartmontools
+stenc
 
 # disk partitioning/boot
 boot-info-script
 gparted
 
 # disk partitioning/boot
 boot-info-script
 gparted
-grub-pc-bin
 kpartx
 mbr
 partclone
 kpartx
 mbr
 partclone
@@ -90,6 +86,7 @@ hexedit
 nano
 vim
 vim-gtk3
 nano
 vim
 vim-gtk3
+xxd
 zile
 
 # filesystem support
 zile
 
 # filesystem support
@@ -110,7 +107,6 @@ ntfs-3g
 reiser4progs
 reiserfsprogs
 tcplay
 reiser4progs
 reiserfsprogs
 tcplay
-thin-provisioning-tools
 xfsdump
 xfsprogs
 xmount
 xfsdump
 xfsprogs
 xmount
@@ -124,6 +120,7 @@ mtools
 
 # generic tools
 cpp
 
 # generic tools
 cpp
+sqlite3
 whois
 xorriso
 
 whois
 xorriso
 
@@ -159,6 +156,8 @@ dnsutils
 ethstatus
 ethtool
 hostapd
 ethstatus
 ethtool
 hostapd
+hping3
+ifenslave
 iftop
 ifupdown
 ipcalc
 iftop
 ifupdown
 ipcalc
@@ -167,10 +166,10 @@ iperf3
 ipmitool
 iproute2
 iptraf-ng
 ipmitool
 iproute2
 iptraf-ng
+iptstate
 iputils-arping
 iputils-ping
 iputils-tracepath
 iputils-arping
 iputils-ping
 iputils-tracepath
-isc-dhcp-client
 iw
 libnss-mdns
 libteam-utils
 iw
 libnss-mdns
 libteam-utils
@@ -198,14 +197,12 @@ tcpdump
 tcptraceroute
 telnet
 tmate
 tcptraceroute
 telnet
 tmate
-tshark
 tsocks
 uml-utilities
 usb-modeswitch
 vlan
 wireguard
 wireless-regdb
 tsocks
 uml-utilities
 usb-modeswitch
 vlan
 wireguard
 wireless-regdb
-wireshark
 
 # network transfers
 ca-certificates
 
 # network transfers
 ca-certificates
@@ -233,8 +230,6 @@ pwgen
 
 # popular VCS to pull config from
 git
 
 # popular VCS to pull config from
 git
-mercurial
-subversion
 
 # recovery
 afflib-tools
 
 # recovery
 afflib-tools
@@ -245,6 +240,7 @@ ewf-tools
 extundelete
 gddrescue
 gpart
 extundelete
 gddrescue
 gpart
+myrescue
 recoverjpeg
 testdisk
 
 recoverjpeg
 testdisk
 
@@ -255,9 +251,11 @@ dirvish
 dump
 duplicity
 fsarchiver
 dump
 duplicity
 fsarchiver
+mtx
 restic
 
 # compressions for backup/restore
 restic
 
 # compressions for backup/restore
+lz4
 lzop
 zstd
 
 lzop
 zstd
 
@@ -275,6 +273,7 @@ coreutils
 diffutils
 jq
 mawk
 diffutils
 jq
 mawk
+mbuffer
 mc
 patch
 pv
 mc
 patch
 pv
@@ -286,12 +285,9 @@ zsh
 
 # system info/mgmt
 augeas-tools
 
 # system info/mgmt
 augeas-tools
-facter
 flashrom
 inxi
 flashrom
 inxi
-mcollective
 memtester
 memtester
-puppet
 stressant
 
 # virtualization support
 stressant
 
 # virtualization support
@@ -313,7 +309,7 @@ w3m
 wget
 
 # X
 wget
 
 # X
-openbox obconf
+fluxbox
 grml-desktop
 grml-x
 x11vnc
 grml-desktop
 grml-x
 x11vnc
@@ -331,14 +327,17 @@ xterm
 # x86 hardware support
 acpi
 acpi-support
 # x86 hardware support
 acpi
 acpi-support
-cmospwd
-cpuid
 irqbalance
 lm-sensors
 lshw
 numactl
 usbview
 
 irqbalance
 lm-sensors
 lshw
 numactl
 usbview
 
+# firmware updates
+fwupd
+policykit-1
+udisks2
+
 # testing
 bats
 stress
 # testing
 bats
 stress
@@ -346,14 +345,63 @@ stress
 # docs
 man-db
 
 # docs
 man-db
 
+# special terminal output
+lolcat
+toilet
+
 PACKAGES install I386
 PACKAGES install I386
+# kernel related
 linux-image-686
 linux-cpupower
 linux-image-686
 linux-cpupower
+# disk subsystems support/debugging, I386/AMD64 specific
+cciss-vol-status
+# x86 hardware support
+cmospwd
+cpuid
+memtest86+
+# broken userland debugging
+ltrace
+# disk partitioning/boot
+grub-pc-bin
+
+# PXE boot
+grml-terminalserver
+
+# firmware updates
+fwupd-i386-signed
+
+# X - not relevant on more recent systems, so ship on i386 only
+xserver-xorg-video-intel
 
 PACKAGES install AMD64
 
 PACKAGES install AMD64
+# kernel related
 linux-image-amd64
 linux-cpupower
 linux-image-amd64
 linux-cpupower
+# disk subsystems support/debugging
+cciss-vol-status
+# x86 hardware support
+cmospwd
+cpuid
+memtest86+
+# broken userland debugging
+ltrace
+# disk partitioning/boot
+grub-pc-bin
+
+# PXE boot
+grml-terminalserver
 
 # EFI PXE boot support in grml-terminalserver
 grub-efi-amd64-signed
 shim-signed
 
 # EFI PXE boot support in grml-terminalserver
 grub-efi-amd64-signed
 shim-signed
+
+# firmware updates
+fwupd-amd64-signed
+
+PACKAGES install ARM64
+# kernel related
+linux-image-arm64
+linux-cpupower
+
+# firmware updates
+fwupd-arm64-signed
index 1969a10..34c1647 100644 (file)
@@ -6,7 +6,8 @@ attr
 bash
 binutils
 bridge-utils
 bash
 binutils
 bridge-utils
-bsdmainutils
+bsdextrautils
+bsdutils
 btrfs-progs
 buffer
 chntpw
 btrfs-progs
 buffer
 chntpw
@@ -17,7 +18,6 @@ cu
 dctrl-tools
 diffutils
 disktype
 dctrl-tools
 diffutils
 disktype
-dmraid
 dmsetup
 dos2unix
 dosfstools
 dmsetup
 dos2unix
 dosfstools
@@ -28,15 +28,17 @@ f2fs-tools
 findutils
 fsarchiver
 gddrescue
 findutils
 fsarchiver
 gddrescue
+gdisk
 grml-paste
 grml-quickconfig-standard
 htop
 grml-paste
 grml-quickconfig-standard
 htop
+ifenslave
 ifupdown
 imvirt
 iperf3
 iproute2
 ifupdown
 imvirt
 iperf3
 iproute2
+iptstate
 iputils-ping
 iputils-ping
-isc-dhcp-client
 iw
 jfsutils
 kexec-tools
 iw
 jfsutils
 kexec-tools
@@ -62,7 +64,7 @@ netbase
 netcat-openbsd
 net-tools
 ntfs-3g
 netcat-openbsd
 net-tools
 ntfs-3g
-ntpdate
+ntpsec-ntpdate
 nwipe
 parted
 partimage
 nwipe
 parted
 partimage
@@ -90,6 +92,7 @@ tar
 tcpdump
 telnet
 tmate
 tcpdump
 telnet
 tmate
+tmux
 tree
 tsocks
 tzdata
 tree
 tsocks
 tzdata
@@ -101,11 +104,19 @@ wget
 whois
 wipe
 xfsprogs
 whois
 wipe
 xfsprogs
+xxd
 zip
 zsh
 zip
 zsh
+zstd
+
+# special terminal output
+toilet
 
 PACKAGES install I386
 linux-image-686
 
 PACKAGES install AMD64
 linux-image-amd64
 
 PACKAGES install I386
 linux-image-686
 
 PACKAGES install AMD64
 linux-image-amd64
+
+PACKAGES install ARM64
+linux-image-arm64
diff --git a/etc/grml/fai/config/package_config/SYSTEMD b/etc/grml/fai/config/package_config/SYSTEMD
deleted file mode 100644 (file)
index 3533dba..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-PACKAGES install
-
-network-manager
-
-# network-manager-openvpn
-# network-manager-pptp
-# network-manager-vpnc
similarity index 50%
rename from etc/grml/fai/config/package_config/FILE_RC
rename to etc/grml/fai/config/package_config/ZFS
index 953aad2..02ca370 100644 (file)
@@ -1,4 +1,4 @@
 PACKAGES install
 
 PACKAGES install
 
-file-rc
-multitail
+zfsutils-linux
+
index 4a7d807..ec97fc4 100755 (executable)
@@ -25,8 +25,6 @@ fi
 
 # workaround for bsdmainutils transitional package, we can drop this as soon as the
 # bsdextrautils + ncal packages are available in all our supported Debian releases
 
 # workaround for bsdmainutils transitional package, we can drop this as soon as the
 # bsdextrautils + ncal packages are available in all our supported Debian releases
-# (FTR: the transitional bsdmainutils package currently depends on
-# bsdextrautils bsdutils calendar debianutils ncal)
 if [[ -r "${target}/usr/share/doc/bsdmainutils" ]] && [ -x "${target}/usr/bin/deborphan" ] ; then
   echo "Adding bsdmainutils to deborphan whitelist"
   # workaround for https://bugs.debian.org/929273 ("fseek on /var/lib/deborphan/keep: Invalid argument")
 if [[ -r "${target}/usr/share/doc/bsdmainutils" ]] && [ -x "${target}/usr/bin/deborphan" ] ; then
   echo "Adding bsdmainutils to deborphan whitelist"
   # workaround for https://bugs.debian.org/929273 ("fseek on /var/lib/deborphan/keep: Invalid argument")
index 459e51a..4b63a99 100755 (executable)
@@ -16,57 +16,14 @@ systemd_setup() {
   echo "Enabling user '$USERNAME' for autologin"
   sed -i "s/\$USERNAME/$USERNAME/" "$target"/etc/systemd/system/getty@tty*.service.d/override.conf
 
   echo "Enabling user '$USERNAME' for autologin"
   sed -i "s/\$USERNAME/$USERNAME/" "$target"/etc/systemd/system/getty@tty*.service.d/override.conf
 
-  case "$(cat "${target}"/etc/debian_version)" in
-    8.*)
-      echo "Debian jessie detected. Enabling workaround for unknown systemctl preset-all/set-default exit failure."
-      $ROOTCMD systemctl preset-all || true
-      $ROOTCMD systemctl set-default grml-boot.target || true
-      ;;
-    *)
-      # workaround for #992847 to workaround /lib/systemd -> /usr/lib/systemd transition
-      $ROOTCMD rm -f /etc/systemd/system/syslog.service
+  # workaround for #992847 to workaround /lib/systemd -> /usr/lib/systemd transition
+  $ROOTCMD rm -f /etc/systemd/system/syslog.service
 
 
-      $ROOTCMD systemctl preset-all
-      $ROOTCMD systemctl set-default grml-boot.target
-      ;;
-  esac
+  $ROOTCMD systemctl preset-all
+  $ROOTCMD systemctl set-default grml-boot.target
 }
 
 }
 
-file_rc_setup() {
-  if ! [ -r "${target}"/etc/runlevel.conf ] ; then
-     echo 'Warning: /etc/runlevel.conf does not exist...'
-     echo '... assuming we do not have file-rc, skipping 15-initsetup'
-     exit 0
-  fi
-
-  # keep a backup of the original runlevel.conf file for reference
-  if [ -r "${target}"/etc/runlevel.conf.original ] ; then
-    # make sure to store old backup files if they differ as well
-    if ! cmp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original >/dev/null ; then
-      cp "${target}"/etc/runlevel.conf.original "${target}/etc/runlevel.conf.original.$(date +%Y%m%d_%k:%M:%S)"
-    fi
-  fi
-
-  cp "${target}"/etc/runlevel.conf "${target}"/etc/runlevel.conf.original
-
-  # provide Grml's default file-rc configuration
-  fcopy -v /etc/runlevel.conf
-
-  # provide Grml's inittab configuration
-  fcopy -v /etc/inittab
-  sed -i "s/\$USERNAME\$/${USERNAME}/" "${target}"/etc/inittab
-
-  # provide Grml's bootlocal init scripts
-  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.first
-  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.middle
-  fcopy -v -mroot,root,0755 /etc/init.d/bootlocal.last
-}
-
-if ifclass FILE_RC ; then
-  file_rc_setup
-else
-  systemd_setup
-fi
+systemd_setup
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
index da40243..d44efb2 100755 (executable)
@@ -13,7 +13,7 @@ set -e
 # by default it's set to UTC=no
 if [ -n "$UTC" ] && [ "$UTC" = "yes" ] ; then
    echo "UTC is set to 'yes', setting hwclock parameter UTC"
 # by default it's set to UTC=no
 if [ -n "$UTC" ] && [ "$UTC" = "yes" ] ; then
    echo "UTC is set to 'yes', setting hwclock parameter UTC"
-   sed -i "s/^LOCAL/UTC/" "${target}/etc/adjtime"
+   [ -e "${target}/etc/adjtime" ] && sed -i "s/^LOCAL/UTC/" "${target}/etc/adjtime"
 fi
 
 # default timezone settings
 fi
 
 # default timezone settings
index bc09c1f..50d43e6 100755 (executable)
@@ -26,7 +26,7 @@ fi
 add_user_to_group() {
    [ -n "$1" ] || return 1
    if grep -q $1 $target/etc/group ; then
 add_user_to_group() {
    [ -n "$1" ] || return 1
    if grep -q $1 $target/etc/group ; then
-      grep "$1:x:.*$USERNAME" $target/etc/group || $ROOTCMD addgroup $USERNAME $1
+      grep "$1:x:.*$USERNAME" $target/etc/group || $ROOTCMD adduser $USERNAME $1
    fi
 }
 
    fi
 }
 
index 277b684..59a4e71 100755 (executable)
@@ -13,6 +13,9 @@ set -e
 # the full setup, GRMLBASE installs a minimal configuration
 fcopy -v /etc/locale.gen
 
 # the full setup, GRMLBASE installs a minimal configuration
 fcopy -v /etc/locale.gen
 
+# set up /etc/locale.conf, to avoid systemd-firstboot prompting for user input
+fcopy -v /etc/locale.conf
+
 # get rid of locales unless using class LOCALES
 set +u
 if ! ifclass LOCALES ; then
 # get rid of locales unless using class LOCALES
 set +u
 if ! ifclass LOCALES ; then
index fae8d06..849809d 100755 (executable)
@@ -15,7 +15,12 @@ set -e
 find $target/etc/modprobe.d -maxdepth 1 -type f ! -name \*\.conf -exec mv {} {}.conf \;
 
 # Install all present modprobe.d configuration files
 find $target/etc/modprobe.d -maxdepth 1 -type f ! -name \*\.conf -exec mv {} {}.conf \;
 
 # Install all present modprobe.d configuration files
-fcopy -v -r /etc/modprobe.d
+fcopy -v -i -r /etc/modprobe.d
+
+if [ -f "${target}/lib/modprobe.d/50-nfs.conf" ] ; then  # nfs-kernel-server >=1:2.6.2-1
+  echo "Clearing /lib/modprobe.d/50-nfs.conf to avoid automatic kmod/busybox issues"
+  echo '# this file was generated by grml-live script GRMLBASE/39-modprobe' > "${target}/lib/modprobe.d/50-nfs.conf"
+fi
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
index 8cdaed5..66746d9 100755 (executable)
@@ -9,7 +9,6 @@
 set -u
 set -e
 
 set -u
 set -e
 
-fcopy -v /etc/lsb-base-logging.sh
 fcopy -v /usr/share/initramfs-tools/scripts/init-top/grml
 fcopy -v /usr/share/grml/desktop-bg.png
 fcopy -v /usr/share/doc/grml-docs/startpage.html
 fcopy -v /usr/share/initramfs-tools/scripts/init-top/grml
 fcopy -v /usr/share/grml/desktop-bg.png
 fcopy -v /usr/share/doc/grml-docs/startpage.html
index 5caa73a..d00d376 100755 (executable)
@@ -11,7 +11,14 @@ set -u
 
 $ROOTCMD mkdir -p /boot/grub
 
 
 $ROOTCMD mkdir -p /boot/grub
 
-$ROOTCMD grub-mkimage -d /usr/lib/grub/i386-pc \
+if ifclass ARM64 ; then
+  echo "Skipping execution of script on ARM64"
+  exit 0
+fi
+
+# generate /boot/grub/core.img
+$ROOTCMD grub-mkimage \
+  -d /usr/lib/grub/i386-pc \
   -p /boot/grub \
   -o /boot/grub/core.img \
   biosdisk iso9660 \
   -p /boot/grub \
   -o /boot/grub/core.img \
   biosdisk iso9660 \
index 16c0e9a..76c0e10 100755 (executable)
@@ -28,6 +28,19 @@ ARCHS=(i386-pc)
 declare -A ADDITIONAL_MODULES
 ADDITIONAL_MODULES[i386-pc]="biosdisk"
 
 declare -A ADDITIONAL_MODULES
 ADDITIONAL_MODULES[i386-pc]="biosdisk"
 
+# arm64 doesn't provide /usr/lib/grub/i386-efi, so we don't include
+# i386-pc in $ARCHS (whereas on AMD64 we have both i386-pc + x86_64-efi)
+if ifclass ARM64 ; then
+  if [ -r "${target}"/usr/lib/grub/arm64-efi/moddep.lst ] ; then
+    ARCHS=(arm64-efi)
+    # NOTE: efi_uga (EFI Universal Graphics Adapter) is deprecated + unavailable on arm64
+    ADDITIONAL_MODULES[arm64-efi]="efi_gop"  # no efi_uga available
+  else
+    echo "/usr/lib/grub/arm64-efi/moddep.lst.lst could not be found, skipping."
+    echo "NOTE: grub-efi-arm64-bin not installed?"
+  fi
+fi
+
 if ifclass AMD64 ; then
   if [ -r "${target}"/usr/lib/grub/x86_64-efi/moddep.lst ] ; then
     ARCHS+=(x86_64-efi)
 if ifclass AMD64 ; then
   if [ -r "${target}"/usr/lib/grub/x86_64-efi/moddep.lst ] ; then
     ARCHS+=(x86_64-efi)
@@ -54,6 +67,7 @@ for arch in "${ARCHS[@]}" ; do
     i386-pc)    filename=/boot/grub/grub.img ;;
     x86_64-efi) filename=/boot/bootx64.efi   ;;
     i386-efi)   filename=/boot/bootia32.efi  ;;
     i386-pc)    filename=/boot/grub/grub.img ;;
     x86_64-efi) filename=/boot/bootx64.efi   ;;
     i386-efi)   filename=/boot/bootia32.efi  ;;
+    arm64-efi)  filename=/boot/bootaa64.efi  ;;
   esac
 
   $ROOTCMD grub-mkimage -O $arch -o "$filename" --prefix=/boot/grub/ --config="$TMP_CONFIG" \
   esac
 
   $ROOTCMD grub-mkimage -O $arch -o "$filename" --prefix=/boot/grub/ --config="$TMP_CONFIG" \
index 9ec8199..1f65279 100755 (executable)
@@ -9,8 +9,15 @@
 set -u
 set -e
 
 set -u
 set -e
 
-echo "Clearing /lib/udev/rules.d/69-lvm-metad.rules to avoid automatic LVM scanning"
-echo '# this file was generated by grml-live script GRMLBASE/50-lvm' > "${target}/lib/udev/rules.d/69-lvm-metad.rules"
+if [ -f "${target}/lib/udev/rules.d/69-lvm.rules" ] ; then  # lvm2 >=2.03.15
+  echo "Clearing /lib/udev/rules.d/69-lvm.rules to avoid automatic LVM scanning"
+  echo '# this file was generated by grml-live script GRMLBASE/50-lvm' > "${target}/lib/udev/rules.d/69-lvm.rules"
+fi
+
+if [ -f "${target}/lib/udev/rules.d/69-lvm-metad.rules" ] ; then  # lvm2 <= 2.03.11
+  echo "Clearing /lib/udev/rules.d/69-lvm-metad.rules to avoid automatic LVM scanning"
+  echo '# this file was generated by grml-live script GRMLBASE/50-lvm' > "${target}/lib/udev/rules.d/69-lvm-metad.rules"
+fi
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
 
 ## END OF FILE #################################################################
 # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
index 82cf083..de694cc 100755 (executable)
@@ -11,6 +11,7 @@ set -e
 
 fcopy -v /etc/initramfs-tools/hooks/000-udev-shutup
 fcopy -v /etc/initramfs-tools/conf.d/xz-compress
 
 fcopy -v /etc/initramfs-tools/hooks/000-udev-shutup
 fcopy -v /etc/initramfs-tools/conf.d/xz-compress
+fcopy -v /etc/initramfs-tools/modules
 
 if ! [ -f $target/usr/share/initramfs-tools/scripts/live ] ; then
   echo "Error: live-boot/-initramfs does not seem to be present, can not create initramfs. Exiting.">&2
 
 if ! [ -f $target/usr/share/initramfs-tools/scripts/live ] ; then
   echo "Error: live-boot/-initramfs does not seem to be present, can not create initramfs. Exiting.">&2
diff --git a/etc/grml/fai/config/scripts/GRMLBASE/85-systemd b/etc/grml/fai/config/scripts/GRMLBASE/85-systemd
new file mode 100755 (executable)
index 0000000..4ea4247
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/bash
+# Filename:      ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/85-systemd
+# Purpose:       configure systemd and related services
+# Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
+# Bug-Reports:   see http://grml.org/bugs/
+# License:       This file is licensed under the GPL v2 or any later version.
+################################################################################
+
+set -u
+set -e
+. "$GRML_LIVE_CONFIG"
+
+fcopy -M -i -B -v -r /etc/tmpfiles.d
+
+## END OF FILE #################################################################
+# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
index 039c423..07666b1 100755 (executable)
@@ -14,11 +14,11 @@ fi
 set -u
 
 bailout() {
 set -u
 
 bailout() {
-  if [ "${1:-}" = "4" ] ; then
-    echo "Warning: update-pciids returned with exit code 4." >&2
+  if [ "${1:-}" = "4" ] || [ "${1:-}" = "1" ] ; then
+    echo "Warning: update-pciids returned with exit code ${1:-}." >&2
 
     # be verbose in logs
 
     # be verbose in logs
-    echo "Warning: update-pciids returned with exit code 4."
+    echo "Warning: update-pciids returned with exit code ${1:-}."
     echo "-> This indicates that networking inside the chroot did not work"
     echo "   while GRMLBASE/91-update-pciids was running."
     echo "   To address this issue you can either configure /etc/resolv.conf"
     echo "-> This indicates that networking inside the chroot did not work"
     echo "   while GRMLBASE/91-update-pciids was running."
     echo "   To address this issue you can either configure /etc/resolv.conf"
diff --git a/etc/grml/fai/config/scripts/GRMLBASE/93-update-usbids b/etc/grml/fai/config/scripts/GRMLBASE/93-update-usbids
deleted file mode 100755 (executable)
index d2972d3..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/bash
-# Filename:      ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/93-update-usbids
-# Purpose:       update pciids
-# Authors:       (c) Michael Prokop <mika@grml.org>
-# Bug-Reports:   see http://grml.org/bugs/
-# License:       This file is licensed under the GPL v2.
-################################################################################
-
-if ifclass NO_ONLINE ; then
-  echo "Ignoring script 93-update-usbids as NO_ONLINE is set."
-  exit 0
-fi
-
-set -u
-set -e
-
-[ -x $target/usr/bin/timeout ] && TIMEOUT="10" || TIMEOUT=""
-
-if ! [ -x "${target}/usr/sbin/update-usbids" ] && ! [ -x "${target}/usr/bin/update-usbids" ] ; then
-  echo "Warning: update-usbids not installed (neither /usr/sbin/update-usbids nor /usr/bin/update-usbids exists)"
-  exit 0
-fi
-
-echo "Updating USB-IDs"
-if [ -n "$TIMEOUT" ] ; then
-   $ROOTCMD timeout $TIMEOUT update-usbids
-else
-   $ROOTCMD update-usbids
-fi
-
-## END OF FILE #################################################################
-# vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2
index 1f9e3ba..6762ff7 100644 (file)
@@ -49,7 +49,7 @@
 
 # Which Debian suite/release do you want to use?
 # Supported values are: stable, testing, unstable (or their corresponding release
 
 # Which Debian suite/release do you want to use?
 # Supported values are: stable, testing, unstable (or their corresponding release
-# names like "stretch").
+# names like "bookworm").
 # Unless it is set it defaults to "testing".
 # SUITE="unstable"
 
 # Unless it is set it defaults to "testing".
 # SUITE="unstable"
 
@@ -58,7 +58,7 @@
 # Notice: GRMLBASE is recommended in any case unless you *really* know what you
 # are doing; make sure to also use a GRML_* class (for example GRML_SMALL
 # or GRML_FULL) to get an according kernel and also select the
 # Notice: GRMLBASE is recommended in any case unless you *really* know what you
 # are doing; make sure to also use a GRML_* class (for example GRML_SMALL
 # or GRML_FULL) to get an according kernel and also select the
-# architecture (I386 for x86; AMD64 for x86_64)
+# architecture (I386 for x86; AMD64 for x86_64, ARM64 for arm64)
 # CLASSES="GRMLBASE,GRML_FULL,I386"
 
 # HTTP Proxy to use for APT
 # CLASSES="GRMLBASE,GRML_FULL,I386"
 
 # HTTP Proxy to use for APT
@@ -66,7 +66,7 @@
 
 # Which Debian suite and which mirror do you want to use for debootstrapping?
 # Usage: "<suite> <mirror>"
 
 # Which Debian suite and which mirror do you want to use for debootstrapping?
 # Usage: "<suite> <mirror>"
-# FAI_DEBOOTSTRAP="stretch http://ftp.debian.org/debian"
+# FAI_DEBOOTSTRAP="bookworm http://ftp.debian.org/debian"
 
 # Do you want to use a local mirror (like NFS)?
 # If so specify the directory where debian/ is available:
 
 # Do you want to use a local mirror (like NFS)?
 # If so specify the directory where debian/ is available:
@@ -74,7 +74,7 @@
 # ... and then set up an according class file in
 # ${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list.d/
 # containing something like:
 # ... and then set up an according class file in
 # ${GRML_FAI_CONFIG}/config/files/etc/apt/sources.list.d/
 # containing something like:
-# deb file:///media/mirror/debian sid main contrib non-free
+# deb file:///media/mirror/debian sid main contrib non-free-firmware non-free
 
 # Version number of ISO:
 # VERSION="0.0-1"
 
 # Version number of ISO:
 # VERSION="0.0-1"
index cb43f59..b0750ec 100644 (file)
@@ -12,7 +12,7 @@ _grmllive_flavours() { #{{{
 
   flavours=(
     grml        grml64
 
   flavours=(
     grml        grml64
-    grml-medium grml64-medium
+    grml-full   grml64-full
     grml-small  grml64-small
   )
   _wanted list expl 'grml flavour(s)' compadd ${expl} -- ${flavours}
     grml-small  grml64-small
   )
   _wanted list expl 'grml flavour(s)' compadd ${expl} -- ${flavours}
@@ -33,8 +33,10 @@ _grmllive_classes() { #{{{
     local -a already static_classes
 
     static_classes=(
     local -a already static_classes
 
     static_classes=(
-        RELEASE LATEX_CLEANUP NO_ONLINE REMOVE_DOCS LOCALES
-        I386 AMD64
+        DEBORPHAN FRESHCLAM
+        GRMLBASE GRML_FULL GRML_SMALL
+        LATEX LATEX_CLEANUP LOCALES NO_ONLINE RELEASE REMOVE_DOCS SOURCES XORG ZFS
+        I386 AMD64 ARM64
     )
     compset -P '*,'
     already=(${(s<,>)IPREFIX})
     )
     compset -P '*,'
     already=(${(s<,>)IPREFIX})
@@ -47,23 +49,40 @@ _grmllive_suites() { #{{{
   local -a suites
 
   suites=(
   local -a suites
 
   suites=(
-    stable testing unstable jessie stretch buster sid
+    stable testing unstable bookworm sid trixie
   )
   _wanted list expl 'Debian suite' compadd ${expl} -- ${suites}
 }
 #}}}
 arguments=( #{{{
   )
   _wanted list expl 'Debian suite' compadd ${expl} -- ${suites}
 }
 #}}}
 arguments=( #{{{
-  '-F[force execution without prompting for yes/no]'
   '-a[specifiy architecture to use]:arch(s):_grmllive_archs'
   '-a[specifiy architecture to use]:arch(s):_grmllive_archs'
+  '-A[clean build directories before and after running]'
+  '-b[build the ISO without updating the chroot via FAI]'
+  '-B[build the ISO without touching the chroot (skips cleanup)]'
   '-c[available grml-live classes]:classe(s):_grmllive_classes'
   '-c[available grml-live classes]:classe(s):_grmllive_classes'
+  '-C[configuration file for grml-live]:configuration file:_files'
+  '-d[use specified date instead of build time as date of release]:date:'
+  '-D[use specified configuration directory instead of /etc/grml/fai]:directory:_path_files -/'
+  '-e[extract ISO and squashfs contents from iso_name]:ISO file:'
+  '-F[force execution without prompting for yes/no]'
   '-g[grml flavour to use]:grml flavour(s):_grmllive_flavours'
   '-h[display usage information]'
   '-g[grml flavour to use]:grml flavour(s):_grmllive_flavours'
   '-h[display usage information]'
-  '-i[iso name, ends up in $OUTPUT_DIRECTORY/grml_isos]:iso name:'
+  '-i[iso name, ends up in $OUTPUT_DIRECTORY/grml_isos (also see -o)]:ISO name:_files'
+  '-I[directory which provides files that should become part of the chroot/ISO]:directory to include:_path_files -/'
+  '-n[skip generation of ISO]'
+  '-N[bootstrap (build chroot) only, do not create files for ISO]'
   '-o[output directory]:output directory:_path_files -/'
   '-o[output directory]:output directory:_path_files -/'
+  '-q[skip mksquashfs]'
+  '-Q[skip netboot package build]'
+  '-r[release name]:release name:'
   '-s[debian suite to be used for live-system]:Debian suite:_grmllive_suites'
   '-s[debian suite to be used for live-system]:Debian suite:_grmllive_suites'
+  '-S[place of scripts (defaults to /usr/share/grml-live/scripts)]:script directory:_path_files -/'
   '-t[template directory]:template directory:_path_files -/'
   '-t[template directory]:template directory:_path_files -/'
-  '-u[update existing chroot if possible]'
+  '-u[update existing chroot instead of rebuilding it from scratch]'
+  '-U[arrange output to be owned by specified username]'
   '-V[increase verbosity]'
   '-V[increase verbosity]'
+  '-w[wayback machine, build system using Debian archives from specified date]:date:'
+  '-z[use ZLIB instead of LZMA/XZ compression]'
 )
 #}}}
 
 )
 #}}}
 
index 93127e9..46fe5e6 100644 (file)
@@ -1,10 +1,11 @@
 Origin: Debian
 Label: Debian-All
 Origin: Debian
 Label: Debian-All
-Suite: stable
-Codename: etch
-Version: 4.0
-Architectures: i386
-Components: main contrib non-free
-Description: Debian
-Update: debian
-# SignWith: yes
+Codename: bookworm
+Description: Debian bookworm mirror
+Architectures: amd64 source
+Components: main contrib non-free non-free-firmware
+Contents: .gz
+Update: - debian-bookworm
+Tracking: minimal
+Log: bookworm
+# SignWith: ...
index 682d5e6..69f36db 100644 (file)
@@ -1,4 +1,8 @@
-Name: debian
-Method: http://ftp.debian.org/debian/
-# Method: http://localhost/debian/
-# Fallback: http://snapshot.debian.net/archive/2007/04/02/debian/
+Name: debian-bookworm
+Method: http://deb.debian.org/debian
+Suite: bookworm
+Components: main contrib non-free non-free-firmware
+Architectures: amd64 source
+GetInRelease: no
+# VerifyRelease: 0E98404D386FA1D9
+# Fallback: http://snapshot.debian.net/archive/2023/02/02/debian/
index cd9290e..72fe591 100755 (executable)
--- a/grml-live
+++ b/grml-live
@@ -43,7 +43,7 @@ $PN - build process script for generating a (grml based) Linux Live-ISO
 
 Usage: $PN [options, see as follows]
 
 
 Usage: $PN [options, see as follows]
 
-   -a <architecture>       architecture; available values: i386 and amd64
+   -a <architecture>       architecture; available values: i386, amd64 + arm64
    -A                      clean build directories before and after running
    -b                      build the ISO without updating the chroot via FAI
    -B                      build the ISO without touching the chroot (skips cleanup)
    -A                      clean build directories before and after running
    -b                      build the ISO without updating the chroot via FAI
    -B                      build the ISO without touching the chroot (skips cleanup)
@@ -221,7 +221,6 @@ bailout() {
 
   # get rid of automatically generated conffiles
   rm -f ${GRML_FAI_CONFIG}/nfsroot.conf
 
   # get rid of automatically generated conffiles
   rm -f ${GRML_FAI_CONFIG}/nfsroot.conf
-  rm -f ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf
 
   if [ -n "$CHOWN_USER" ]; then
     log "Setting ownership"
 
   if [ -n "$CHOWN_USER" ]; then
     log "Setting ownership"
@@ -328,6 +327,7 @@ copy_addon_file() {
   msg="Missing addon file: \"$1\""
   ewarn "$msg" ; eend 1
   log "copy_addon_file: $msg"
   msg="Missing addon file: \"$1\""
   ewarn "$msg" ; eend 1
   log "copy_addon_file: $msg"
+  return 1
 }
 
 # replace placeholders in template files with actual information
 }
 
 # replace placeholders in template files with actual information
@@ -337,6 +337,19 @@ adjust_boot_files() {
     exit 1
   fi
 
     exit 1
   fi
 
+  local release_info
+  if [ -n "${RELEASE_INFO:-}" ] ; then
+    release_info="${RELEASE_INFO}"
+  else
+    ewarn "Variable RELEASE_INFO is unset, applying fallback for usage in adjust_boot_files." ; eend 1
+    release_info="$GRML_NAME $VERSION - Release Codename $RELEASENAME"
+  fi
+
+  # ensure this has a specific length
+  local fixed_release_info
+  fixed_release_info="$(cut_string 68 "$release_info")"
+  fixed_release_info="$(extend_string_end 68 "$fixed_release_info")"
+
   for file in "$@" ; do
     if [ -r "${file}" ] && [ -f "${file}" ] ; then
       sed -i "s/%ARCH%/$ARCH/g"                    "${file}"
   for file in "$@" ; do
     if [ -r "${file}" ] && [ -f "${file}" ] ; then
       sed -i "s/%ARCH%/$ARCH/g"                    "${file}"
@@ -345,16 +358,8 @@ adjust_boot_files() {
       sed -i "s/%DISTRI_NAME%/$DISTRI_NAME/g"      "${file}"
       sed -i "s/%DISTRI_SPLASH%/$DISTRI_SPLASH/g"  "${file}"
       sed -i "s/%GRML_NAME%/$GRML_NAME/g"          "${file}"
       sed -i "s/%DISTRI_NAME%/$DISTRI_NAME/g"      "${file}"
       sed -i "s/%DISTRI_SPLASH%/$DISTRI_SPLASH/g"  "${file}"
       sed -i "s/%GRML_NAME%/$GRML_NAME/g"          "${file}"
-      if [ -n "${fixed_squashfs_name}" ] ; then
-        sed -i "s/%SQUASHFS_NAME%/${fixed_squashfs_name}/g" "${file}"
-      else
-        ewarn "Variable fixed_squashfs_name is unset, can't adjust %SQUASHFS_NAME% in templates." ; eend 1
-      fi
-      if [ -n "${fixed_release_info}" ] ; then
-        sed -i "s/%RELEASE_INFO%/${fixed_release_info}/g"   "${file}"
-      else
-        ewarn "Variable fixed_release_info is unset, can't adjust %RELEASE_INFO% in templates." ; eend 1
-      fi
+      sed -i "s/%SQUASHFS_NAME%/$SQUASHFS_NAME/g"  "${file}"
+      sed -i "s/%RELEASE_INFO%/$fixed_release_info/g" "${file}"
       sed -i "s/%SHORT_NAME%/$SHORT_NAME/g"        "${file}"
       sed -i "s/%VERSION%/$VERSION/g"              "${file}"
       if [ -n "${BOOT_FILE}" ] ; then
       sed -i "s/%SHORT_NAME%/$SHORT_NAME/g"        "${file}"
       sed -i "s/%VERSION%/$VERSION/g"              "${file}"
       if [ -n "${BOOT_FILE}" ] ; then
@@ -480,6 +485,12 @@ specify it on the command line using the -c option."
 [ -n "$OUTPUT" ] || bailout 1 "Error: \$OUTPUT unset, please set it in $LIVE_CONF or
 specify it on the command line using the -o option."
 
 [ -n "$OUTPUT" ] || bailout 1 "Error: \$OUTPUT unset, please set it in $LIVE_CONF or
 specify it on the command line using the -o option."
 
+if [[ "$(dpkg --print-architecture)" != "arm64" ]] && [[ "$ARCH" == "arm64" ]] ; then
+  eerror "Failure: trying to build for arm64, but not running on arm64."
+  eend 1
+  bailout
+fi
+
 # trim characters that are known to cause problems inside $GRML_NAME;
 # for example isolinux does not like '-' inside the directory name
 [ -n "$GRML_NAME" ] && export SHORT_NAME="$(echo $GRML_NAME | tr -d ',./;\- ')"
 # trim characters that are known to cause problems inside $GRML_NAME;
 # for example isolinux does not like '-' inside the directory name
 [ -n "$GRML_NAME" ] && export SHORT_NAME="$(echo $GRML_NAME | tr -d ',./;\- ')"
@@ -489,6 +500,7 @@ specify it on the command line using the -o option."
 [ -n "$RELEASENAME" ] && export RELEASENAME="$RELEASENAME"
 # }}}
 
 [ -n "$RELEASENAME" ] && export RELEASENAME="$RELEASENAME"
 # }}}
 
+
 # ZERO_LOGFILE - check for backwards compatibility reasons {{{
 # this was default behaviour until grml-live 0.9.34:
 if [ -n "$ZERO_LOGFILE" ] ; then
 # ZERO_LOGFILE - check for backwards compatibility reasons {{{
 # this was default behaviour until grml-live 0.9.34:
 if [ -n "$ZERO_LOGFILE" ] ; then
@@ -620,7 +632,7 @@ einfo "Logging actions to logfile $LOGFILE"
 
 # dump config variables into file, for script access {{{
 CONFIGDUMP=$(mktemp)
 
 # dump config variables into file, for script access {{{
 CONFIGDUMP=$(mktemp)
-set | egrep \
+set | grep -E \
   '^(GRML_NAME|RELEASENAME|DATE|VERSION|SUITE|ARCH|DISTRI_NAME|USERNAME|HOSTNAME|APT_PROXY)=' \
   > ${CONFIGDUMP}
 # }}}
   '^(GRML_NAME|RELEASENAME|DATE|VERSION|SUITE|ARCH|DISTRI_NAME|USERNAME|HOSTNAME|APT_PROXY)=' \
   > ${CONFIGDUMP}
 # }}}
@@ -681,20 +693,28 @@ export SUITE # make sure it's available in FAI scripts
 # architecture (option), otherwise installation of kernel will fail
 if echo $CLASSES | grep -qw I386 ; then
    if ! [[ "$ARCH" == "i386" ]] ; then
 # architecture (option), otherwise installation of kernel will fail
 if echo $CLASSES | grep -qw I386 ; then
    if ! [[ "$ARCH" == "i386" ]] ; then
-      log    "Error: You specified the I386 class but are trying to build something else (AMD64?)."
-      eerror "Error: You specified the I386 class but are trying to build something else (AMD64?)."
+      log    "Error: You specified the I386 class but are trying to build something else (AMD64/ARM64?)."
+      eerror "Error: You specified the I386 class but are trying to build something else (AMD64/ARM64?)."
       eerror "Tip:   Either invoke grml-live with '-a i386' or adjust the architecture class. Exiting."
       eend 1
       bailout
    fi
 elif echo $CLASSES | grep -qi amd64 ; then
    if ! [[ "$ARCH" == "amd64" ]] ; then
       eerror "Tip:   Either invoke grml-live with '-a i386' or adjust the architecture class. Exiting."
       eend 1
       bailout
    fi
 elif echo $CLASSES | grep -qi amd64 ; then
    if ! [[ "$ARCH" == "amd64" ]] ; then
-      log    "Error: You specified the AMD64 class but are trying to build something else (I386?)."
-      eerror "Error: You specified the AMD64 class but are trying to build something else (I386?)."
+      log    "Error: You specified the AMD64 class but are trying to build something else (I386/ARM64?)."
+      eerror "Error: You specified the AMD64 class but are trying to build something else (I386/ARM64?)."
       eerror "Tip:   Either invoke grml-live with '-a amd64' or adjust the architecture class. Exiting."
       eend 1
       bailout
    fi
       eerror "Tip:   Either invoke grml-live with '-a amd64' or adjust the architecture class. Exiting."
       eend 1
       bailout
    fi
+elif echo $CLASSES | grep -qi arm64 ; then
+   if ! [[ "$ARCH" == "arm64" ]] ; then
+      log    "Error: You specified the ARM64 class but are trying to build something else (I386/AMD64?)."
+      eerror "Error: You specified the ARM64 class but are trying to build something else (I386/AMD64?)."
+      eerror "Tip:   Either invoke grml-live with '-a arm64' or adjust the architecture class. Exiting."
+      eend 1
+      bailout
+   fi
 fi
 
 # generate nfsroot configuration for FAI on the fly
 fi
 
 # generate nfsroot configuration for FAI on the fly
@@ -707,16 +727,7 @@ if [ -z "$FAI_DEBOOTSTRAP" ] ; then
 fi
 
 if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then
 fi
 
 if [ -z "$FAI_DEBOOTSTRAP_OPTS" ] ; then
-  FAI_DEBOOTSTRAP_OPTS="--exclude=info,tasksel,tasksel-data --include=aptitude --arch $ARCH --no-merged-usr"
-fi
-
-# create backup of old (not yet automatically generated) config file
-if [ -f "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ] ; then
-  if ! grep -q 'This is an automatically generated file by grml-live' "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" ; then
-    ewarn "Found old ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf - moving to ${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated"
-    mv "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf" "${GRML_FAI_CONFIG}/make-fai-nfsroot.conf.outdated"
-    eend $?
-  fi
+  FAI_DEBOOTSTRAP_OPTS="--exclude=info,tasksel,tasksel-data,isc-dhcp-client,isc-dhcp-common --include=aptitude --arch $ARCH"
 fi
 
 echo "# This is an automatically generated file by grml-live.
 fi
 
 echo "# This is an automatically generated file by grml-live.
@@ -724,8 +735,6 @@ echo "# This is an automatically generated file by grml-live.
 FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"
 FAI_DEBOOTSTRAP_OPTS=\"$FAI_DEBOOTSTRAP_OPTS\"
 # EOF " > "${GRML_FAI_CONFIG}/nfsroot.conf"
 FAI_DEBOOTSTRAP=\"$FAI_DEBOOTSTRAP\"
 FAI_DEBOOTSTRAP_OPTS=\"$FAI_DEBOOTSTRAP_OPTS\"
 # EOF " > "${GRML_FAI_CONFIG}/nfsroot.conf"
-# support FAI <=3.4.8, versions >=4.0 use nfsroot.conf
-( cd ${GRML_FAI_CONFIG} && ln -sf nfsroot.conf make-fai-nfsroot.conf )
 # }}}
 
 # CHROOT_OUTPUT - execute FAI {{{
 # }}}
 
 # CHROOT_OUTPUT - execute FAI {{{
@@ -803,10 +812,16 @@ else
          grep 'Unable to write mmap - msync (28 No space left on device)' $CHECKLOG/software.log >> $LOGFILE && ERROR=5
       fi
 
          grep 'Unable to write mmap - msync (28 No space left on device)' $CHECKLOG/software.log >> $LOGFILE && ERROR=5
       fi
 
+      # FAI versions <6.0 used to write to shell.log
       if [ -r "$CHECKLOG/shell.log" ] ; then
          grep 'FAILED with exit code' $CHECKLOG/shell.log >> $LOGFILE && ERROR=6
       fi
 
       if [ -r "$CHECKLOG/shell.log" ] ; then
          grep 'FAILED with exit code' $CHECKLOG/shell.log >> $LOGFILE && ERROR=6
       fi
 
+      # FAI versions >=6.0 always writes to scripts.log
+      if [ -r "$CHECKLOG/scripts.log" ] ; then
+         grep 'FAILED with exit code' $CHECKLOG/scripts.log >> $LOGFILE && ERROR=6
+      fi
+
       if [ -r "$CHECKLOG/fai.log" ] ; then
         grep 'updatebase.*FAILED with exit code' "$CHECKLOG/fai.log" >> "$LOGFILE" && ERROR=7
         grep 'instsoft.*FAILED with exit code'   "$CHECKLOG/fai.log" >> "$LOGFILE" && ERROR=8
       if [ -r "$CHECKLOG/fai.log" ] ; then
         grep 'updatebase.*FAILED with exit code' "$CHECKLOG/fai.log" >> "$LOGFILE" && ERROR=7
         grep 'instsoft.*FAILED with exit code'   "$CHECKLOG/fai.log" >> "$LOGFILE" && ERROR=8
@@ -906,11 +921,26 @@ fi
 
 # grub boot {{{
 grub_setup() {
 
 # grub boot {{{
 grub_setup() {
-  BOOTX64="/boot/bootx64.efi"
-  BOOTX32="/boot/bootia32.efi"
   EFI_IMG="/boot/efi.img"
 
   EFI_IMG="/boot/efi.img"
 
-  if [[ "$ARCH" == "amd64" ]] ; then
+  local efi_size
+  if [[ "${SECURE_BOOT:-}" == "disable" ]] || [[ "${ARCH:-}" == "i386" ]] ; then
+    efi_size='4M'
+  else
+    # e.g. templates/EFI/debian for Secure Boot has >4MB and needs more space
+    efi_size='8M'
+  fi
+
+  if [[ "$ARCH" == "amd64" ]] || [[ "$ARCH" == "arm64" ]] ; then
+    case "$ARCH" in
+      arm64)
+        BOOTX64="/boot/bootaa64.efi"
+        ;;
+      amd64)
+        BOOTX64="/boot/bootx64.efi"
+        ;;
+    esac
+
     # important: this depends on execution of ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/45-grub-images
     if ! [ -r "${CHROOT_OUTPUT}/${BOOTX64}" ] ; then
       log    "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX64}, required for Secure Boot support"
     # important: this depends on execution of ${GRML_FAI_CONFIG}/config/scripts/GRMLBASE/45-grub-images
     if ! [ -r "${CHROOT_OUTPUT}/${BOOTX64}" ] ; then
       log    "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX64}, required for Secure Boot support"
@@ -920,7 +950,7 @@ grub_setup() {
       bailout 50
     fi
 
       bailout 50
     fi
 
-    dd if=/dev/zero of="${CHROOT_OUTPUT}/${EFI_IMG}" bs=4M count=1 2>/dev/null || bailout 50
+    dd if=/dev/zero of="${CHROOT_OUTPUT}/${EFI_IMG}" bs="${efi_size}" count=1 2>/dev/null || bailout 50
     mkfs.vfat -n GRML "${CHROOT_OUTPUT}/${EFI_IMG}" >/dev/null || bailout 51
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI || bailout 52
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI/BOOT || bailout 52
     mkfs.vfat -n GRML "${CHROOT_OUTPUT}/${EFI_IMG}" >/dev/null || bailout 51
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI || bailout 52
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI/BOOT || bailout 52
@@ -929,8 +959,15 @@ grub_setup() {
       log   "Secure Boot is disabled."
       einfo "Secure Boot is disabled." ; eend 0
 
       log   "Secure Boot is disabled."
       einfo "Secure Boot is disabled." ; eend 0
 
-      # install "$BOOTX64" as ::EFI/BOOT/bootx64.efi inside image file "$EFI_IMG":
-      mcopy -i "${CHROOT_OUTPUT}/${EFI_IMG}" "${CHROOT_OUTPUT}/${BOOTX64}" ::EFI/BOOT/bootx64.efi >/dev/null || bailout 53
+      # install "$BOOTX64" as ::EFI/BOOT/{bootx64.efi|bootaa64.efi} inside image file "$EFI_IMG":
+      case "$ARCH" in
+        arm64)
+          mcopy -i "${CHROOT_OUTPUT}/${EFI_IMG}" "${CHROOT_OUTPUT}/${BOOTX64}" ::EFI/BOOT/bootaa64.efi >/dev/null || bailout 53
+          ;;
+        amd64)
+          mcopy -i "${CHROOT_OUTPUT}/${EFI_IMG}" "${CHROOT_OUTPUT}/${BOOTX64}" ::EFI/BOOT/bootx64.efi >/dev/null || bailout 53
+          ;;
+      esac
 
       log   "Generated 64-bit EFI image $BOOTX64"
       einfo "Generated 64-bit EFI image $BOOTX64" ; eend 0
 
       log   "Generated 64-bit EFI image $BOOTX64"
       einfo "Generated 64-bit EFI image $BOOTX64" ; eend 0
@@ -991,6 +1028,7 @@ grub_setup() {
   fi
 
   if [[ "$ARCH" == "i386" ]] ; then
   fi
 
   if [[ "$ARCH" == "i386" ]] ; then
+    BOOTX32="/boot/bootia32.efi"
     if ! [ -r "${CHROOT_OUTPUT}/${BOOTX32}" ] ; then
       log    "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX32}."
       eerror "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX32}." ; eend 1
     if ! [ -r "${CHROOT_OUTPUT}/${BOOTX32}" ] ; then
       log    "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX32}."
       eerror "Can not access GRUB efi image ${CHROOT_OUTPUT}/${BOOTX32}." ; eend 1
@@ -999,7 +1037,7 @@ grub_setup() {
       bailout 50
     fi
 
       bailout 50
     fi
 
-    dd if=/dev/zero of="${CHROOT_OUTPUT}/${EFI_IMG}" bs=4M count=1 2>/dev/null || bailout 50
+    dd if=/dev/zero of="${CHROOT_OUTPUT}/${EFI_IMG}" bs="${efi_size}" count=1 2>/dev/null || bailout 50
     mkfs.vfat -n GRML "${CHROOT_OUTPUT}/${EFI_IMG}" >/dev/null || bailout 51
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI || bailout 52
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI/BOOT || bailout 52
     mkfs.vfat -n GRML "${CHROOT_OUTPUT}/${EFI_IMG}" >/dev/null || bailout 51
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI || bailout 52
     mmd -i "${CHROOT_OUTPUT}/${EFI_IMG}" ::EFI/BOOT || bailout 52
@@ -1015,7 +1053,7 @@ grub_setup() {
 mkdir -p "$BUILD_OUTPUT" || bailout 6 "Problem with creating $BUILD_OUTPUT for stage ARCH"
 
 # prepare ISO
 mkdir -p "$BUILD_OUTPUT" || bailout 6 "Problem with creating $BUILD_OUTPUT for stage ARCH"
 
 # prepare ISO
-if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
+if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] || [ "$ARCH" = arm64 ] ; then
   if [ -n "$BOOTSTRAP_ONLY" ] ; then
     log   "Skipping stage 'boot' as building with bootstrap only."
     ewarn "Skipping stage 'boot' as building with bootstrap only." ; eend 0
   if [ -n "$BOOTSTRAP_ONLY" ] ; then
     log   "Skipping stage 'boot' as building with bootstrap only."
     ewarn "Skipping stage 'boot' as building with bootstrap only." ; eend 0
@@ -1024,6 +1062,10 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
     mkdir -p "$BUILD_OUTPUT"/boot/isolinux
     mkdir -p "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"
 
     mkdir -p "$BUILD_OUTPUT"/boot/isolinux
     mkdir -p "$BUILD_OUTPUT"/boot/"${SHORT_NAME}"
 
+    # this is a variable we're using for adjusting boot templates, not only in
+    # adjust_boot_files though, so set here
+    RELEASE_INFO="$GRML_NAME $VERSION - Release Codename $RELEASENAME"
+
     # if we don't have an initrd we a) can't boot and b) there was an error
     # during build, so check for the file:
     INITRD="$(ls $CHROOT_OUTPUT/boot/initrd* 2>/dev/null| grep -v '.bak$' | sort -r | head -1)"
     # if we don't have an initrd we a) can't boot and b) there was an error
     # during build, so check for the file:
     INITRD="$(ls $CHROOT_OUTPUT/boot/initrd* 2>/dev/null| grep -v '.bak$' | sort -r | head -1)"
@@ -1081,9 +1123,17 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
     grub_setup
 
     # EFI boot files
     grub_setup
 
     # EFI boot files
-    if [ -r "${CHROOT_OUTPUT}/boot/efi.img" -a -r "${CHROOT_OUTPUT}/boot/bootx64.efi" ] ; then
-      einfo "Copying 64-bit EFI boot files into ISO path."
-      log   "Copying 64-bit EFI boot files into ISO path."
+    if [ -r "${CHROOT_OUTPUT}/boot/efi.img" -a -r "${CHROOT_OUTPUT}/boot/bootaa64.efi" ] ; then
+      einfo "Copying 64-bit EFI boot files (arm64) into ISO path."
+      log   "Copying 64-bit EFI boot files (arm64) into ISO path."
+      RC=$0
+      cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/" || RC=$?
+      mkdir -p "${BUILD_OUTPUT}/EFI/BOOT/" || RC=$?
+      cp "${CHROOT_OUTPUT}/boot/bootaa64.efi" "${BUILD_OUTPUT}/EFI/BOOT/bootaa64.efi" || RC=$?
+      eend $?
+    elif [ -r "${CHROOT_OUTPUT}/boot/efi.img" -a -r "${CHROOT_OUTPUT}/boot/bootx64.efi" ] ; then
+      einfo "Copying 64-bit EFI boot files (amd64) into ISO path."
+      log   "Copying 64-bit EFI boot files (amd64) into ISO path."
       RC=$0
       cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/" || RC=$?
       mkdir -p "${BUILD_OUTPUT}/EFI/BOOT/" || RC=$?
       RC=$0
       cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/" || RC=$?
       mkdir -p "${BUILD_OUTPUT}/EFI/BOOT/" || RC=$?
@@ -1091,7 +1141,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
       eend $?
     elif [ -r "${CHROOT_OUTPUT}/boot/efi.img" -a -r "${CHROOT_OUTPUT}/boot/bootia32.efi" ] ; then
       einfo "Copying 32-bit EFI boot files into ISO path."
       eend $?
     elif [ -r "${CHROOT_OUTPUT}/boot/efi.img" -a -r "${CHROOT_OUTPUT}/boot/bootia32.efi" ] ; then
       einfo "Copying 32-bit EFI boot files into ISO path."
-      log "Copying 32-bit EFI boot files into ISO path."
+      log   "Copying 32-bit EFI boot files into ISO path."
       RC=$0
       cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/" || RC=$?
       mkdir -p "${BUILD_OUTPUT}/EFI/BOOT/" || RC=$?
       RC=$0
       cp "${CHROOT_OUTPUT}/boot/efi.img" "${BUILD_OUTPUT}/boot/" || RC=$?
       mkdir -p "${BUILD_OUTPUT}/EFI/BOOT/" || RC=$?
@@ -1143,7 +1193,39 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
         copy_addon_file ipxe.lkrn /usr/lib/ipxe addons
         copy_addon_file ipxe.efi /usr/lib/ipxe addons
         copy_addon_file pci.ids /usr/share/misc addons
         copy_addon_file ipxe.lkrn /usr/lib/ipxe addons
         copy_addon_file ipxe.efi /usr/lib/ipxe addons
         copy_addon_file pci.ids /usr/share/misc addons
-        copy_addon_file memtest86+.bin /boot addons
+
+        # memtest86+ >=6.00-1
+        if [[ "$ARCH" == "amd64" ]] ; then
+          copy_addon_file memtest86+x64.efi /boot addons
+        elif [[ "$ARCH" == "i386" ]] ; then
+          copy_addon_file memtest86+ia32.efi /boot addons
+        fi
+
+        # provide memtest86+ >=6.00-1 files as "memtest" file
+        # for BIOS boot in isolinux/syslinux
+        if ! [ -r "${BUILD_OUTPUT}/boot/addons/memtest" ] ; then
+          if [[ "$ARCH" == "amd64" ]] ; then
+            copy_addon_file memtest86+x64.bin /boot addons &&
+            # make memtest filename FAT16/8.3 compatible
+            mv "${BUILD_OUTPUT}/boot/addons/memtest86+x64.bin" \
+               "${BUILD_OUTPUT}/boot/addons/memtest"
+          elif [[ "$ARCH" == "i386" ]] ; then
+            copy_addon_file memtest86+ia32.bin /boot addons &&
+            # make memtest filename FAT16/8.3 compatible
+            mv "${BUILD_OUTPUT}/boot/addons/memtest86+ia32.bin" \
+               "${BUILD_OUTPUT}/boot/addons/memtest"
+          fi
+        fi
+
+        # fallback: if we still don't have /boot/addons/memtest available, we
+        # might have an older memtest86+ version (<=5.01-3.1) which ships
+        # file "memtest86+.bin" instead
+        if ! [ -r "${BUILD_OUTPUT}/boot/addons/memtest" ] ; then
+          copy_addon_file memtest86+.bin /boot addons &&
+          # make memtest filename FAT16/8.3 compatible
+          mv "${BUILD_OUTPUT}/boot/addons/memtest86+.bin" \
+             "${BUILD_OUTPUT}/boot/addons/memtest"
+        fi
 
         # since syslinux(-common) v3:6.03~pre1+dfsg-4 the files are in a
         # different directory :(
 
         # since syslinux(-common) v3:6.03~pre1+dfsg-4 the files are in a
         # different directory :(
@@ -1158,17 +1240,13 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
 
         copy_addon_file memdisk /usr/lib/syslinux addons
 
 
         copy_addon_file memdisk /usr/lib/syslinux addons
 
-        eend 0
-
-        # make memtest filename FAT16/8.3 compatible
-        mv "${BUILD_OUTPUT}/boot/addons/memtest86+.bin" \
-          "${BUILD_OUTPUT}/boot/addons/memtest"
-
         # copy only files so we can handle bsd4grml on its own
         for file in ${TEMPLATE_DIRECTORY}/boot/addons/* ; do
           test -f $file && cp $file "$BUILD_OUTPUT"/boot/addons/
         done
 
         # copy only files so we can handle bsd4grml on its own
         for file in ${TEMPLATE_DIRECTORY}/boot/addons/* ; do
           test -f $file && cp $file "$BUILD_OUTPUT"/boot/addons/
         done
 
+        eend 0
+
         if [ -n "$NO_ADDONS_BSD4GRML" ] ; then
           log   "Skipping installation of bsd4grml as requested via \$NO_ADDONS_BSD4GRML."
           einfo "Skipping installation of bsd4grml as requested via \$NO_ADDONS_BSD4GRML."; eend 0
         if [ -n "$NO_ADDONS_BSD4GRML" ] ; then
           log   "Skipping installation of bsd4grml as requested via \$NO_ADDONS_BSD4GRML."
           einfo "Skipping installation of bsd4grml as requested via \$NO_ADDONS_BSD4GRML."; eend 0
@@ -1197,22 +1275,34 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
     fi
     echo "source /boot/grub/footer.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
 
     fi
     echo "source /boot/grub/footer.cfg" >> "${BUILD_OUTPUT}"/boot/grub/loopback.cfg
 
-    # copy grub files from target
-    mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-pc/
-    cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod "${BUILD_OUTPUT}"/boot/grub/i386-pc/
-    cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o "${BUILD_OUTPUT}"/boot/grub/i386-pc/
-    cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst "${BUILD_OUTPUT}"/boot/grub/i386-pc/
-    cp -a "${CHROOT_OUTPUT}"/usr/share/grub/ascii.pf2 "${BUILD_OUTPUT}"/boot/grub/
-    cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img "${BUILD_OUTPUT}"/boot/grub/
-    cp -a "${CHROOT_OUTPUT}"/boot/grub/grub.img "${BUILD_OUTPUT}"/boot/grub/
-
-    # copy modules for UEFI grub, 64-bit
-    mkdir -p "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
-    cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
+    # copy modules for GRUB
+    if [ "${ARCH}" = "arm64" ] ; then
+      mkdir -p "${BUILD_OUTPUT}"/boot/grub/arm64-efi/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/arm64-efi/*.mod "${BUILD_OUTPUT}"/boot/grub/arm64-efi/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/arm64-efi/*.lst "${BUILD_OUTPUT}"/boot/grub/arm64-efi/
+      # NOTE: usage of /boot/grub/core.img + /boot/grub/grub.img unclear yet
+    elif [ "${ARCH}" = "amd64" ] || [ "${ARCH}" = "i386" ] ; then
+      # grub-pc-bin
+      mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.mod  "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.o    "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/*-pc/*.lst  "${BUILD_OUTPUT}"/boot/grub/i386-pc/
+
+      # grub-efi-amd64-bin
+      mkdir -p "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/x86_64-efi/
+
+      # grub-efi-ia32-bin
+      mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-efi/
+      cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/i386-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/i386-efi/
+
+      cp -a "${CHROOT_OUTPUT}"/boot/grub/core.img       "${BUILD_OUTPUT}"/boot/grub/
+      cp -a "${CHROOT_OUTPUT}"/boot/grub/grub.img       "${BUILD_OUTPUT}"/boot/grub/
+    fi
 
 
-    # copy modules for UEFI grub, 32-bit
-    mkdir -p "${BUILD_OUTPUT}"/boot/grub/i386-efi/
-    cp -a "${CHROOT_OUTPUT}"/usr/lib/grub/i386-efi/*.{mod,lst} "${BUILD_OUTPUT}"/boot/grub/i386-efi/
+    # arch independent files
+    cp -a "${CHROOT_OUTPUT}"/usr/share/grub/ascii.pf2     "${BUILD_OUTPUT}"/boot/grub/
+    cp -a "${CHROOT_OUTPUT}"/usr/share/grub/unicode.pf2   "${BUILD_OUTPUT}"/boot/grub/  # clarify
 
     if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then
       log    "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting."
 
     if ! [ -d "${TEMPLATE_DIRECTORY}"/GRML ] ; then
       log    "Error: ${TEMPLATE_DIRECTORY}/GRML does not exist. Exiting."
@@ -1223,14 +1313,9 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
     mkdir -p "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
     cp -a ${TEMPLATE_DIRECTORY}/GRML/* "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
 
     mkdir -p "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
     cp -a ${TEMPLATE_DIRECTORY}/GRML/* "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/
 
-    # adjust boot splash information, as used within adjust_boot_files()
-    RELEASE_INFO="$GRML_NAME $VERSION - Release Codename $RELEASENAME"
-    fixed_release_info="$(cut_string 68 "$RELEASE_INFO")"
-    fixed_release_info="$(extend_string_end 68 "$fixed_release_info")"
-
     if [ -r "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version ] ; then
     if [ -r "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version ] ; then
-      sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
-      sed -i "s/%DATE%/$DATE/"                                      "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
+      sed -i "s/%RELEASE_INFO%/$RELEASE_INFO/" "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
+      sed -i "s/%DATE%/$DATE/"                 "$BUILD_OUTPUT"/GRML/"${GRML_NAME}"/grml-version
     fi
 
     # make sure the squashfs filename is set accordingly:
     fi
 
     # make sure the squashfs filename is set accordingly:
@@ -1325,7 +1410,7 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then
     fi
 
     if [ -e "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 ]; then
     fi
 
     if [ -e "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6 ]; then
-      sed -i "s/%RELEASE_INFO%/$GRML_NAME $VERSION - $RELEASENAME/" "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6
+      sed -i "s/%RELEASE_INFO%/$RELEASE_INFO/" "$BUILD_OUTPUT"/boot/addons/bsd4grml/boot.6
     fi
 
     DPKG_LIST="/var/log/fai/$HOSTNAME/last/dpkg.list" # the dpkg --list output of the chroot
     fi
 
     DPKG_LIST="/var/log/fai/$HOSTNAME/last/dpkg.list" # the dpkg --list output of the chroot
@@ -1498,7 +1583,7 @@ generate_build_info() {
     timestamp="$(TZ=UTC date +%s)" \
     update_only="${UPDATE}" \
     wayback_date="${WAYBACK_DATE}" \
     timestamp="$(TZ=UTC date +%s)" \
     update_only="${UPDATE}" \
     wayback_date="${WAYBACK_DATE}" \
-  :
+  --
 }
 # }}}
 
 }
 # }}}
 
@@ -1764,12 +1849,12 @@ create_netbootpackage() {
         ewarn "No shimx64.efi for usage with PXE boot found (shim-signed not present?)" ; eend 0
       fi
 
         ewarn "No shimx64.efi for usage with PXE boot found (shim-signed not present?)" ; eend 0
       fi
 
-      if [ -r /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ] ; then
+      if [ -r "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ] ; then
         log "Installing /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed as grubx64.efi in netboot package"
         log "Installing /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed as grubx64.efi in netboot package"
-        cp /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed "${WORKING_DIR}"/grubx64.efi
-      elif [ -r /usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi ] ; then
+        cp "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed "${WORKING_DIR}"/grubx64.efi
+      elif [ -r "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi ] ; then
         log "Installing /usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi as grubx64.efi in netboot package"
         log "Installing /usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi as grubx64.efi in netboot package"
-        cp /usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi "${WORKING_DIR}"/grubx64.efi
+        cp "${CHROOT_OUTPUT}"/usr/lib/grub/x86_64-efi/monolithic/grubnetx64.efi "${WORKING_DIR}"/grubx64.efi
       else
         log   "No grubnetx64.efi for usage with PXE boot found (grub-efi-amd64-signed not present?)"
         ewarn "No grubnetx64.efi for usage with PXE boot found (grub-efi-amd64-signed not present?)." ; eend 0
       else
         log   "No grubnetx64.efi for usage with PXE boot found (grub-efi-amd64-signed not present?)"
         ewarn "No grubnetx64.efi for usage with PXE boot found (grub-efi-amd64-signed not present?)." ; eend 0
index 326a189..ab8ca18 100755 (executable)
@@ -94,8 +94,8 @@ if [ ! -r /remaster ]; then
   exit 1
 fi
 
   exit 1
 fi
 
-mkdir -p /remaster/chroot /remaster/tmp /remaster/cdrom
-mount -t tmpfs tmpfs /remaster/tmp
+mkdir -p /remaster/chroot /remaster/tmp /remaster/cdrom /remaster/work
+
 echo "#:# edit the following two lines to change the boot message" >/remaster/msg
 echo "#:#" >>/remaster/msg
 if [ -r ${LIVE_PATH_BOOT}/isolinux/boot.msg ] ; then
 echo "#:# edit the following two lines to change the boot message" >/remaster/msg
 echo "#:#" >>/remaster/msg
 if [ -r ${LIVE_PATH_BOOT}/isolinux/boot.msg ] ; then
@@ -107,8 +107,8 @@ if ! grep -q "/remaster/cdrom squashfs" /proc/mounts ;  then
    mount -t squashfs "$SQUASHFS_FILE" /remaster/cdrom -o ro,loop
 fi
 
    mount -t squashfs "$SQUASHFS_FILE" /remaster/cdrom -o ro,loop
 fi
 
-if ! grep -q "aufs /remaster/chroot" /proc/mounts ; then
-   mount -t aufs aufs /remaster/chroot -o br:/remaster/tmp=rw:/remaster/cdrom=rr
+if ! grep -q "overlay /remaster/chroot" /proc/mounts ; then
+  mount -t overlay overlay -o lowerdir=/remaster/cdrom,upperdir=/remaster/tmp,workdir=/remaster/work /remaster/chroot
 fi
 
 for i in run dev dev/pts proc root sys tmp; do
 fi
 
 for i in run dev dev/pts proc root sys tmp; do
index 5334582..32e2d3c 100644 (file)
@@ -1,6 +1,6 @@
 # debian approach:
 # debian approach:
-shimx64.efi.signed = /usr/lib/shim/shimx64.efi.signed                  from http://ftp.de.debian.org/debian/pool/main/s/shim-signed/shim-signed_1.33+15+1533136590.3beb971-7_amd64.deb
-grubx64.efi.signed = /usr/lib/grub/x86_64-efi-signed/gcdx64.efi.signed from http://ftp.de.debian.org/debian/pool/main/g/grub-efi-amd64-signed/grub-efi-amd64-signed_1+2.02+dfsg1+20+deb10u2_amd64.deb
+shimx64.efi.signed = /usr/lib/shim/shimx64.efi.signed                  from https://deb.debian.org/debian/pool/main/s/shim-signed/shim-signed_1.38+15.4-7_amd64.deb
+grubx64.efi.signed = /usr/lib/grub/x86_64-efi-signed/gcdx64.efi.signed from https://deb.debian.org/debian/pool/main/g/grub-efi-amd64-signed/grub-efi-amd64-signed_1+2.06+7_amd64.deb
 # NOTE:
 # shimx64.efi.signed ends up as /EFI/BOOT/bootx64.efi inside [grml_cd]/boot/efi.img, and
 # grubx64.efi.signed ends up as /EFI/BOOT/grubx64.efi inside [grml_cd]/boot/efi.img, whereas
 # NOTE:
 # shimx64.efi.signed ends up as /EFI/BOOT/bootx64.efi inside [grml_cd]/boot/efi.img, and
 # grubx64.efi.signed ends up as /EFI/BOOT/grubx64.efi inside [grml_cd]/boot/efi.img, whereas
index 0f82e38..c87eb6f 100644 (file)
Binary files a/templates/EFI/debian/BOOT/grubx64.efi.signed and b/templates/EFI/debian/BOOT/grubx64.efi.signed differ
index 131ca45..dcd8b50 100644 (file)
Binary files a/templates/EFI/debian/BOOT/shimx64.efi.signed and b/templates/EFI/debian/BOOT/shimx64.efi.signed differ
index c2c1fe9..3dd33bf 100644 (file)
@@ -25,7 +25,6 @@ dos                                   Boot FreeDOS
 hdt                                   Boot Hardware Detection Tool (from syslinux project)
 
 Further documentation regarding the boot process can be found at:
 hdt                                   Boot Hardware Detection Tool (from syslinux project)
 
 Further documentation regarding the boot process can be found at:
-* http://git.grml.org/?p=live-initramfs-grml.git;a=blob_plain;f=manpages/live-initramfs.en.7.txt;hb=HEAD
 * https://manpages.debian.org/live-boot-doc/live-boot.7.en.html
 * https://manpages.debian.org/initramfs-tools-core/initramfs-tools.7.en.html
 * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
 * https://manpages.debian.org/live-boot-doc/live-boot.7.en.html
 * https://manpages.debian.org/initramfs-tools-core/initramfs-tools.7.en.html
 * https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html
@@ -104,11 +103,12 @@ grml toram=filename.squashfs          Copy the specified file to RAM and run fro
                                       Usage example: grml toram=grml-medium.squashfs
                                       Notice: grml2ram is an alias for this option which
                                       corresponds with the grml flavour settings by default
                                       Usage example: grml toram=grml-medium.squashfs
                                       Notice: grml2ram is an alias for this option which
                                       corresponds with the grml flavour settings by default
-grml tohd=/dev/sda1                   Copy Grml's squashfs file to harddisk partition for later
-                                      use via "grml bootfrom=/dev/sda1"
 grml bootfrom=/dev/sda1               Use the squashfs file from directory 'live' of the specified device
 grml bootfrom=/dev/sda1               Use the squashfs file from directory 'live' of the specified device
-                                      Setup can be done booting 'grml tohd=/dev/sda1' or
-                                      running 'rsync -a --progress /run/live/medium/live /media/sda1/'
+                                      Setup can be done by executing:
+                                        rsync -a --progress /run/live/medium/live /media/sda1/
+                                      NOTE: you can can also use bootfrom=/dev/disk/by-label/yourlabel
+                                      (adjust yourlabel as needed), which should prevent choosing the
+                                      wrong block device (e.g. if more than one disk is present).
 grml bootfrom=removable               Restrict search for the live media to removable type only.
 grml bootfrom=removable-usb           Restrict search for the live media to usb mass storage only.
 grml isofrom=[fs:][/device]/grml.iso  Use specified ISO image for booting.
 grml bootfrom=removable               Restrict search for the live media to removable type only.
 grml bootfrom=removable-usb           Restrict search for the live media to usb mass storage only.
 grml isofrom=[fs:][/device]/grml.iso  Use specified ISO image for booting.
@@ -122,8 +122,11 @@ grml isofrom=[fs:][/device]/grml.iso  Use specified ISO image for booting.
                                       override the automatic detection, like in "reiserfs:/dev/sda1/grml.iso".
                                       As an example, boot the according grml kernel and initrd using the
                                       bootoptions "boot=live isofrom=btrfs:/dev/vda40/path/to/grml.iso"
                                       override the automatic detection, like in "reiserfs:/dev/sda1/grml.iso".
                                       As an example, boot the according grml kernel and initrd using the
                                       bootoptions "boot=live isofrom=btrfs:/dev/vda40/path/to/grml.iso"
-                                      Notice: "fromiso" does the same as "isofrom", it's just there
+                                      NOTE: "fromiso" does the same as "isofrom", it's just there
                                       to prevent any typing errors
                                       to prevent any typing errors
+                                      NOTE: you can can also use isofrom=/dev/disk/by-label/yourlabel
+                                      (adjust yourlabel as needed), which should prevent choosing the
+                                      wrong block device (e.g. if more than one disk is present).
 grml findiso=/grml_2010.12.iso        Look for the specified ISO file on all disks where it usually
                                       looks for the .squashfs file (so you don't have to know the device name
                                       as in isofrom=....).
 grml findiso=/grml_2010.12.iso        Look for the specified ISO file on all disks where it usually
                                       looks for the .squashfs file (so you don't have to know the device name
                                       as in isofrom=....).
@@ -206,9 +209,9 @@ Hardware related settings:
 grml swap                             Activate present/detected swap partitions
 grml noswraid                         Disable scanning for software raid arrays (creates /etc/mdadm/mdadm.conf)
 grml swraid                           Enable automatic assembling of software raid arrays
 grml swap                             Activate present/detected swap partitions
 grml noswraid                         Disable scanning for software raid arrays (creates /etc/mdadm/mdadm.conf)
 grml swraid                           Enable automatic assembling of software raid arrays
-grml nodmraid                         Do not enable present dmraid devices.
-grml dmraid=on                        Automatically enable any present dmraid devices.
-grml dmraid=off                       Actively try to stop any present dmraid devices.
+grml nodmraid                         Do not enable present dmraid devices (deprecated as of releases in 2024)
+grml dmraid=on                        Automatically enable any present dmraid devices (deprecated as of releases in 2024)
+grml dmraid=off                       Actively try to stop any present dmraid devices (deprecated as of releases in 2024)
 grml nolvm                            Disable scanning for Logical Volumes (LVM)
 grml lvm                              Automatically activate Logival Volumes (LVM) during boot
 grml read-only                        Make sure all harddisk devices (/dev/hd* /dev/sd*) are forced to read-only mode
 grml nolvm                            Disable scanning for Logical Volumes (LVM)
 grml lvm                              Automatically activate Logival Volumes (LVM) during boot
 grml read-only                        Make sure all harddisk devices (/dev/hd* /dev/sd*) are forced to read-only mode
index 001fae9..0168459 100644 (file)
@@ -1,5 +1,5 @@
 submenu "%GRML_NAME% - advanced options  ->" --class=submenu {
 submenu "%GRML_NAME% - advanced options  ->" --class=submenu {
-menuentry "%GRML_NAME% - enable Predictable Network Interface Names" {
+menuentry "Enable Predictable Network Interface Names" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce "${loopback}" ${kernelopts} 
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce "${loopback}" ${kernelopts} 
@@ -7,15 +7,15 @@ menuentry "%GRML_NAME% - enable Predictable Network Interface Names" {
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - enable persistency mode" {
+menuentry "Enable SSH (with random password)" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     set gfxpayload=keep
     echo 'Loading kernel...'
-    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} persistence 
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} ssh 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - copy Grml to RAM" {
+menuentry "Load Grml to RAM" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} toram=%GRML_NAME%.squashfs 
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} toram=%GRML_NAME%.squashfs 
@@ -23,7 +23,7 @@ menuentry "%GRML_NAME% - copy Grml to RAM" {
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - copy whole medium to RAM" {
+menuentry "Load whole medium to RAM" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} toram 
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} toram 
@@ -31,39 +31,55 @@ menuentry "%GRML_NAME% - copy whole medium to RAM" {
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - start X by default" {
+menuentry "Forensic Mode" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     set gfxpayload=keep
     echo 'Loading kernel...'
-    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} startx 
+    linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} read-only nofstab noraid nolvm noautoconfig noswap raid=noautodetect 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - disable framebuffer" {
-    set gfxpayload=text
+menuentry "Persistency Mode" {
+    set gfxpayload=keep
     echo 'Loading kernel...'
     echo 'Loading kernel...'
-    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} video=ofonly radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset 
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} persistence 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - disable Kernel Mode-Setting" {
+menuentry "Load German Keyboard Layout" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     set gfxpayload=keep
     echo 'Loading kernel...'
-    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset 
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} lang=de 
+    echo 'Loading initrd...'
+    initrd /boot/%SHORT_NAME%/initrd.img
+}
+
+menuentry "Graphical Mode" {
+    set gfxpayload=keep
+    echo 'Loading kernel...'
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} startx 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - forensic mode" {
+menuentry "Disable Framebuffer" {
+    set gfxpayload=text
+    echo 'Loading kernel...'
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} video=ofonly radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset 
+    echo 'Loading initrd...'
+    initrd /boot/%SHORT_NAME%/initrd.img
+}
+
+menuentry "Disable Video Kernel Mode Setting" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     set gfxpayload=keep
     echo 'Loading kernel...'
-    linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} read-only nofstab noraid nodmraid nolvm noautoconfig noswap raid=noautodetec
+    linux  /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodese
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - debug mode" {
+menuentry "Debug Mode" {
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} initcall verbose debug=vc systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M 
     set gfxpayload=keep
     echo 'Loading kernel...'
     linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} initcall verbose debug=vc systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M 
@@ -71,10 +87,10 @@ menuentry "%GRML_NAME% - debug mode" {
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
     initrd /boot/%SHORT_NAME%/initrd.img
 }
 
-menuentry "%GRML_NAME% - serial mode" {
+menuentry "Serial Console" {
     set gfxpayload=text
     echo 'Loading kernel...'
     set gfxpayload=text
     echo 'Loading kernel...'
-    linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} video=vesafb:off console=tty1 console=ttyS0,9600n8 
+    linux /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 "${loopback}" ${kernelopts} video=vesafb:off console=tty1 console=ttyS0,115200n8 
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
     echo 'Loading initrd...'
     initrd /boot/%SHORT_NAME%/initrd.img
 }
index 34ae54c..5aea931 100644 (file)
@@ -1,10 +1,56 @@
 submenu "Addons ->" --class=submenu {
 
 submenu "Addons ->" --class=submenu {
 
+# EFI:
+if [ "${grub_platform}" == "efi" ] ; then
+  # arm64 doesn't provide the cpuid command, and we also
+  # don't have any memtest* efi files available, so only
+  # run on architectures other than arm64 (amd64 + i386)
+  if [ "${grub_cpu}" != "arm64" ] ; then
+    # try to detect amd64 by checking whether CPU supports 64-bit (long) mode
+    if cpuid -l ; then
+      if test -e /boot/addons/memtest86+x64.efi ; then
+        menuentry "Memory test (memtest86+x64.efi)" {
+          chainloader /boot/addons/memtest86+x64.efi
+        }
+      fi
+    else # assume i386
+      if test -e /boot/addons/memtest86+ia32.efi ; then
+        menuentry "Memory test (memtest86+ia32.efi)" {
+          chainloader /boot/addons/memtest86+ia32.efi
+        }
+      fi
+    fi
+  fi
+fi
+
+# BIOS/non-EFI:
 if [ "${grub_platform}" != "efi" ] ; then
 if [ "${grub_platform}" != "efi" ] ; then
-    menuentry "Memory test (memtest86+)" {
+  # try to detect amd64 by checking whether CPU supports 64-bit (long) mode
+  if cpuid -l ; then
+    if test -e /boot/addons/memtest86+x64.bin ; then
+      menuentry "Memory test (memtest86+x64.bin)" {
+        insmod linux16
+        linux16 /boot/addons/memtest86+x64.bin
+      }
+    elif test -e /boot/addons/memtest ; then # fallback to old memtest
+      menuentry "Memory test (memtest86+)" {
         insmod linux16
         linux16 /boot/addons/memtest
         insmod linux16
         linux16 /boot/addons/memtest
-    }
+      }
+    fi
+  else  # assume i386
+    if test -e /boot/addons/memtest86+ia32.bin ; then
+      menuentry "Memory test (memtest86+ia32.bin)" {
+        insmod linux16
+        linux16 /boot/addons/memtest86+ia32.bin
+      }
+    elif test -e /boot/addons/memtest ; then # fallback to old memtest
+      menuentry "Memory test (memtest86+)" {
+        insmod linux16
+        linux16 /boot/addons/memtest
+      }
+    fi
+  fi
 fi
 
 menuentry "iPXE - boot via network/PXE" {
 fi
 
 menuentry "iPXE - boot via network/PXE" {
index ec85979..8020cde 100644 (file)
  profit from your experience!                                                  
                                                                                
  Contact us:                                                                   
  profit from your experience!                                                  
                                                                                
  Contact us:                                                                   
-    Web:  http://grml.org/contact/                                             
-    IRC:  #grml on irc.freenode.org                                            
+    Web:  https://grml.org/contact/                                            
+    IRC:  #grml on irc.oftc.net                                                
     Mail: contact (at) grml.org                                                
     Mail: contact (at) grml.org                                                
-    Bugs: http://grml.org/bugs/                                                
+    Bugs: https://grml.org/bugs/                                               
                                                                                
  See the FAQ for more information:                                             
                                                                                
  See the FAQ for more information:                                             
-     \ f0fhttp://grml.org/faq/\ f70                                                      
+     \ f0fhttps://grml.org/faq/\ f70                                                     
                                                                                
           Thank you for helping us to improve Grml!                            
 \ f1f
                                                                                
           Thank you for helping us to improve Grml!                            
 \ f1f
index 17560a2..b940f01 100644 (file)
@@ -2,65 +2,67 @@
 
 # generic ones
 
 
 # generic ones
 
-label debug
-  menu label %GRML_NAME% - ^Debug Mode
-  kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 verbose debug=vc initcall nomce net.ifnames=0 systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M 
-
-  text help
-                                        Boot Grml in debug mode, which
-                                        activates debug shells during
-                                        bootup sequence.
-  endtext
-
 label pnet
 label pnet
-  menu label %GRML_NAME% - Enable Predictable ^Network Interface Names
+  menu label Enable Predictable ^Network Interface Names
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce 
 
   text help
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce 
 
   text help
-                                        Boot Grml with Predictable
-                                        Network Interface Names.
+                                        Boot Grml with Predictable Network
+                                        Interface Names.
   endtext
 
   endtext
 
-label nofb
-  menu label %GRML_NAME% - Dis^able Framebuffer
+label ssh
+  menu label Enable ^SSH (with random password)
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=normal radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset nomce net.ifnames=0 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 ssh 
 
   text help
 
   text help
-                                        Boot Grml without framebuffer.
+                                        Boot Grml and automatically start
+                                        SSH Server. The password for user
+                                        'grml' and 'root' will be set to
+                                        a random password, unless you add
+                                        an option to the ssh argument in
+                                        the command line (for example:
+                                        ssh=secret).
   endtext
 
   endtext
 
-label nokms
-  menu label %GRML_NAME% - Disable ^Kernel Mode-Setting
+label grml2ram
+  menu label Load Grml to ^RAM
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset nomce net.ifnames=0 vga=791 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 toram=%SQUASHFS_NAME% 
 
   text help
 
   text help
-                                        Boot Grml without KMS (Kernel
-                                        Mode Setting).
+                                        Load Grml into RAM.
+                                        This allows you to remove the Grml
+                                        media after Grml finished booting.
+
+                                        Note: you should have enough RAM
+                                        (>= size of ISO * 1.2) to be able
+                                        to use this option.
   endtext
 
   endtext
 
-label ssh
-  menu label %GRML_NAME% - Enable ^SSH (with random password)
+label grmlmedium2ram
+  menu label Load ^whole medium to RAM
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 ssh 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 toram 
 
   text help
 
   text help
-                                        Boot Grml and automatically start
-                                        SSH Server. The password for user
-                                        'grml' and 'root' will be set to
-                                        a random password, unless you add
-                                        an option to the ssh argument in
-                                        the command line (for example:
-                                        ssh=secret).
+                                        Load whole medium into RAM.
+                                        This allows you to remove the Grml
+                                        media after Grml has finished booting,
+                                        and also to access the rest of the
+                                        media.
+
+                                        Note: you should have enough RAM
+                                        (>= size of ISO * 1.2) to be able
+                                        to use this option.
   endtext
 
 label forensic
   endtext
 
 label forensic
-  menu label %GRML_NAME% - F^orensic Mode
+  menu label F^orensic Mode
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off nomce net.ifnames=0 vga=791 nofstab noraid nodmraid nolvm noautoconfig noswap raid=noautodetect read-only 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off nomce net.ifnames=0 vga=791 nofstab noraid nolvm noautoconfig noswap raid=noautodetect read-only 
 
   text help
                                         Boot Grml in forensic mode. This
 
   text help
                                         Boot Grml in forensic mode. This
@@ -70,17 +72,29 @@ label forensic
                                         mode.
   endtext
 
                                         mode.
   endtext
 
+label persistence
+  menu label ^Persistency mode
+  kernel /boot/%SHORT_NAME%/vmlinuz
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 persistence 
+
+  text help
+                                        Boot Grml and enable persistency
+                                        feature to store system and
+                                        settings on an external device
+                                        with label persistence.
+  endtext
+
 label lang-de
 label lang-de
-  menu label %GRML_NAME% - ^German Settings
+  menu label Load ^German Keyboard Layout
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 lang=de 
 
   text help
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 lang=de 
 
   text help
-                                        Boot Grml with german settings.
+                                        Boot Grml with German keyboard layout.
   endtext
 
 label %GRML_NAME%x
   endtext
 
 label %GRML_NAME%x
-  menu label %GRML_NAME% - Graphical ^Mode
+  menu label Graphical ^Mode
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 startx 
 
   kernel /boot/%SHORT_NAME%/vmlinuz
   append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 startx 
 
@@ -89,37 +103,40 @@ label %GRML_NAME%x
                                         grml-x to start X Window System.
   endtext
 
                                         grml-x to start X Window System.
   endtext
 
-label grml2ram
-  menu label %GRML_NAME% - Load to ^RAM
+label nofb
+  menu label Dis^able Framebuffer
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 toram=%SQUASHFS_NAME% 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=normal radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset nomce net.ifnames=0 
 
   text help
 
   text help
-                                        Load Grml into the memory (RAM).
-                                        This allows you to remove the Grml
-                                        media after Grml finished booting.
+                                        Boot Grml without framebuffer.
+  endtext
 
 
-                                        Note: you should have enough RAM
-                                        (>= size of ISO * 1.2) to be able
-                                        to use this option.
+label nokms
+  menu label Disable Video ^Kernel Mode Setting
+  kernel /boot/%SHORT_NAME%/vmlinuz
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off radeon.modeset=0 i915.modeset=0 nouveau.modeset=0 cirrus.modeset=0 mgag200.modeset=0 nomodeset nomce net.ifnames=0 vga=791 
+
+  text help
+                                        Boot Grml without Kernel Mode Setting
+                                        for various video drivers.
   endtext
 
   endtext
 
-label persistence
-  menu label %GRML_NAME% - ^Persistency mode
+label debug
+  menu label ^Debug Mode
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 nomce net.ifnames=0 persistence 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=791 verbose debug=vc initcall nomce net.ifnames=0 systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M
 
   text help
 
   text help
-                                        Boot Grml and enable persistency
-                                        feature to store system and
-                                        settings on an external device
-                                        with label persistence.
+                                        Boot Grml in debug mode, which
+                                        activates debug shells during
+                                        bootup sequence.
   endtext
 
 label serial
   endtext
 
 label serial
-  menu label %GRML_NAME% - Serial ^Console
+  menu label Serial ^Console
   kernel /boot/%SHORT_NAME%/vmlinuz
   kernel /boot/%SHORT_NAME%/vmlinuz
-  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=normal video=vesafb:off nomce net.ifnames=0 console=tty1 console=ttyS0,9600n8 
+  append initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% apm=power-off vga=normal video=vesafb:off nomce net.ifnames=0 console=tty1 console=ttyS0,115200n8 
 
 
   text help
 
 
   text help
index a7f0738..e23ed09 100644 (file)
@@ -56,7 +56,7 @@ append apm=power-off vga=788 initrd=/boot/%SHORT_NAME%/initrd.img boot=live live
 label serial
 menu hide
 kernel /boot/%SHORT_NAME%/vmlinuz
 label serial
 menu hide
 kernel /boot/%SHORT_NAME%/vmlinuz
-append apm=power-off vga=normal video=vesafb:off initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 console=tty1 console=ttyS0,9600n8 
+append apm=power-off vga=normal video=vesafb:off initrd=/boot/%SHORT_NAME%/initrd.img boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% nomce net.ifnames=0 console=tty1 console=ttyS0,115200n8 
 
 label userdef
 menu hide
 
 label userdef
 menu hide
index 51c8e43..fb64279 100644 (file)
@@ -74,7 +74,7 @@ timeout 300
 # ontimeout chain.c32 hd0 0
 
 # use this to control the bootup via a serial port:
 # ontimeout chain.c32 hd0 0
 
 # use this to control the bootup via a serial port:
-# serial 0 9600
+# serial 0 115200
 
 # following is a placeholder just in case you want to patch your own startup
 # options right into the Grml ISO. Feel free to use a hex editor like dhex to
 
 # following is a placeholder just in case you want to patch your own startup
 # options right into the Grml ISO. Feel free to use a hex editor like dhex to