From: Michael Prokop Date: Fri, 26 Apr 2024 06:53:27 +0000 (+0200) Subject: Merge remote-tracking branch 'origin/github/pr/148' X-Git-Url: https://git.grml.org/?p=grml-live.git;a=commitdiff_plain;h=HEAD;hp=11fa3af66450c7b758568fb4bf14e340381b6834 Merge remote-tracking branch 'origin/github/pr/148' --- diff --git a/debian/changelog b/debian/changelog index 66e3b4c..e087f41 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,134 @@ +grml-live (0.47.6) unstable; urgency=medium + + * [642ff89] docs: update instructions for basefile creation to include + capabilities + + -- Michael Prokop 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 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 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 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 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 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 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 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 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 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 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 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. diff --git a/debian/control b/debian/control index 4046aa1..f9dc097 100644 --- a/debian/control +++ b/debian/control @@ -20,19 +20,18 @@ Architecture: all Depends: bc, bzip2, + debootstrap, dosfstools, fai-client (>= 3.4.0), - fai-server (>= 3.4.0), isolinux (>= 3:6.03+dfsg-5+deb8u1~), jo, - memtest86+, mksh, moreutils, mtools, pciutils, rsync, squashfs-tools (>= 1:4.2-0~bpo60), - syslinux, + syslinux | syslinux-efi, xorriso, ${misc:Depends}, Recommends: @@ -40,6 +39,7 @@ Recommends: grub-pc-bin, imagemagick, ipxe, + memtest86+, syslinux-utils, Suggests: fai-doc, diff --git a/debian/grml-live.maintscript b/debian/grml-live.maintscript index 8e029f0..c00535e 100644 --- a/debian/grml-live.maintscript +++ b/debian/grml-live.maintscript @@ -5,3 +5,4 @@ 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/scripts/GRMLBASE/93-update-usbids 0.45.0~ diff --git a/debian/rules b/debian/rules index 504a935..864e829 100755 --- a/debian/rules +++ b/debian/rules @@ -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 + # zsh completion + dh_install etc/zsh/completion.d/_grml-live usr/share/zsh/vendor-completions override_dh_fixperms: dh_fixperms diff --git a/docs/grml-live.txt b/docs/grml-live.txt index 3d5ca3a..46f4890 100644 --- a/docs/grml-live.txt +++ b/docs/grml-live.txt @@ -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 -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:: @@ -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 -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 <> for details about available classes). So instead of GRML_FULL you can also use e.g. @@ -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 -(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 @@ -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 -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/). @@ -330,7 +330,14 @@ ${GRML_FAI_CONFIG}/config/package_config whereas some further classes are define example in ${GRML_FAI_CONFIG}/config/scripts/ so specific feature sets can be selected. The following classes are predefined: -* DEBORPHAN: get rid of all packages listed in output of deborphan +* DEBORPHAN: get rid of "autoremove" and "removed-but-not-yet-purged" packages; +also all packages listed in output of deborphan (only if deborphan is actually +present, note that grml-live no longer installs deborphan by default as it's not +present since Debian/trixie!). This class is called as such for historic +reasons, and while deborphan itself is no longer relevant nowadays, the name of +the class was kept as such for backwards compatibility reasons. This class is +thought to be used *before* any further `GRML*` classes, like +`DEBORPHAN,GRMLBASE,GRML_FULL,RELEASE,...` to get proper Grml releases. * FRESHCLAM: execute freshclam (if it's present) to update clamav definitions (increases resulting ISO size ~70MB). By default it's skipped to avoid bigger @@ -536,7 +543,7 @@ Instructions EOF # get keyring for apt: - apt-get update + apt-get -o Acquire::AllowInsecureRepositories=true update apt-get --allow-unauthenticated install grml-debian-keyring # optionally(!) install basefile so we don't have to build basic @@ -544,6 +551,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/ + # mv ARM64.tar.gz /etc/grml/fai/config/basefiles/ # install relevant tools apt-get --no-install-recommends install grml-live @@ -705,26 +713,27 @@ syslinux, used by default for official Grml images) then just execute: % 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 - SUITE='bookworm' # 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. +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. -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: diff --git a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE index c11f72b..3585bfb 100644 --- a/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE +++ b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_STABLE @@ -1,11 +1,11 @@ # 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: - deb http://security.debian.org/debian-security stable-security main contrib non-free - deb-src http://security.debian.org/debian-security stable-security main contrib non-free + 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: - 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_TRIXIE b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TRIXIE new file mode 100644 index 0000000..7403459 --- /dev/null +++ b/etc/grml/fai/config/files/etc/apt/sources.list.d/debian.list/DEBIAN_TRIXIE @@ -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 diff --git a/etc/grml/fai/config/files/etc/fstab/GRMLBASE b/etc/grml/fai/config/files/etc/fstab/GRMLBASE index 9a5698a..ffd52b7 100644 --- a/etc/grml/fai/config/files/etc/fstab/GRMLBASE +++ b/etc/grml/fai/config/files/etc/fstab/GRMLBASE @@ -16,11 +16,11 @@ 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 -# //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 -# 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. # If you want to disable rebuildfstab set CONFIG_FSTAB='no' in /etc/grml/autoconfig. diff --git a/etc/grml/fai/config/files/usr/share/doc/grml-docs/startpage.html/GRMLBASE b/etc/grml/fai/config/files/usr/share/doc/grml-docs/startpage.html/GRMLBASE index 4397911..697dd05 100644 --- a/etc/grml/fai/config/files/usr/share/doc/grml-docs/startpage.html/GRMLBASE +++ b/etc/grml/fai/config/files/usr/share/doc/grml-docs/startpage.html/GRMLBASE @@ -4,7 +4,7 @@ # Filename: startpage.html # Purpose: information page on Grml # Authors: grml-team (grml.org), (c) Michael Prokop -# Bug-Reports: see http://grml.org/bugs/ +# Bug-Reports: see https://grml.org/bugs/ # License: This file is licensed under the GPL v2. ################################################################################ --> @@ -37,53 +37,55 @@

Grml Live Linux

-

Grml is a Debian based Linux Live system for x86 and x86_64 systems. Its main -purpose is providing a system for system administrators.

+

+Grml is a Debian based Linux Live system for system administrators and users of texttools. +

-

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 <tab>-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.

+

+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.

-

Note: If you find bugs, please report them! Thank you for helping -us to improve Grml!

- -

Overview

- -

Find the package list of installed software at grml.org/files/.

+

+Notice: if you find any bugs please report them to the Grml team! +Thank you for helping us to improve Grml! +

Quickstart

    +
  • Find the package list of installed software at grml.org/files/.
  • Use 'grml-tips $KEYWORD' to get hints and tips.
  • Use 'grml-x' to start the X window system.

Online resources

-

Subscribe to the Grml mailinglist and join #grml on irc.freenode.net!

+

+Subscribe to the Grml mailinglist, or join us on IRC in #grml on irc.oftc.net. +

-

Press 'Q' for exiting the browsers w3m, links and xlinks2.

+

+Press 'Q' for exiting the browsers w3m and links. +

+ +

+Enjoy Grml! +

-

Have fun with Grml!

diff --git a/etc/grml/fai/config/package_config/DEBIAN_BOOKWORM b/etc/grml/fai/config/package_config/DEBIAN_BOOKWORM new file mode 100644 index 0000000..af1c28b --- /dev/null +++ b/etc/grml/fai/config/package_config/DEBIAN_BOOKWORM @@ -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_STABLE b/etc/grml/fai/config/package_config/DEBIAN_STABLE new file mode 100644 index 0000000..af1c28b --- /dev/null +++ b/etc/grml/fai/config/package_config/DEBIAN_STABLE @@ -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 index 0000000..9a7cc24 --- /dev/null +++ b/etc/grml/fai/config/package_config/DEBIAN_TESTING @@ -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 index 0000000..9a7cc24 --- /dev/null +++ b/etc/grml/fai/config/package_config/DEBIAN_TRIXIE @@ -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 index 0000000..9a7cc24 --- /dev/null +++ b/etc/grml/fai/config/package_config/DEBIAN_UNSTABLE @@ -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/GRMLBASE b/etc/grml/fai/config/package_config/GRMLBASE index c7e69a0..40fbb0d 100644 --- a/etc/grml/fai/config/package_config/GRMLBASE +++ b/etc/grml/fai/config/package_config/GRMLBASE @@ -6,14 +6,12 @@ console-data console-setup cryptsetup-initramfs dbus -deborphan dmidecode efibootmgr eject fdisk file gpm -grml2usb grml-autoconfig grml-crypt grml-debian-keyring @@ -28,9 +26,6 @@ grml-scripts grml-scripts-core grml-tips grml-udev-config -grub-efi-amd64-bin -grub-efi-ia32-bin -grub-pc haveged hdparm hwinfo @@ -51,7 +46,6 @@ resolvconf rsync rsyslog strace -syslinux syslinux-common syslinux-utils udev usbutils uuid-runtime @@ -83,3 +77,20 @@ firmware-zd1211 libpam-systemd systemd-container + +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 diff --git a/etc/grml/fai/config/package_config/GRML_FULL b/etc/grml/fai/config/package_config/GRML_FULL index 61d37d5..2d83c2f 100644 --- a/etc/grml/fai/config/package_config/GRML_FULL +++ b/etc/grml/fai/config/package_config/GRML_FULL @@ -3,7 +3,6 @@ PACKAGES install grml-live grml-paste grml-quickconfig-standard -grml-terminalserver # base os apt @@ -14,7 +13,6 @@ bsdutils dctrl-tools devscripts dos2unix -dstat findutils htop libnss-myhostname @@ -42,9 +40,6 @@ brltty espeak-ng espeakup -# broken userland debugging -ltrace - # deploy on remote sites openvpn ppp @@ -52,11 +47,10 @@ pppoeconf # disk subsystems support/debugging array-info -cciss-vol-status cryptsetup disktype -dmraid dmsetup +f3 fai-setup-storage fio gdisk @@ -76,7 +70,6 @@ stenc # disk partitioning/boot boot-info-script gparted -grub-pc-bin kpartx mbr partclone @@ -93,6 +86,7 @@ hexedit nano vim vim-gtk3 +xxd zile # filesystem support @@ -113,7 +107,6 @@ ntfs-3g reiser4progs reiserfsprogs tcplay -thin-provisioning-tools xfsdump xfsprogs xmount @@ -177,7 +170,6 @@ iptstate iputils-arping iputils-ping iputils-tracepath -isc-dhcp-client iw libnss-mdns libteam-utils @@ -263,6 +255,7 @@ mtx restic # compressions for backup/restore +lz4 lzop zstd @@ -334,14 +327,17 @@ xterm # x86 hardware support acpi acpi-support -cmospwd -cpuid irqbalance lm-sensors lshw numactl usbview +# firmware updates +fwupd +policykit-1 +udisks2 + # testing bats stress @@ -349,14 +345,63 @@ stress # docs man-db +# special terminal output +lolcat +toilet + PACKAGES install I386 +# kernel related 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 +# kernel related 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 + +# firmware updates +fwupd-amd64-signed + +PACKAGES install ARM64 +# kernel related +linux-image-arm64 +linux-cpupower + +# firmware updates +fwupd-arm64-signed diff --git a/etc/grml/fai/config/package_config/GRML_SMALL b/etc/grml/fai/config/package_config/GRML_SMALL index db58712..34c1647 100644 --- a/etc/grml/fai/config/package_config/GRML_SMALL +++ b/etc/grml/fai/config/package_config/GRML_SMALL @@ -18,7 +18,6 @@ cu dctrl-tools diffutils disktype -dmraid dmsetup dos2unix dosfstools @@ -29,6 +28,7 @@ f2fs-tools findutils fsarchiver gddrescue +gdisk grml-paste grml-quickconfig-standard htop @@ -39,7 +39,6 @@ iperf3 iproute2 iptstate iputils-ping -isc-dhcp-client iw jfsutils kexec-tools @@ -105,11 +104,19 @@ wget whois wipe xfsprogs +xxd zip zsh +zstd + +# special terminal output +toilet 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/scripts/DEBORPHAN/98-clean-chroot b/etc/grml/fai/config/scripts/DEBORPHAN/98-clean-chroot index 42ed9c2..dce15d4 100755 --- a/etc/grml/fai/config/scripts/DEBORPHAN/98-clean-chroot +++ b/etc/grml/fai/config/scripts/DEBORPHAN/98-clean-chroot @@ -9,21 +9,10 @@ set -u set -e -if ! [ -x $target/usr/bin/deborphan ] ; then - echo "Warning: deborphan not installed" - exit 0 -fi - # remove all packages not necessary anymore: echo "Executing apt-get -y --purge autoremove" $ROOTCMD apt-get -y --purge autoremove -# remove packages until deborphan does not find anymore: -while [ "$($ROOTCMD deborphan)" != "" ] ; do - echo "Executing deborphan" - $ROOTCMD apt-get -y --purge remove $($ROOTCMD deborphan) -done - # make sure we don't have any removed but not-yet-purged packages left, # otherwise GRMLBASE/03-get-sources might try to download unavailable # packages and will fail doing so @@ -34,5 +23,15 @@ if [ -n "$PURGE_PACKAGES" ] ; then $ROOTCMD dpkg --purge $PURGE_PACKAGES fi +# note: deborphan is no longer available as of Debian/trixie, +# see https://github.com/grml/grml-live/issues/144 +if [ -x "$target"/usr/bin/deborphan ] ; then + # remove packages until deborphan does not find anymore: + while [ "$($ROOTCMD deborphan)" != "" ] ; do + echo "Executing deborphan" + $ROOTCMD apt-get -y --purge remove $($ROOTCMD deborphan) + done +fi + ## END OF FILE ################################################################# # vim:ft=sh expandtab ai tw=80 tabstop=4 shiftwidth=2 diff --git a/etc/grml/fai/config/scripts/GRMLBASE/44-grub b/etc/grml/fai/config/scripts/GRMLBASE/44-grub index 5caa73a..d00d376 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/44-grub +++ b/etc/grml/fai/config/scripts/GRMLBASE/44-grub @@ -11,7 +11,14 @@ set -u $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 \ diff --git a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images index 16c0e9a..76c0e10 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images +++ b/etc/grml/fai/config/scripts/GRMLBASE/45-grub-images @@ -28,6 +28,19 @@ ARCHS=(i386-pc) 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) @@ -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 ;; + arm64-efi) filename=/boot/bootaa64.efi ;; esac $ROOTCMD grub-mkimage -O $arch -o "$filename" --prefix=/boot/grub/ --config="$TMP_CONFIG" \ diff --git a/etc/grml/fai/config/scripts/GRMLBASE/91-update-pciids b/etc/grml/fai/config/scripts/GRMLBASE/91-update-pciids index 039c423..07666b1 100755 --- a/etc/grml/fai/config/scripts/GRMLBASE/91-update-pciids +++ b/etc/grml/fai/config/scripts/GRMLBASE/91-update-pciids @@ -14,11 +14,11 @@ fi 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 - 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" 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 index d2972d3..0000000 --- a/etc/grml/fai/config/scripts/GRMLBASE/93-update-usbids +++ /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 -# 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 diff --git a/etc/grml/grml-live.conf b/etc/grml/grml-live.conf index 4fb6935..6762ff7 100644 --- a/etc/grml/grml-live.conf +++ b/etc/grml/grml-live.conf @@ -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 -# 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 diff --git a/etc/zsh/completion.d/_grml-live b/etc/zsh/completion.d/_grml-live index 554f3e1..b0750ec 100644 --- a/etc/zsh/completion.d/_grml-live +++ b/etc/zsh/completion.d/_grml-live @@ -12,7 +12,7 @@ _grmllive_flavours() { #{{{ flavours=( grml grml64 - grml-medium grml64-medium + grml-full grml64-full 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=( - 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}) @@ -47,23 +49,40 @@ _grmllive_suites() { #{{{ local -a suites suites=( - stable testing unstable bullseye bookworm sid + stable testing unstable bookworm sid trixie ) _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[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[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]' - '-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 -/' + '-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[place of scripts (defaults to /usr/share/grml-live/scripts)]:script 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]' + '-w[wayback machine, build system using Debian archives from specified date]:date:' + '-z[use ZLIB instead of LZMA/XZ compression]' ) #}}} diff --git a/grml-live b/grml-live index 6710037..72fe591 100755 --- 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] - -a architecture; available values: i386 and amd64 + -a 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) @@ -221,7 +221,6 @@ bailout() { # 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" @@ -328,6 +327,7 @@ copy_addon_file() { msg="Missing addon file: \"$1\"" ewarn "$msg" ; eend 1 log "copy_addon_file: $msg" + return 1 } # replace placeholders in template files with actual information @@ -485,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." +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 ',./;\- ')" @@ -494,6 +500,7 @@ specify it on the command line using the -o option." [ -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 @@ -686,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 - 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 - 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 +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 @@ -712,16 +727,7 @@ if [ -z "$FAI_DEBOOTSTRAP" ] ; 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. @@ -729,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" -# 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 {{{ @@ -808,10 +812,16 @@ else 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 + # 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 @@ -911,8 +921,6 @@ fi # grub boot {{{ grub_setup() { - BOOTX64="/boot/bootx64.efi" - BOOTX32="/boot/bootia32.efi" EFI_IMG="/boot/efi.img" local efi_size @@ -923,7 +931,16 @@ grub_setup() { efi_size='8M' fi - if [[ "$ARCH" == "amd64" ]] ; then + 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" @@ -942,8 +959,15 @@ grub_setup() { 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 @@ -1004,6 +1028,7 @@ grub_setup() { 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 @@ -1028,7 +1053,7 @@ grub_setup() { 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 @@ -1098,9 +1123,17 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then 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=$? @@ -1108,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." - 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=$? @@ -1161,34 +1194,39 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then copy_addon_file ipxe.efi /usr/lib/ipxe addons copy_addon_file pci.ids /usr/share/misc addons - # memtest86+ <=5.01-3.1 - copy_addon_file memtest86+.bin /boot addons - # make memtest filename FAT16/8.3 compatible - if [ -r "${BUILD_OUTPUT}/boot/addons/memtest86+.bin" ] ; then - mv "${BUILD_OUTPUT}/boot/addons/memtest86+.bin" \ - "${BUILD_OUTPUT}/boot/addons/memtest" - fi - # memtest86+ >=6.00-1 - copy_addon_file memtest86+x32.bin /boot addons - copy_addon_file memtest86+x32.efi /boot addons - copy_addon_file memtest86+x64.bin /boot addons - copy_addon_file memtest86+x64.efi /boot addons + 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 + 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+x32.bin /boot addons - mv "${BUILD_OUTPUT}/boot/addons/memtest86+x32.bin" \ + 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 :( if [ -d "${CHROOT_OUTPUT}/usr/lib/syslinux/modules/bios/" ] ; then @@ -1237,22 +1275,34 @@ if [ "$ARCH" = i386 ] || [ "$ARCH" = amd64 ] ; then 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 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/ + # 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 + + # 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." diff --git a/remaster/grml-live-remaster b/remaster/grml-live-remaster index 326a189..ab8ca18 100755 --- a/remaster/grml-live-remaster +++ b/remaster/grml-live-remaster @@ -94,8 +94,8 @@ if [ ! -r /remaster ]; then 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 @@ -107,8 +107,8 @@ if ! grep -q "/remaster/cdrom squashfs" /proc/mounts ; then 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 diff --git a/templates/GRML/grml-cheatcodes.txt b/templates/GRML/grml-cheatcodes.txt index 030a4a0..3dd33bf 100644 --- a/templates/GRML/grml-cheatcodes.txt +++ b/templates/GRML/grml-cheatcodes.txt @@ -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: -* 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 @@ -210,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 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 diff --git a/templates/boot/grub/%SHORT_NAME%_options.cfg b/templates/boot/grub/%SHORT_NAME%_options.cfg index ac0e42c..0168459 100644 --- a/templates/boot/grub/%SHORT_NAME%_options.cfg +++ b/templates/boot/grub/%SHORT_NAME%_options.cfg @@ -1,5 +1,5 @@ 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} @@ -7,15 +7,15 @@ menuentry "%GRML_NAME% - enable Predictable Network Interface Names" { initrd /boot/%SHORT_NAME%/initrd.img } -menuentry "%GRML_NAME% - enable persistency mode" { +menuentry "Enable SSH (with random password)" { 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 } -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 @@ -23,7 +23,7 @@ menuentry "%GRML_NAME% - copy Grml to RAM" { 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 @@ -31,39 +31,55 @@ menuentry "%GRML_NAME% - copy whole medium to RAM" { initrd /boot/%SHORT_NAME%/initrd.img } -menuentry "%GRML_NAME% - start X by default" { +menuentry "Forensic 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 + 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 } -menuentry "%GRML_NAME% - disable framebuffer" { - set gfxpayload=text +menuentry "Persistency 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} 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 } -menuentry "%GRML_NAME% - disable Kernel Mode-Setting" { +menuentry "Load German Keyboard Layout" { 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 } -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...' - 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=noautodetect + 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 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 @@ -71,7 +87,7 @@ menuentry "%GRML_NAME% - debug mode" { initrd /boot/%SHORT_NAME%/initrd.img } -menuentry "%GRML_NAME% - serial mode" { +menuentry "Serial Console" { 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,115200n8 diff --git a/templates/boot/grub/addons.cfg b/templates/boot/grub/addons.cfg index b4ce608..5aea931 100644 --- a/templates/boot/grub/addons.cfg +++ b/templates/boot/grub/addons.cfg @@ -2,18 +2,23 @@ submenu "Addons ->" --class=submenu { # EFI: if [ "${grub_platform}" == "efi" ] ; 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)" { - linuxefi /boot/addons/memtest86+x64.efi - } - fi - else # assume i386 - if test -e /boot/addons/memtest86+x32.efi ; then - menuentry "Memory test (memtest86+x32.efi)" { - linuxefi /boot/addons/memtest86+x32.efi - } + # 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 @@ -34,10 +39,10 @@ if [ "${grub_platform}" != "efi" ] ; then } fi else # assume i386 - if test -e /boot/addons/memtest86+x32.bin ; then - menuentry "Memory test (memtest86+x32.bin)" { + if test -e /boot/addons/memtest86+ia32.bin ; then + menuentry "Memory test (memtest86+ia32.bin)" { insmod linux16 - linux16 /boot/addons/memtest86+x32.bin + linux16 /boot/addons/memtest86+ia32.bin } elif test -e /boot/addons/memtest ; then # fallback to old memtest menuentry "Memory test (memtest86+)" { diff --git a/templates/boot/isolinux/f10 b/templates/boot/isolinux/f10 index ec85979..8020cde 100644 --- a/templates/boot/isolinux/f10 +++ b/templates/boot/isolinux/f10 @@ -11,13 +11,13 @@ 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 - Bugs: http://grml.org/bugs/ + Bugs: https://grml.org/bugs/ See the FAQ for more information: - 0fhttp://grml.org/faq/70 + 0fhttps://grml.org/faq/70 Thank you for helping us to improve Grml! 1f diff --git a/templates/boot/isolinux/grml.cfg b/templates/boot/isolinux/grml.cfg index 64043ca..b940f01 100644 --- a/templates/boot/isolinux/grml.cfg +++ b/templates/boot/isolinux/grml.cfg @@ -2,65 +2,67 @@ # 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 - 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 - Boot Grml with Predictable - Network Interface Names. + Boot Grml with Predictable Network + Interface Names. endtext -label nofb - menu label %GRML_NAME% - Dis^able Framebuffer +label ssh + menu label Enable ^SSH (with random password) 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 - 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 -label nokms - menu label %GRML_NAME% - Disable ^Kernel Mode-Setting +label grml2ram + menu label Load Grml to ^RAM 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 - 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 -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 - 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 - 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 - menu label %GRML_NAME% - F^orensic Mode + menu label F^orensic 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 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 @@ -70,17 +72,29 @@ label forensic 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 - 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 - Boot Grml with german settings. + Boot Grml with German keyboard layout. 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 @@ -89,35 +103,38 @@ label %GRML_NAME%x 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 - 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 - 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 -label persistence - menu label %GRML_NAME% - ^Persistency mode +label debug + menu label ^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 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 - 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 - menu label %GRML_NAME% - Serial ^Console + menu label Serial ^Console 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,115200n8