2 years agogrml-cheatcodes.txt: update fromiso doc.
Mihai Moldovan [Mon, 8 Mar 2021 20:20:54 +0000 (21:20 +0100)]
grml-cheatcodes.txt: update fromiso doc.

This adds support for file system overrides and makes clear that the
device path prefix is actually optional.

2 years agoProvide apt sources.list file to support 'bullseye' as Debian suite
Michael Prokop [Mon, 8 Mar 2021 08:05:06 +0000 (09:05 +0100)]
Provide apt sources.list file to support 'bullseye' as Debian suite

Requires new repository layout quoting from

| over the last years we had people getting confused over <suite>-updates
| (recommended updates) and <suite>/updates (security updates).  Starting
| with Debian 11 "bullseye" we have therefore renamed the suite including
| the security updates to <suite>-security.
| An entry in sources.list should look like
|   deb bullseye-security main
| For previous releases the name will not change.

2 years agoMerge remote-tracking branch 'origin/github/pr/95'
Michael Prokop [Mon, 8 Mar 2021 07:19:33 +0000 (08:19 +0100)]
Merge remote-tracking branch 'origin/github/pr/95'

2 years agoGRUB: drop loopback usage for balder10/FreeDOS.
Mihai Moldovan [Sat, 6 Mar 2021 20:06:00 +0000 (21:06 +0100)]
GRUB: drop loopback usage for balder10/FreeDOS.

Looks like a relic from the bad, old days.

It's certainly not needed any longer, since the initrd16 command can
load the file just fine and newer grub versions are not able to load
compressed files in such a manner, since the length (+2880) refers to
the uncompressed size. Grub will see that the file is smaller than that
and error out. If we were to give it the compressed size, decompression
would fail due to the buffer being too small.

2 years agogrml-cheatcodes.txt: drop trailing whitespace char
Michael Prokop [Fri, 22 Jan 2021 13:13:47 +0000 (14:13 +0100)]
grml-cheatcodes.txt: drop trailing whitespace char

Git-Dch: ignore

2 years agogrml-cheatcodes.txt: fix URL for initramfs-tools manpage
Michael Prokop [Fri, 22 Jan 2021 13:10:29 +0000 (14:10 +0100)]
grml-cheatcodes.txt: fix URL for initramfs-tools manpage

The tool switched section and the URL lead to 404

2 years agogrml-cheatcodes.txt: remove several unsupported boot options
Michael Prokop [Fri, 22 Jan 2021 13:07:00 +0000 (14:07 +0100)]
grml-cheatcodes.txt: remove several unsupported boot options

E.g. in grml-autoconfig commit 0fb27baed a bunch of features
were finally deprecated, so let's remove those here as well
and while it, get rid of some very outdated ones or that
are part of upstream kernel docs anyways.

Also drop the deprecated mem=... docs, with this configuration
we can't even boot nowadays.

2 years agogrml-cheatcodes.txt: document getfile.retries boot option
Michael Prokop [Fri, 22 Jan 2021 13:00:56 +0000 (14:00 +0100)]
grml-cheatcodes.txt: document getfile.retries boot option

This is useful, when the netscript boot option was specified but
times out before network is available.

2 years agoRelease new version 0.37.2 v0.37.2
Michael Prokop [Fri, 22 Jan 2021 11:01:25 +0000 (12:01 +0100)]
Release new version 0.37.2

2 years agoMerge remote-tracking branch 'origin/github/pr/94'
Michael Prokop [Fri, 22 Jan 2021 10:43:16 +0000 (11:43 +0100)]
Merge remote-tracking branch 'origin/github/pr/94'

2 years agoinitramfs-tools: use upstream's xz handling to support multithreading
Michael Prokop [Fri, 22 Jan 2021 09:59:28 +0000 (10:59 +0100)]
initramfs-tools: use upstream's xz handling to support multithreading

initramfs-tools versions >=0.136 support multithreading in
xz compression usage (see upstream commit 41d9ceb3).

While at it fix header comment, to refer to the actual
script (which was renamed in commit 6e778099).

FTR: we're still using xz (and not using e.g. zstd) because
it still seems to be the combination of small file size
*and* decompression speed now that we have multithreading
support (though zstd might be an interesting option in the future),
also see

2 years agoGRUB: remove erroneous quotes around kernelopts
Michael Lass [Sun, 27 Dec 2020 17:20:27 +0000 (18:20 +0100)]
GRUB: remove erroneous quotes around kernelopts

kernelopts are used by grml-rescueboot to communicate kernel arguments
from the host's grub to the grub within the grml ISO. E.g., the host
grub boot entry will contains something like:

    kernelopts=" arg1 arg2 blacklist=foo etc "
    export kernelopts

Currently, grub within the grml ISO will pass this entire string as one
single argument to the kernel. Remove the quotes such that the arguments
are interpreted as intended.


2 years agoRelease new version 0.37.1 v0.37.1
Michael Prokop [Tue, 25 Aug 2020 09:49:56 +0000 (11:49 +0200)]
Release new version 0.37.1

2 years agoUpdate lintian-overrides for new EFI boot files
Michael Prokop [Tue, 25 Aug 2020 09:48:32 +0000 (11:48 +0200)]
Update lintian-overrides for new EFI boot files

Fixup for commit 518eb395d865 where templates/EFI/BOOT/ was
split into templates/EFI/debian/BOOT/ + templates/EFI/ubuntu/BOOT/

2 years agoAdd bsdmainutils to DEBORPHAN whitelist
Michael Prokop [Wed, 12 Aug 2020 21:44:15 +0000 (23:44 +0200)]
Add bsdmainutils to DEBORPHAN whitelist

Fixes Jenkins issue:

| Package bsdmainutils is missing

2 years agoSecure Boot: update grubx64.efi.signed to fix BootHole issue
Michael Prokop [Wed, 12 Aug 2020 15:24:08 +0000 (17:24 +0200)]
Secure Boot: update grubx64.efi.signed to fix BootHole issue

Fixes the BootHole, see + +

2 years agoSW: add mmdebstrap to GRML_FULL + GRML_SMALL
Michael Prokop [Sun, 2 Aug 2020 11:07:32 +0000 (13:07 +0200)]
SW: add mmdebstrap to GRML_FULL + GRML_SMALL

It requires only ~250kB of disk space and it's much faster
than debootstrap and we plan to use it as default within
grml-debootstrap anyway.

Thanks: Helmut Grohne for the suggestion

2 years agoRelease new version 0.37.0 v0.37.0
Michael Prokop [Sat, 18 Jul 2020 20:12:00 +0000 (22:12 +0200)]
Release new version 0.37.0

2 years ago/e/n/i: move sourcing of /etc/network/interfaces.d/ to begin of file
Michael Prokop [Sat, 18 Jul 2020 14:03:58 +0000 (16:03 +0200)]
/e/n/i: move sourcing of /etc/network/interfaces.d/ to begin of file

netcardconfig doesn't properly handle this section and it disappears
when configuring network devices then.

Rewriting netcardconfig is on our agenda (see, until we get there
let's make sure the status quo works as good as possible.

Take over wording based on what ifupdown's postinst script uses.

2 years agoSW: add grub-efi-amd64-signed + shim-signed to GRML_FULL (AMD64 only)
Michael Prokop [Sat, 18 Jul 2020 11:05:23 +0000 (13:05 +0200)]
SW: add grub-efi-amd64-signed + shim-signed to GRML_FULL (AMD64 only)

This adds support for EFI PXE boot support via grml-terminalserver.

While they are part of the depends in grml-terminalserver, they aren't
strictly needed (alternative depends), so ensure we have those packages
available OOTB for EFI based PXE boot with grml-terminalserver.

2 years agoProvide setup files for EFI boot in netboot package
Michael Prokop [Fri, 17 Jul 2020 22:19:12 +0000 (00:19 +0200)]
Provide setup files for EFI boot in netboot package

The shim + grubnetx64 files need to be available via tftp,
using for example a dhcpd configuration which includes:

| # UEFI boot with DHCPv4
| option architecture-type code 93 = unsigned integer 16;
| subnet netmask {
|   next-server;
|   range;
|   class "pxeclients" {
|     match if substring (option vendor-class-identifier, 0 ,9) = "PXEClient";
|     if option architecture-type = 00:07 {
|       filename "shim.efi";
|     } else {
|       filename "pxelinux.0";
|     }
|   }
| }

... or a dnsmasq configuration which includes:

| domain-needed
| bogus-priv
| expand-hosts
| dhcp-range=,,6h
| dhcp-option=1,  # subnet mask
| dhcp-option=3,     # default gateway
| dhcp-option=6,     # domain name server
| dhcp-option=28,  # broadcast address
| dhcp-option=42,     # timeserver preference
| dhcp-option=252,"\n"         # proxy config
| dhcp-match=BIOS,option:client-arch,0
| dhcp-boot=tag:BIOS,pxelinux.0
| dhcp-match=UEFI,option:client-arch,7
| dhcp-match=UEFI,option:client-arch,9
| dhcp-boot=tag:UEFI,shim.efi
| dhcp-leasefile=/var/lib/misc/dnsmasq.leases
| dhcp-authoritative

or quoting from

| dhcp-boot=pxelinux.0
| dhcp-match=set:efi-x86_64,option:client-arch,7
| dhcp-boot=tag:efi-x86_64,bootx64.efi

Then EFI boot via PXE with GRUB is supposed to work fine,
while pxelinux provides PXE boot for BIOS based systems.

This is related to the EFI boot support within grml-terminalserver,
see commit 3154dc (`Support UEFI PXE boot with DHCPv4`).

This work was funded by Grml-Forensic.

2 years agoGRUB: don't display BIOS only addons when running in EFI mode
Michael Prokop [Fri, 17 Jul 2020 20:03:41 +0000 (22:03 +0200)]
GRUB: don't display BIOS only addons when running in EFI mode

There's no point in displaying the BIOS only addons when
running in EFI mode.

This work was funded by Grml-Forensic.


2 years agoSupport EFI capable ipxe.efi boot addon
Michael Prokop [Fri, 17 Jul 2020 20:02:22 +0000 (22:02 +0200)]
Support EFI capable ipxe.efi boot addon

2 years agoBe more verbose about boot addons installation
Michael Prokop [Fri, 17 Jul 2020 20:01:46 +0000 (22:01 +0200)]
Be more verbose about boot addons installation

Otherwise it's a bit unclear whether the boot addons get installed

2 years agoSupport usage of boot/addons via symlink to corresponding git repository
Michael Prokop [Fri, 17 Jul 2020 19:57:46 +0000 (21:57 +0200)]
Support usage of boot/addons via symlink to corresponding git repository

It's annoying when you are running grml-live from the git repository,
as the installed grml-live-addons package doesn't matter then,
because the templates are pointing to the git repository.
This can be handled via a symlink, support its usage and mention
it in the docs.

2 years agoStore logfiles also when FAI's dirinstall fails
Michael Prokop [Fri, 10 Jul 2020 11:31:45 +0000 (13:31 +0200)]
Store logfiles also when FAI's dirinstall fails

With the ongoing bsdmainutils transition grml32-small_sid failed
to build and we don't have any log files for debugging in our jenkins
builds. Ensure to store logfiles also when the fai dirinstall run

2 years agoscripts/GRMLBASE/52-mdadm: unconditionally clear 64-md-raid-assembly.rules
Michael Prokop [Fri, 10 Jul 2020 09:14:57 +0000 (11:14 +0200)]
scripts/GRMLBASE/52-mdadm: unconditionally clear 64-md-raid-assembly.rules

Similar to what we did in commit 31cd53a8b for LVM,
if /lib/udev/rules.d/64-md-raid-assembly.rules was removed by a
prior run of the unpatched script,
the patched script will fail to create the placeholder file.

This work was funded by Grml-Forensic.

2 years agoRelease new version 0.36.0 v0.36.0
Michael Prokop [Wed, 24 Jun 2020 09:35:13 +0000 (11:35 +0200)]
Release new version 0.36.0

2 years agoRefresh Secure Boot support, supporting new 'debian' method
Michael Prokop [Fri, 19 Jun 2020 13:10:56 +0000 (15:10 +0200)]
Refresh Secure Boot support, supporting new 'debian' method

Secure Boot mode wasn't reliably working, e.g. failing to boot in EFI
mode with disabled Secure Boot, but also hard to debug.

Now with our move from our own Grml kernel packages to the official
Debian kernel ones (which are signed and intended for usage with enabled
Secure Boot) it makes sense to support a proper Secure Boot chain
without hacks like we used to do (like relying on and old GRUB binary
from Ubuntu which supported booting unsigned kernels).

We do NOT enable Secure Boot support by default *yet* though, since we
need to get more testing of this and right now we're in the middle of an
RC version (2020.06-rc1) and the upcoming new stable version of Grml.

Relevant changes:

* minimize templates/secureboot/grub.cfg: while it's certainly nice
  to display only entries that are actually working under Secure Boot,
  it's annoying to have to maintain yet another place of boot menus.

  Also if something fails with detection of Secure Boot then it's annoying
  to have to debug this, instead let's display an error message, inform
  the user about it and ask for debugging information.

  Instead introduce a new GRUB theme (/boot/grub/grml-theme/sb-theme.txt)
  which displays a message that we're running in Secure Boot mode.
  While at it, unify indention in existing /boot/grub/grml-theme/theme.txt.

* move templates/EFI/BOOT towards templates/EFI/ubuntu/BOOT/ to be able
  to support debian and ubuntu methods at the same time

* ship GRUB binaries in templates/EFI/debian/, similar to the ones in

* switch Ubuntu's grubx64.efi.signed from grubx64.efi.signed to gcdx64.efi.signed;
  they differ in what GRUB's $prefix variable is set to:
  * gcdx64.efi.signed uses boot/grub/
  * grubx64.efi.signed uses EFI/ubuntu/
  -> the code in grml-live itself was adjusted accordingly and this also
  enables us to generalize the Secure Boot methods debian + ubuntu to
  use the same code path

* drop templates/boot/grub/grmlenv.cfg: everything what's relevant
  can be taken care of from inside templates/secureboot/grub.cfg,
  so let's avoid another indirection.

  We also moved the detection of Secure Boot into templates/secureboot/grub.cfg
  and reworked it: while Ubuntu's patches have a C function grub_efi_secure_boot(),
  there's no ready-to-use way to detect Secure Boot. But the wrmsr
  command is amongst the list of GRUB's disabled_mods and we can
  distingiush between exit code 18 (wrong invocation/argument usage) and 30 (Secure Boot forbits loading module).

* mention secure boot method in execution prompt/summary to be aware of
  its (non) presence ahead of execution

* update etc/grml/grml-live.conf to properly reflect current state of
  Secure Boot support

Thanks: Jordan Uggla for feedback

This work was funded by Grml-Forensic.

2 years agoSW: add qrencode to GRML_SMALL and GRML_FULL
Michael Prokop [Mon, 15 Jun 2020 18:28:45 +0000 (20:28 +0200)]
SW: add qrencode to GRML_SMALL and GRML_FULL

It adds only 166 kB of additional disk space and it's certainly
useful to use `echo ... | qrencode -t ANSI` also on the plain
console (that's why I went for the "shell" section in GRML_FULL).

2 years agoSW: add tmate to GRML_SMALL + GRML_FULL
Michael Prokop [Mon, 15 Jun 2020 18:23:27 +0000 (20:23 +0200)]
SW: add tmate to GRML_SMALL + GRML_FULL

Adds 1,293 kB of additional disk space.

2 years agoDo not depend on /proc for calculating runtime
Michael Prokop [Fri, 5 Jun 2020 15:44:41 +0000 (17:44 +0200)]
Do not depend on /proc for calculating runtime

For example when running grml-live inside a docker
environment, /proc doesn't necessarily exist.
Instead use seconds since the epoch as base for calculating runtime.

Development time sponsored by Sipwise GmbH

2 years agoRelease new version 0.35.4 v0.35.4
Michael Prokop [Fri, 5 Jun 2020 11:34:09 +0000 (13:34 +0200)]
Release new version 0.35.4

2 years agoAdjust layout of "Predictable Network Interface Names" boot option
Michael Prokop [Fri, 5 Jun 2020 11:30:59 +0000 (13:30 +0200)]
Adjust layout of "Predictable Network Interface Names" boot option

* We use lowercase naming in GRUB
* The help text inside syslinux shouldn't be too long to fit
  on the screen

2 years agoMerge remote-tracking branch 'origin/github/pr/88'
Michael Prokop [Fri, 5 Jun 2020 11:28:27 +0000 (13:28 +0200)]
Merge remote-tracking branch 'origin/github/pr/88'

2 years agoAdd boot option pnet (Predictable Network Interface Names)
Darshaka Pathirana [Wed, 3 Jun 2020 16:13:16 +0000 (18:13 +0200)]
Add boot option pnet (Predictable Network Interface Names)

We plan to use Predictable Network Interface Names by default.

To make that switch easier we added a new boot option "pnet".

The kernel command line option "net.ifnames=0" is currently in every
boot option (except "pnet") but should be removed when Predictable
Network Interface Names works for us.

See: grml/grml#127

2 years agoRelease new version 0.35.3 v0.35.3
Michael Prokop [Wed, 3 Jun 2020 14:48:09 +0000 (16:48 +0200)]
Release new version 0.35.3

2 years agoNo longer refer to
Michael Prokop [Wed, 3 Jun 2020 14:30:07 +0000 (16:30 +0200)]
No longer refer to was relevant until we switched to building
the source archives directly from within grml-live (around 2012).

While at it fix some styling issues in the LICENSE file.

2 years agoUse debootstrap with --no-merged-usr by default
Michael Prokop [Wed, 3 Jun 2020 14:14:39 +0000 (16:14 +0200)]
Use debootstrap with --no-merged-usr by default

By default debootstrap creates systems with /usr being merged, leading
to issues like the xfsdump issue we saw in, also dpkg -S ... and
further commands break with /usr being merged.

It's possible to generate custom basefiles with debootstrap, but by
default we should invoke debootstrap with the --no-merged-usr option,
otherwise we might have different ISO layouts, depending on whether we
use appropriate basefiles (as on our offical build host) vs. locally.

Closes: grml/grml-live#86

2 years agoGRMLBASE/98-clean-chroot: avoid warning messages with resolvconf <1.80
Michael Prokop [Fri, 29 May 2020 12:57:56 +0000 (14:57 +0200)]
GRMLBASE/98-clean-chroot: avoid warning messages with resolvconf <1.80

In commit acf12d4123bd68f we got rid of /etc/resolvconf/run, and while
resolvconf >=1.80 no longer uses /etc/resolvconf/run, older
versions of resolvconf still use it in their libc update hook script. :-/

So while it really works e.g. on Debian/buster (as documented in
commit acf12d4123bd68f) with resolvconf v1.79, there's an ugly:

| /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /etc/resolvconf/run/resolv.conf" for resolvconf versions

message when invoking "dhclient". Try to avoid this.

Related to

2 years agoSW: add wireguard to GRML_FULL
Michael Prokop [Thu, 28 May 2020 15:50:50 +0000 (17:50 +0200)]
SW: add wireguard to GRML_FULL

Since we no longer ship ipsec-tools + racoon, it might be nice to include wireguard instead.

Current state in Debian:

wireguard  | 1.0.20200513-1~bpo10+1 | buster-backports       | source, all
wireguard  | 1.0.20200513-1~bpo10+1 | buster-backports-debug | source
wireguard  | 1.0.20200513-1         | testing                | source, all
wireguard  | 1.0.20200513-1         | unstable               | source, all
wireguard  | 1.0.20200513-1         | unstable-debug         | source

2 years agoRelease new version 0.35.2 v0.35.2
Michael Prokop [Thu, 28 May 2020 15:34:49 +0000 (17:34 +0200)]
Release new version 0.35.2

2 years agoetc/network/interfaces/GRMLBASE: support /etc/network/interfaces.d/* in /e/n/i
Michael Prokop [Thu, 28 May 2020 12:30:00 +0000 (14:30 +0200)]
etc/network/interfaces/GRMLBASE: support /etc/network/interfaces.d/* in /e/n/i

For example cloud-init writes its network configuration file to
/etc/network/interfaces.d/50-cloud-init, so the file needs
to be sourced.

Related to

2 years agoSW: add avahi-utils to GRML_FULL
Michael Prokop [Tue, 26 May 2020 15:27:10 +0000 (17:27 +0200)]
SW: add avahi-utils to GRML_FULL

Useful to have e.g. avahi-browse available, adds only a few
KB of additional disk space on grml-full, while on grml-small
it would pull in 8,500 kB of additional disk space.

2 years agoRelease new version 0.35.1 v0.35.1
Michael Prokop [Wed, 20 May 2020 15:14:57 +0000 (17:14 +0200)]
Release new version 0.35.1

2 years agoDEBORPHAN/10-whitelist: rework fix for broken keep file handling of deborphan
Michael Prokop [Wed, 20 May 2020 14:10:29 +0000 (16:10 +0200)]
DEBORPHAN/10-whitelist: rework fix for broken keep file handling of deborphan

An empty file doesn't help either, so we need at least a file
with a newline. Given that we're already touching the file
based on its hard-coded filename, let's just append the package
in question and avoid invoking deborphan at all. Especially
as deborphan returns with failure when a package is already

| deborphan: dnsutils: duplicate entry.

We need to handle this anyway, if grml-live is re-executed on
an existing system (which isn't unusual).

2 years agoDEBORPHAN/10-whitelist: provide workaround for Debian bug #929273
Michael Prokop [Wed, 20 May 2020 13:25:25 +0000 (15:25 +0200)]
DEBORPHAN/10-whitelist: provide workaround for Debian bug #929273

If deborphan's keep file doesn't exist yet, it fails with:

| fseek on /var/lib/deborphan/keep: Invalid argument

While at it, no longer ignore failing deborphan execution
but error out on failure.

2 years agoDEBORPHAN/10-whitelist: highlight when dnsutils gets added to whitelist
Michael Prokop [Wed, 20 May 2020 12:59:32 +0000 (14:59 +0200)]
DEBORPHAN/10-whitelist: highlight when dnsutils gets added to whitelist

Otherwise it's hard to see whether anything was executed at all

2 years agoSW: add fdisk to GRMLBASE
Michael Prokop [Wed, 20 May 2020 12:55:20 +0000 (14:55 +0200)]
SW: add fdisk to GRMLBASE

See Debian #960815 + #947134, it's no longer "Important: yes" and
util-linux >=2.35.1-2 no longer depends on it. To ensure we have
it on all Grml(-based) ISOs, let's add it to GRMLBASE.

2 years agodocs: update ISO sizes and disk requirements, we no longer provide support for file-rc
Michael Prokop [Wed, 20 May 2020 12:40:52 +0000 (14:40 +0200)]
docs: update ISO sizes and disk requirements, we no longer provide support for file-rc

file-rc support is still present, but we won't provide any support
for it and it will be dropped rather soonish, so announce it

2 years agoMove scripts/GRMLBASE/40-deborphan towards DEBORPHAN class as file 10-whitelist
Michael Prokop [Wed, 20 May 2020 12:29:31 +0000 (14:29 +0200)]
Move scripts/GRMLBASE/40-deborphan towards DEBORPHAN class as file 10-whitelist

If the DEBORPHAN class is used before the GRMLBASE class when invoking
grml-live, then any whitelisting executed via
scripts/GRMLBASE/40-deborphan will happen too late, which is not obvious
and surprising. Instead let's move scripts/GRMLBASE/40-deborphan towards
the DEBORPHAN class and name it as "10-whitelist".

2 years agodeborphan: drop deprecated packages
Michael Prokop [Wed, 20 May 2020 11:45:47 +0000 (13:45 +0200)]
deborphan: drop deprecated packages

We don't ship shadowfs + bsdtar since ~2011, libewf1 and
libstdc++2.10-glibc2.2 no longer exist in any supported release,
so let's do some housekeeping.

2 years agodeborphan: add workaround for transitional package dnsutils
Michael Prokop [Wed, 20 May 2020 10:13:09 +0000 (12:13 +0200)]
deborphan: add workaround for transitional package dnsutils

dnsutils became a transitional package with version 1:9.16.2-3 (as
present in current testing (bullseye) and unstable):

| % rmadison dnsutils
| dnsutils   | 1:9.9.5.dfsg-9+deb8u15       | oldoldstable      | amd64, armel, armhf, i386
| dnsutils   | 1:9.10.3.dfsg.P4-12.3+deb9u5 | oldstable         | amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
| dnsutils   | 1:9.10.3.dfsg.P4-12.3+deb9u6 | oldstable-new     | amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
| dnsutils   | 1:9.11.5.P4+dfsg-5~bpo9+1    | stretch-backports | amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
| dnsutils   | 1:9.11.5.P4+dfsg-5.1         | stable            | amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
| dnsutils   | 1:9.11.5.P4+dfsg-5.1+deb10u1 | stable-new        | amd64, arm64, armel, armhf, i386, mips, mips64el, mipsel, ppc64el, s390x
| dnsutils   | 1:9.16.2-3                   | testing           | all
| dnsutils   | 1:9.16.2-3                   | unstable          | all

It depends on bind9-dnsutils, which is available only in current testing
(bullseye) and unstable:

| % rmadison bind9-dnsutils
| bind9-dnsutils | 1:9.16.2-3    | testing    | amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x
| bind9-dnsutils | 1:9.16.2-3    | unstable   | amd64, arm64, armel, armhf, i386, mips64el, mipsel, ppc64el, s390x

If we switch our GRML_FULL package list from dnsutils to
bind9-dnsutils, then we would only support testing (bullseye) and
unstable but not any older release. To avoid this, mark dnsutils
as "keep" in deborphan, so it does not end up in the not_installable
list (and mark failing tests in Jenkins/CI).

2 years agoRelease new version 0.35.0 v0.35.0
Michael Prokop [Tue, 12 May 2020 14:37:03 +0000 (16:37 +0200)]
Release new version 0.35.0

2 years agoExecute 'wrap-and-sort -a -t -s' on debian/
Michael Prokop [Tue, 12 May 2020 14:30:16 +0000 (16:30 +0200)]
Execute 'wrap-and-sort -a -t -s' on debian/

This is much better for (code) reviews

2 years agoBump Debian compat version to 12, using debhelper-compat approach
Michael Prokop [Tue, 12 May 2020 14:30:02 +0000 (16:30 +0200)]
Bump Debian compat version to 12, using debhelper-compat approach

2 years agoBump Standards-Version to 4.5.0
Michael Prokop [Tue, 12 May 2020 14:29:46 +0000 (16:29 +0200)]
Bump Standards-Version to 4.5.0

2 years agoInitial cloud-init support
Michael Prokop [Fri, 3 Apr 2020 14:06:40 +0000 (16:06 +0200)]
Initial cloud-init support

2 years agosudoers: set Defaults secure_path to have sane default settings
Michael Prokop [Thu, 2 Apr 2020 09:56:18 +0000 (11:56 +0200)]
sudoers: set Defaults secure_path to have sane default settings

If the user (non-root) doesn't have /sbin:/usr/sbin inside $PATH (as
present when invoking `mksh -l`, which causes /etc/profile to be
sourced and setting $PATH), then executing sudo might fail with:

| $ sudo apt-get install rdesktop
| [...]
| dpkg: warning: 'ldconfig' not found in PATH or not executable
| dpkg: warning: 'start-stop-daemon' not found in PATH or not executable
| dpkg: error: 2 expected programs not found in PATH or not executable
| Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

Ensure to have a working $PATH setting when invoking sudo
by explicitly setting secure_path.


2 years agoSW: add cloud-init to GRML_FULL
Michael Prokop [Wed, 1 Apr 2020 14:49:51 +0000 (16:49 +0200)]
SW: add cloud-init to GRML_FULL

cloud-init is useful in cloud environments, also Proxmox provides support
for it.

This adds 11.5 MB of additional disk space. We consider adding it to
GRML_SMALL as well (adding 14MB there). But for the time being verify its
usefulness before adding it to grml-small as well.

Thanks Joel Wirāmu Pauling for suggesting this.


2 years agoSW: drop hfsprogs from GRML_FULL
Michael Prokop [Wed, 1 Apr 2020 15:59:54 +0000 (17:59 +0200)]
SW: drop hfsprogs from GRML_FULL

Was removed from Debian/testing due to DFSG incompatible license, see

2 years agoGRMLBASE/80-initramfs: no longer set CRYPTSETUP=y
Michael Prokop [Wed, 1 Apr 2020 14:44:22 +0000 (16:44 +0200)]
GRMLBASE/80-initramfs: no longer set CRYPTSETUP=y

Quoting from cryptsetup's Debian packaging git:

| commit 06f8c00c908ffd1fa95c4afc78e9cac462d01d91
| Author: Guilhem Moulin <>
| Date:   Sat Jul 20 19:18:21 2019 -0300
|     initramfs: Remove compatibility warnings regarding CRYPTSETUP=[y|n].
|     The warning was added in 2:2.0.3-1 for the ‘cryptsetup’ package split
|     into ‘cryptsetup-run’ and ‘cryptsetup-initramfs’.  With the recent
|     Buster release we can now move on: cryptsetup is always copied to the
|     initramfs when the ‘cryptsetup-initramfs’ package is installed.

Given that we have the cryptsetup-initramfs package in GRMLBASE,
we no longer need to use this.


2 years agoinitramfs xz-compress: use default xz compression level
Michael Prokop [Wed, 1 Apr 2020 14:29:59 +0000 (16:29 +0200)]
initramfs xz-compress: use default xz compression level

Quoting from the bug report:

| How many threads are used also depends on the compression level. At -6,
| I've seen it use 3-4 threads, which speeds up initramfs compression a lot.
| With -8, it always only uses one thread (although maybe it also depends on
| the amount of data being compressed; I don't know).

The default compression preset level is -6, so there's no need to specify

This also matches the behavior of initramfs-tools >=0.119:

| commit cf9691da3847a6bfadb4a5c9e0f6213bd7d10fdc
| Author: Ben Hutchings <>
| Date:   Thu Oct 16 15:34:54 2014 +0200
|     mkinitramfs: Use default xz compression level rather than -8
|     xz -8 wants 370 MB VM for compression, but Debian tries to support
|     systems with less physical memory than that.
|     The benchmark results given in commit bedf1e3c0882 ('Use -8 for
|     compression with xz.') show only a 1% increase in size when changing
|     to -6, but VM usage will be reduced by 75%.
|     Closes: #697335
|     Signed-off-by: Ben Hutchings <>
| diff --git mkinitramfs mkinitramfs
| index 07190ed..25932c1 100755
| --- mkinitramfs
| +++ mkinitramfs
| @@ -146,7 +146,7 @@ if dpkg --compare-versions "${version}" lt "2.6.38" 2>/dev/null; then
|  fi
|  [ "${compress}" = lzop ] && compress="lzop -9"
| -[ "${compress}" = xz ] && compress="xz -8 --check=crc32"
| +[ "${compress}" = xz ] && compress="xz --check=crc32"
|  if [ -d "${outfile}" ]; then
|         echo "${outfile} is a directory" >&2

Let's keep the xz wrapper though, to force its usage independent of the
initramfs-tools version being used and have it available, if we decide to
add further custom options in the future.

Thanks: Dr. András Korn

2 years agoscripts/GRMLBASE/50-lvm: unconditionally clear 69-lvm-metad.rules file
Michael Prokop [Wed, 1 Apr 2020 14:24:30 +0000 (16:24 +0200)]
scripts/GRMLBASE/50-lvm: unconditionally clear 69-lvm-metad.rules file

If /lib/udev/rules.d/69-lvm-metad.rules was removed by a prior run of the unpatched script,
the patched script will fail to create the placeholder file.

Thanks: Dr. András Korn

3 years agoDEBIAN_STABLE: use buster-backports instead of stretch-backports
Michael Prokop [Tue, 28 Jan 2020 12:38:01 +0000 (13:38 +0100)]
DEBIAN_STABLE: use buster-backports instead of stretch-backports

Debian/buster is the current stable release, there's no point in
enabling stretch-backports there.

FTR: we could set it to 'stable-backports' instead, though then
apt/apt-get/... will complain about it:

| W: Conflicting distribution: stable-backports InRelease (expected stable-backports but got buster-backports)

3 years agoGRMLBASE/98-clean-chroot: fix resolvconf symlink handling + get rid of resolvconf...
Michael Prokop [Tue, 28 Jan 2020 10:21:44 +0000 (11:21 +0100)]
GRMLBASE/98-clean-chroot: fix resolvconf symlink handling + get rid of resolvconf workarounds

resolvconf no longer supports usage of /etc/resolvconf/run as such,
instead things are supposed to live in /run nowadays.  Quoting from
resolvconf's debian/changelog:

| resolvconf (1.80) unstable; urgency=medium
| [...]
|   [ Steve Langasek ]
|   * Eliminate all references to /etc/resolvconf/run.  This should all be done
|     directly in /run, there is no reason to support making any of this
|     configurable with a symlink since we already have a versioned dependency
|     on the version of initscripts that introduces the /run transition.

So /etc/resolv.conf being a symlink pointing to
/etc/resolvconf/run/resolv.conf no longer works, instead it needs to
point to /run/resolvconf/resolv.conf.

Given that our resolvconf code dates back to 2007 (see commit 1d1565d0e49),
while at it get rid of the workarounds, which don't seem to be needed

Tested this change with builds against Debian/stretch (resolvconf 1.79),
Debian/buster (resolvconf 1.79) and Debian/bullseye (resolvconf 1.82).


3 years agoSW: add radvd
Michael Prokop [Tue, 28 Jan 2020 09:55:35 +0000 (10:55 +0100)]
SW: add radvd


3 years agoGRMLBASE/98-clean-chroot: get rid of /wget-log* files
Michael Prokop [Tue, 10 Dec 2019 15:05:58 +0000 (16:05 +0100)]
GRMLBASE/98-clean-chroot: get rid of /wget-log* files

The update-pciids run under timeout(1) within
might fail and leave /wget-log* files behind, like:

| root@gf-internal ~ # cat /srv/grml-live/grml64-forensic_2020.01-1/grml_chroot/wget-log
| 2019-12-10 15:02:31 ERROR 503: Service Temporarily Unavailable.
| root@gf-internal ~ # cat /srv/grml-live/grml64-forensic_2020.01-1/grml_chroot/wget-log.1
| 2019-12-10 15:07:44 ERROR 503: Service Temporarily Unavailable.

This does *not* happen when being manually invoked,
so it seems to be something related to the environment
of FAI. Couldn't spot the underlying issue yet though
and we clearly don't want to ship any such files
inside the root directory of the rootfs.

3 years agoRelease new version 0.34.4 v0.34.4
Michael Prokop [Tue, 3 Dec 2019 15:35:30 +0000 (16:35 +0100)]
Release new version 0.34.4

3 years agoMerge remote-tracking branch 'origin/github/pr/80'
Michael Prokop [Mon, 25 Nov 2019 07:07:00 +0000 (08:07 +0100)]
Merge remote-tracking branch 'origin/github/pr/80'

3 years agoSW: cryptsetup-initramfs (fix persistence-encryption)
Felix Neumärker [Fri, 22 Nov 2019 17:07:53 +0000 (18:07 +0100)]
SW: cryptsetup-initramfs (fix persistence-encryption)

3 years agoSW: add ncdu to GRML_SMALL
Michael Prokop [Sat, 23 Nov 2019 11:18:45 +0000 (12:18 +0100)]
SW: add ncdu to GRML_SMALL

Related to commit 45480fb1c3e60118a13992d4dff50629644b545c

3 years agoSW: add tree to GRML_SMALL
Michael Prokop [Sat, 23 Nov 2019 11:17:57 +0000 (12:17 +0100)]
SW: add tree to GRML_SMALL

Related to commit 4622dafaf1d50eda4f3b9382b4d9b3fe4b7e363d

3 years agoMerge remote-tracking branch 'origin/github/pr/81'
Michael Prokop [Sat, 23 Nov 2019 11:16:53 +0000 (12:16 +0100)]
Merge remote-tracking branch 'origin/github/pr/81'

3 years agoSW: add ncdu to GRML_FULL
Felix Neumärker [Fri, 22 Nov 2019 17:34:00 +0000 (18:34 +0100)]
SW: add ncdu to GRML_FULL

Useful helper for identifying and removing large files. Packages size is ~80K.

3 years agoSW: add tree to GRML_FULL
Felix Neumärker [Fri, 22 Nov 2019 17:29:05 +0000 (18:29 +0100)]
SW: add tree to GRML_FULL

Useful helper for file exploring. Package size is ~88K.

3 years agoSW: add zstd to GRML_FULL
Michael Prokop [Wed, 20 Nov 2019 10:22:06 +0000 (11:22 +0100)]
SW: add zstd to GRML_FULL

3 years agoSW: replace fuse with fuse3
Michael Prokop [Tue, 19 Nov 2019 14:55:05 +0000 (15:55 +0100)]
SW: replace fuse with fuse3

sshfs depends on fuse3 and can be installed just fine with it:

| # apt install sshfs fuse3
| [...]
| The following NEW packages will be installed:
|   fuse3 krb5-locales libedit2 libfuse3-3 libglib2.0-0 libglib2.0-data libgssapi-krb5-2 libicu63 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0 libssl1.1 libx11-6 libx11-data libxau6 libxcb1 libxdmcp6 libxext6 libxml2 libxmuu1
|   openssh-client shared-mime-info sshfs xauth xdg-user-dirs
| 0 upgraded, 26 newly installed, 0 to remove and 27 not upgraded.
| Need to get 17.1 MB of archives.
| After this operation, 67.6 MB of additional disk space will be used.
| [..]

While when depending on fuse installation of sshfs fails due to:

| # apt install sshfs fuse
| [...]
| The following packages have unmet dependencies:
|  sshfs : Depends: fuse3 but it is not going to be installed
| E: Unable to correct problems, you have held broken packages.
| # apt install sshfs fuse fuse3
| [...]
| The following packages have unmet dependencies:
|  fuse3 : Breaks: fuse
| E: Unable to correct problems, you have held broken packages.

This is known as +
and is also mentioned/related to +

If we should ever explicitely need the fuse (v2) package we
can re-evaluate the situation then, but for the time being
switch to fuse3 since it's available as of Debian/buster
and breaking our grml{32,64}-full daily builds.

3 years agoSW: add iperf3 to GRML_SMALL and GRML_FULL
Michael Prokop [Thu, 31 Oct 2019 15:21:05 +0000 (16:21 +0100)]
SW: add iperf3 to GRML_SMALL and GRML_FULL

It requires only 330 kB of disk space and it's certainly
a useful addition.

Thanks: Marc Haber for the suggestion

3 years agoSW: use Debian kernel packages instead of our custom Grml ones
Michael Prokop [Thu, 31 Oct 2019 15:17:48 +0000 (16:17 +0100)]
SW: use Debian kernel packages instead of our custom Grml ones

Maintaining and keeping our linux-image-i386-grml +
linux-image-amd64-grml packages requires manpower we currently
don't really have. Instead let's see whether switching to the
kernel packages provided by Debian fits our needs. (This might
not be the case if we need different configuration options,
defaults, extra patches or the release cycle doesn't fit for
us, but it's worth a try, so let's find out.)


3 years agoSW: add borgbackup to GRML_FULL
Michael Prokop [Thu, 31 Oct 2019 15:05:43 +0000 (16:05 +0100)]
SW: add borgbackup to GRML_FULL


3 years agoSW: add qemu-guest-agent to GRML_SMALL
Michael Prokop [Thu, 31 Oct 2019 15:01:54 +0000 (16:01 +0100)]
SW: add qemu-guest-agent to GRML_SMALL

Related to commit 14fe0c777, qemu-guest-agent is nice to gather
network information when running e.g. as VM inside a Proxmox environment.
It's pulling in 4,675 kB on grml64-small Debian/testing as of today,
which is acceptable, given that we want to provide qemu-guest-agent
integration as release goal for our upcoming Grml release.

3 years agoSW: add kpartx to GRML_SMALL + GRML_FULL
Michael Prokop [Wed, 23 Oct 2019 09:01:40 +0000 (11:01 +0200)]
SW: add kpartx to GRML_SMALL + GRML_FULL

It requires less than 100 kB of additional disk space, and while
we have kpartx on grml-full thanks to a dependency by multipath-tools,
we didn't have it on grml-small yet. Add explicit depends to both
Grml flavours.


3 years agoRelease new version 0.34.3 v0.34.3
Michael Prokop [Tue, 22 Oct 2019 13:53:32 +0000 (15:53 +0200)]
Release new version 0.34.3

3 years agoSW: replace vim-gtk with vim-gtk3
Michael Prokop [Tue, 22 Oct 2019 11:48:59 +0000 (13:48 +0200)]
SW: replace vim-gtk with vim-gtk3

vim-gtk is a transitional/dummy package as of bullseye (current
Debian/testing), while vim-gtk3 is available since at least
stretch (current Debian/oldstable).

3 years agoGRMLBASE/90-update-alternatives: support vim >=2:8.1.2136-1
Michael Prokop [Tue, 22 Oct 2019 09:02:19 +0000 (11:02 +0200)]
GRMLBASE/90-update-alternatives: support vim >=2:8.1.2136-1

vim 2:8.1.2136-1 moved /usr/bin/vim.* into /usr/libexec/vim/,
so we need to check for its base path.

Also vim-gtk became a transitional package for vim-gtk3 and
the binary is called vim.gtk3, add according additional check.


| Setting vim.gtk as editor using update-alternatives.
| update-alternatives: error: alternative /usr/bin/vim.gtk for editor not registered; not setting
| GRMLBASE/90-update-alternatives FAILED with exit code 2.

3 years agoRelease new version 0.34.2 v0.34.2
Michael Prokop [Thu, 26 Sep 2019 14:07:51 +0000 (16:07 +0200)]
Release new version 0.34.2

3 years agoRebuild /var/lib/dpkg/available to install not-yet-installed packages in update runs
Michael Prokop [Tue, 10 Sep 2019 09:05:05 +0000 (11:05 +0200)]
Rebuild /var/lib/dpkg/available to install not-yet-installed packages in update runs

When executing grml-live in update mode (grml-live [...] -u) using an
existing grml_chroot, then script GRMLBASE/98-clean-chroot has emptied
/var/lib/dpkg/available in a previous run already.

Executing `apt-get update` does NOT re-generate the file. This leads to
FAI's install_packages with its mkpackagelist() and clean_pkg_list()
failing to install requested packages, but reporting all packages with:

| WARNING: These unknown packages are removed from the installation list: [...]

This is unexpected, as an update run shouldn't just update existing
packages, but also try to install any additionally requested packages
from the software selection (as a package might not have been installed
due to missing dependencies, that have been taken care of in the

So if we'd detect an existing /var/lib/dpkg/available that is empty,
then we would have to rebuild it using /usr/lib/dpkg/methods/apt/update.
Since /usr/lib/dpkg/methods/apt/update essentially also executes
'apt-get update' underneath, there's no need to run 'apt-get update'
only with empty /var/lib/dpkg/available, instead let's always rely on

3 years agoSW: drop racoon from GRML_FULL
Michael Prokop [Tue, 3 Sep 2019 12:03:53 +0000 (14:03 +0200)]
SW: drop racoon from GRML_FULL

Quoting from

| ROM; dead upstream, alternatives available

Also see Debian bug #932144

3 years agoREADME: set TEMPLATE_DIRECTORY instead of using -t cmdline option
Michael Prokop [Wed, 21 Aug 2019 13:25:50 +0000 (15:25 +0200)]
README: set TEMPLATE_DIRECTORY instead of using -t cmdline option

Use same approach in docs and README, to make
it more consistent.

Prompted by Jay Lawrence (@jayjlawrence),
see commit 09137840c2 and

3 years agoMerge remote-tracking branch 'origin/github/pr/76'
Michael Prokop [Wed, 21 Aug 2019 13:25:04 +0000 (15:25 +0200)]
Merge remote-tracking branch 'origin/github/pr/76'

3 years agoSW: add efibootmgr to GRMLBASE
Michael Prokop [Fri, 26 Jul 2019 11:02:32 +0000 (13:02 +0200)]
SW: add efibootmgr to GRMLBASE

The grub-efi-amd64-bin package in Debian/stretch used to have efibootmgr in
its Depends:

| Package: grub-efi-amd64-bin
| Source: grub2
| Version: 2.02~beta3-5+deb9u1
| [...]
| Depends: grub-common (= 2.02~beta3-5+deb9u1), efibootmgr

... while the grub-efi-amd64-bin package in Debian buster and newer has
efibootmgr in its Recommends:

| Package: grub-efi-amd64-bin
| Source: grub2
| Version: 2.02+dfsg1-20
| [...]
| Depends: grub-common (= 2.02+dfsg1-20)
| Recommends: grub-efi-amd64-signed, efibootmgr

Therefore we're no longer pulling in efibootmgr via grub-efi-amd64-bin, while
it's certainly important to have it available, so add it to GRMLBASE.

Development sponsored by Sipwise GmbH, recorded as
TT#63652 in customers' ticket system.

3 years agoRelease new version 0.34.1 v0.34.1
Michael Prokop [Thu, 11 Jul 2019 15:33:01 +0000 (17:33 +0200)]
Release new version 0.34.1

3 years agoSources list setup for security: switch from testing/updates to testing-security
Michael Prokop [Thu, 11 Jul 2019 15:00:11 +0000 (17:00 +0200)]
Sources list setup for security: switch from testing/updates to testing-security

Supposed to fix:

| E: Failed to fetch  404  Not Found [IP: 2a04:4e42:9::204 80]

Nowadays only exists.
Quoting from

| I would like to switch to *-security instead of */updates starting with
| bullseye.  There will likely be some complications, but they should be
| solvable by the time we will publish packages in bullseye-security.

3 years agoSW: drop lilo from GRML_SMALL and GRML_FULL
Michael Prokop [Thu, 11 Jul 2019 14:58:10 +0000 (16:58 +0200)]
SW: drop lilo from GRML_SMALL and GRML_FULL

I don't think that's relevant for anyone nowadays, otherwise
let's find out :)

3 years agoProvide workaround for FAI bug, leaving /run/udev behind (see #928981)
Michael Prokop [Tue, 14 May 2019 14:46:30 +0000 (16:46 +0200)]
Provide workaround for FAI bug, leaving /run/udev behind (see #928981)


3 years agoNeed to set templates directory as well when running from git
Jay Lawrence [Wed, 8 May 2019 12:08:29 +0000 (08:08 -0400)]
Need to set templates directory as well when running from git

4 years agoRelease new version 0.34.0 v0.34.0
Michael Prokop [Thu, 21 Mar 2019 11:28:29 +0000 (12:28 +0100)]
Release new version 0.34.0

4 years agoBump Standards-Version to 4.3.0
Michael Prokop [Thu, 21 Mar 2019 11:27:53 +0000 (12:27 +0100)]
Bump Standards-Version to 4.3.0

4 years agoSwitch default mount point from /lib/live/mount/medium to /run/live/medium
Michael Prokop [Thu, 21 Mar 2019 09:08:25 +0000 (10:08 +0100)]
Switch default mount point from /lib/live/mount/medium to /run/live/medium

In commit 0d878d3a679 of live-boot(-grml)
("Simplify mount point handling by using /run/live instead of /lib/live/mount")
the mountpath of /lib/live/mount/medium was moved towards /run/live/medium.

Commit c6a17c7b41b of live-boot(-grml) provides a backward compatibility
rbind mount, but occasionally there seems to be a regression somewhere
during boot (see, and
the rbind mount will be deprecated and removed before the bullseye
(Debian 11) release.

Layout changes over time:

* /cdrom for old linuxrc approach
* /live/image for initramfs layout until December 2012
* /lib/live/mount/medium for initramfs layout since December 2012
* /run/live/medium for initramfs layout since December 2018

Drop support for everything but /run/live/medium and
/lib/live/mount/medium, while at it.