6 weeks agoRelease new version 0.95 master v0.95
Michael Prokop [Fri, 22 Jan 2021 10:56:47 +0000 (11:56 +0100)]
Release new version 0.95

6 weeks agoMerge remote-tracking branch 'origin/pr/161'
Michael Prokop [Fri, 22 Jan 2021 10:55:14 +0000 (11:55 +0100)]
Merge remote-tracking branch 'origin/pr/161'

6 weeks agoF2FS filesystem doesn't support errors=remount-ro mount option
Michael Prokop [Tue, 19 Jan 2021 22:26:52 +0000 (23:26 +0100)]
F2FS filesystem doesn't support errors=remount-ro mount option


| [   94.941005] F2FS-fs (sda1): Unrecognized mount option "errors=remount-ro" or missing value
| mount: /: mount point not mounted or bad option

Closes: grml/grml-debootstrap#163

6 weeks agoSupport F2FS in VMs by including f2fs driver in grub-mkimage
Michael Prokop [Tue, 19 Jan 2021 22:18:54 +0000 (23:18 +0100)]
Support F2FS in VMs by including f2fs driver in grub-mkimage

Thanks: Paul Menzel for bugreport and bugfix
Closes: grml/grml-debootstrap#164

6 weeks agoDo not enable escape characters on dumb terminals
Michael Prokop [Mon, 18 Jan 2021 17:49:46 +0000 (18:49 +0100)]
Do not enable escape characters on dumb terminals

This avoids having output like follows in Jenkins console output:

| �[32;01m*�[0m grml-debootstrap [0.93] - Please recheck configuration before execution:

Closes: grml/grml-debootstrap#159

2 months agoRelease new version 0.94 v0.94
Michael Prokop [Wed, 23 Dec 2020 16:34:36 +0000 (17:34 +0100)]
Release new version 0.94

2 months agoUse bullseye as default Debian release
Michael Prokop [Wed, 23 Dec 2020 13:36:33 +0000 (14:36 +0100)]
Use bullseye as default Debian release

We want to use Debian/bullseye as default release within the
grml-debootstrap version that's going to be shipped with bullseye,
so let's be prepared for this.

FTR: *not* modifying the Travis CI related configuration files with this
change, as the unstable builds on Travis CI are known to be unreliable.
Travis CI also seems to be a dead end for us, so it's not worth putting
any further efforts into it, at least for the time being.

2 months agopacker: use latest VBoxGuestAdditions (6.1.16) + Grml stable release (2020.06)
Michael Prokop [Sat, 12 Dec 2020 15:04:26 +0000 (16:04 +0100)]
packer: use latest VBoxGuestAdditions (6.1.16) + Grml stable release (2020.06)

2 months agopacker: make template compatible with recent packer versions
Michael Prokop [Sat, 12 Dec 2020 14:51:27 +0000 (15:51 +0100)]
packer: make template compatible with recent packer versions

The packer template worked with packer v1.5.6, but fails
with more recent versions like v1.6.5.

Fixed via `packer fix debian64.json`, using packer v1.6.5.

Thanks: Darshaka Pathirana for reporting
Closes: grml/grml-debootstrap#162

3 months agoProperly handle KEEP_SRC_LIST option when set to 'no'
Michael Prokop [Fri, 4 Dec 2020 10:40:13 +0000 (11:40 +0100)]
Properly handle KEEP_SRC_LIST option when set to 'no'

If the configuration includes KEEP_SRC_LIST='no',
then it behaves as if it's set to 'yes', as we were
just checking whether it's set or not.

Closes: grml/grml-debootstrap#160

5 months agoImprove EFI detection by checking for /sys/firmware/efi
Michael Prokop [Fri, 2 Oct 2020 08:51:51 +0000 (10:51 +0200)]
Improve EFI detection by checking for /sys/firmware/efi

It might be possible that we can load the efivars module, while
/sys/firmware/efi still doesn't exist and efibootmgr then fails
to execute.

We noticed this on Hetzner's Dell PowerEdge™ R6515 DX181 server,
which was booted in BIOS mode via PXE, while the hardware itself
is EFI capable. Loading the efivars module worked there, but
invoking efibootmgr then fails, and the resulting system isn't

Thanks: Darshaka Pathirana for reporting and feedback

6 months agoFix shellcheck issue SC2174
Michael Prokop [Thu, 3 Sep 2020 10:05:43 +0000 (12:05 +0200)]
Fix shellcheck issue SC2174


|    mkdir -m 0700 -p "${AUTHORIZED_KEYS_TARGET}"
|          ^-- SC2174: When used with -p, -m only applies to the deepest directory.

Closes: #158

6 months agoMerge remote-tracking branch 'origin/pr/157'
Michael Prokop [Mon, 31 Aug 2020 21:17:14 +0000 (23:17 +0200)]
Merge remote-tracking branch 'origin/pr/157'

6 months agod/rules: remove dh_make template header
Chris Hofstaedtler [Sat, 29 Aug 2020 22:44:01 +0000 (22:44 +0000)]
d/rules: remove dh_make template header

6 months agod/control: fix Vcs-Git field name
Chris Hofstaedtler [Sat, 29 Aug 2020 22:43:29 +0000 (22:43 +0000)]
d/control: fix Vcs-Git field name

6 months agod/control: Set Rules-Requires-Root: no
Chris Hofstaedtler [Sat, 29 Aug 2020 22:42:14 +0000 (22:42 +0000)]
d/control: Set Rules-Requires-Root: no

6 months agod/changelog: strip whitespace
Chris Hofstaedtler [Sat, 29 Aug 2020 22:41:41 +0000 (22:41 +0000)]
d/changelog: strip whitespace

6 months agod/control: Use debhelper-compat v13
Chris Hofstaedtler [Sat, 29 Aug 2020 22:41:06 +0000 (22:41 +0000)]
d/control: Use debhelper-compat v13

6 months agod/control: Update my name
Chris Hofstaedtler [Sat, 29 Aug 2020 22:38:13 +0000 (22:38 +0000)]
d/control: Update my name

8 months agopacker: avoid duplicate test name in debian64.bats
Michael Prokop [Tue, 9 Jun 2020 10:22:39 +0000 (12:22 +0200)]
packer: avoid duplicate test name in debian64.bats


| ==> virtualbox-iso: bats warning: duplicate test name(s) in /tmp/debian64.bats: test_home_directory_for_user_vagrant

8 months agopacker: use Grml 2020.06-rc1 and update VirtualBox Guest Additions
Michael Prokop [Tue, 9 Jun 2020 10:10:04 +0000 (12:10 +0200)]
packer: use Grml 2020.06-rc1 and update VirtualBox Guest Additions

While at it, drop compression_level (it's set to level 6 by default
so let's use that unless we've a good reason to choose something
different), see

9 months agoRelease new version 0.93 v0.93
Michael Prokop [Fri, 5 Jun 2020 12:16:01 +0000 (14:16 +0200)]
Release new version 0.93

Quoting from

| Issues preventing migration:
| Not built on buildd: arch all binaries uploaded by mika, a new source-only upload is needed to allow migration


9 months agoRelease new version 0.92 v0.92
Michael Prokop [Wed, 3 Jun 2020 14:54:46 +0000 (16:54 +0200)]
Release new version 0.92

9 months agoMerge remote-tracking branch 'origin/pr/155'
Michael Prokop [Wed, 3 Jun 2020 14:44:11 +0000 (16:44 +0200)]
Merge remote-tracking branch 'origin/pr/155'

9 months agoRefactor new --sshcopyid behavior into separate cmdline option --sshcopyauth mika/gh153
Michael Prokop [Wed, 3 Jun 2020 12:16:08 +0000 (14:16 +0200)]
Refactor new --sshcopyid behavior into separate cmdline option --sshcopyauth

Related to commit 07e835eac7 and the discussion within

If execution of --sshcopyid fails, then user might want to be aware of
it. So instead of implementing the copying of .ssh/authorized_keys as
fallback of --sshcopyid, let's provide it via cmdline option

Reviewed-by: Chris Hofstaedtler
Reviewed-by: Darshaka Pathirana

9 months agoMerge remote-tracking branch 'origin/pr/153'
Michael Prokop [Wed, 3 Jun 2020 12:48:32 +0000 (14:48 +0200)]
Merge remote-tracking branch 'origin/pr/153'

9 months agoRelease new version 0.91 v0.91
Michael Prokop [Tue, 12 May 2020 15:24:11 +0000 (17:24 +0200)]
Release new version 0.91

9 months agoExecute 'wrap-and-sort -a -t -s' on debian/
Michael Prokop [Tue, 12 May 2020 15:22:41 +0000 (17:22 +0200)]
Execute 'wrap-and-sort -a -t -s' on debian/

This is much better for (code) reviews

9 months agoBump Standards-Version to 4.5.0
Michael Prokop [Tue, 12 May 2020 15:22:32 +0000 (17:22 +0200)]
Bump Standards-Version to 4.5.0

12 months agoadd .ssh/authorized_keys support for --sshcopyid
Antoine Beaupré [Tue, 25 Feb 2020 19:46:43 +0000 (14:46 -0500)]
add .ssh/authorized_keys support for --sshcopyid

We retain backwards compatibility, that is: we use keys from the agent
by default. But if unavailable, we tap into the ~/.ssh/authorized_keys
file (or whatever is specified by the $AUTHORIZED_KEYS_SOURCE

The target SSH directory can be changed with $AUTHORIZED_KEYS_TARGET.

Closes: #151

14 months agoCheck for existence of debootstrap binary after command line processing
Michael Prokop [Fri, 13 Dec 2019 13:10:19 +0000 (14:10 +0100)]
Check for existence of debootstrap binary after command line processing

When invoking grml-debootstrap as user without /usr/sbin inside $PATH,
then the debootstrap binary will not be found and executing
`grml-debootstrap --version` fails with
`debootstrap not installed`.


14 months agoProvide workaround for Debian bug #918590 with lvm + udev in VM installations
Michael Prokop [Fri, 13 Dec 2019 11:13:49 +0000 (12:13 +0100)]
Provide workaround for Debian bug #918590 with lvm + udev in VM installations

We need the /run/udev bind-mount to be present also when doing VM
installations for buster and newer, otherwise the installation
takes loooong due to the:

| WARNING: Device /dev/... not initialized in udev database even after waiting 10000000 microseconds

bug. As the /run/udev bind-mount is already gone we need
to resurrect before invoking update-grub in the VM installation.

14 months agodocs: fix duplicated --efi option in usage examples
Michael Prokop [Tue, 10 Dec 2019 11:01:15 +0000 (12:01 +0100)]
docs: fix duplicated --efi option in usage examples

16 months agoRelease new version 0.90 v0.90
Michael Prokop [Tue, 22 Oct 2019 13:58:15 +0000 (15:58 +0200)]
Release new version 0.90

16 months agoBump Standards-Version to 4.4.1
Michael Prokop [Tue, 22 Oct 2019 13:57:05 +0000 (15:57 +0200)]
Bump Standards-Version to 4.4.1

16 months agoDrop debian/compat, replace with debhelper-compat
Michael Prokop [Tue, 22 Oct 2019 13:56:30 +0000 (15:56 +0200)]
Drop debian/compat, replace with debhelper-compat

Fixes package-uses-old-debhelper-compat-version lintian warning

16 months agoMerge remote-tracking branch 'origin/pr/140'
Michael Prokop [Tue, 15 Oct 2019 14:45:58 +0000 (16:45 +0200)]
Merge remote-tracking branch 'origin/pr/140'

16 months agoMerge remote-tracking branch 'origin/pr/141'
Michael Prokop [Tue, 15 Oct 2019 14:45:25 +0000 (16:45 +0200)]
Merge remote-tracking branch 'origin/pr/141'

16 months agoMerge remote-tracking branch 'origin/pr/142'
Michael Prokop [Tue, 15 Oct 2019 13:46:56 +0000 (15:46 +0200)]
Merge remote-tracking branch 'origin/pr/142'

16 months agoMerge remote-tracking branch 'origin/pr/143'
Michael Prokop [Tue, 15 Oct 2019 13:46:03 +0000 (15:46 +0200)]
Merge remote-tracking branch 'origin/pr/143'

16 months agotravis: default to buster and also use debian:buster as docker container
Michael Prokop [Wed, 21 Aug 2019 20:27:52 +0000 (22:27 +0200)]
travis: default to buster and also use debian:buster as docker container

The unstable environment seems to be flasky, though the
stretch one seems to be stable so far, let's try to update
it towards buster.

18 months ago/etc/fstab: provide header comment, pointing to man pages and systemctl daemon-reload mika/fstab
Michael Prokop [Thu, 29 Aug 2019 12:51:06 +0000 (14:51 +0200)]
/etc/fstab: provide header comment, pointing to man pages and systemctl daemon-reload

Inspired by Marc Haber's bug report #936050 and what Fedora
does with their anaconda installer.

18 months agoSupport BOOT_APPEND usage outside of VMs
Michael Prokop [Fri, 16 Aug 2019 16:36:54 +0000 (18:36 +0200)]
Support BOOT_APPEND usage outside of VMs

BOOT_APPEND works only for VMs when being invoked within
grub_install() inside main grml-debootstrap, move its
handling to chroot-script instead.


18 months agoProperly exit if GRUB installation fails mika/grub-fail
Michael Prokop [Wed, 21 Aug 2019 15:53:02 +0000 (17:53 +0200)]
Properly exit if GRUB installation fails

For example when partition table is GPT but grub installation
expects a MS-DOS partition table, then grub-install fails
but grml-debootstrap ignored this. Since the system isn't bootable
then this might go unnoticed, so properly fail as soon as grub-install
returns with exit code != 0.

18 months agotravis: ignore SC2001 which doesn't work for $CHROOT_VARIABLES handling
Michael Prokop [Wed, 21 Aug 2019 20:09:28 +0000 (22:09 +0200)]
travis: ignore SC2001 which doesn't work for $CHROOT_VARIABLES handling

SC2181 = See if you can use ${variable//search/replace} instead

This doesn't work for the $CHROOT_VARIABLES which includes
variables with strings like "/", so we can't rely on the
${variable//search/replace} approach. Quoting from

| Utilizing some of the more complex capabilities of sed is
| required occasionally and it is safe to ignore SC2001.

19 months agopacker: update to grml64-full 2018.12
Michael Prokop [Fri, 12 Jul 2019 08:13:04 +0000 (10:13 +0200)]
packer: update to grml64-full 2018.12

19 months agopacker: make buster the new default Debian release
Michael Prokop [Fri, 12 Jul 2019 07:41:13 +0000 (09:41 +0200)]
packer: make buster the new default Debian release

19 months agoUse new repository layout for bullseye and newer
Michael Prokop [Fri, 12 Jul 2019 07:39:05 +0000 (09:39 +0200)]
Use new repository layout for bullseye and newer

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.

19 months agopacker: support Debian 10.0 in tests
Michael Prokop [Thu, 11 Jul 2019 16:41:17 +0000 (18:41 +0200)]
packer: support Debian 10.0 in tests

Debian/buster is version "10.0".

19 months agopacker: Update VBoxGuestAdditions to v5.2.24
Michael Prokop [Thu, 11 Jul 2019 16:20:19 +0000 (18:20 +0200)]
packer: Update VBoxGuestAdditions to v5.2.24

20 months agoRelease new version 0.89 v0.89
Michael Prokop [Fri, 14 Jun 2019 12:47:14 +0000 (14:47 +0200)]
Release new version 0.89

20 months agoEnsure /etc/network exists before setting up /etc/network/interfaces mika/buster
Michael Prokop [Thu, 13 Jun 2019 09:27:45 +0000 (11:27 +0200)]
Ensure /etc/network exists before setting up /etc/network/interfaces

When grml-debootstrap is invoked with `--debopt --variant=minbase`, our
handling of /etc/network/interfaces fails, as the directory
/etc/network/ doesn't necessarily exist yet in the essential/minbase
variants (unless you explicitly install ifupdown/netbase).

Closes: #930468

21 months agoFix detection of predictable network interface names
Michael Prokop [Fri, 31 May 2019 14:41:50 +0000 (16:41 +0200)]
Fix detection of predictable network interface names

E.g. virtio drivers might have the properties ID_NET_NAME_PATH=enp0s18
and ID_NET_NAME_SLOT=ens18. If we check only for ID_NET_NAME_PATH, then
we end up with a network configuration for enp0s18, while the actual
network interface name will be ens18.

So instead look at all present network devices, iterate over them
(ignoring the virtual interfaces like bridges + vboxnet) and
check for present ID_NET_NAME_* settings, using the following precedence
(as defined in link_config_apply() of systemd/src/udev/net/link-config.c):


Closes: #929810

2 years agoRelease new version 0.88 v0.88
Michael Prokop [Sat, 2 Mar 2019 10:27:28 +0000 (11:27 +0100)]
Release new version 0.88

2 years agodocs: fix typo mika/0.88
Michael Prokop [Sat, 2 Mar 2019 09:49:41 +0000 (10:49 +0100)]
docs: fix typo

2 years agosshcopyid option: exit if `ssh-add -L` fails to execute
Michael Prokop [Sat, 2 Mar 2019 09:40:56 +0000 (10:40 +0100)]
sshcopyid option: exit if `ssh-add -L` fails to execute

If a user requested the --sshcopyid option then it's supposed
to be run successfully, otherwise it might leave an inaccessible
system, so exit with error if execution of `ssh-add -L` fails.

While at it:

* simplify code (no need for $RC)
* don't fail if directory /root/.ssh exists already
* append keys to possibly existing /root/.ssh/authorized_keys
  file, instead of overwriting it

2 years agoMerge remote-tracking branch 'origin/pr/129'
Michael Prokop [Sat, 2 Mar 2019 09:29:47 +0000 (10:29 +0100)]
Merge remote-tracking branch 'origin/pr/129'

2 years agoMerge remote-tracking branch 'origin/pr/127'
Michael Prokop [Sat, 2 Mar 2019 09:29:42 +0000 (10:29 +0100)]
Merge remote-tracking branch 'origin/pr/127'

2 years agoAdd option --sshcopyid to authorise root login
Darshaka Pathirana [Sat, 2 Mar 2019 02:35:02 +0000 (03:35 +0100)]
Add option --sshcopyid to authorise root login

Use locally available public keys to authorise root login on the target

Similar to ssh-copy-id(1) (without the -i option) it checks if `ssh-add
-L` provides any output, and if so those keys are appended to

Closes: grml/grml-debootstrap#128

2 years agoAdd DHCP setting for Predictable Network Interface Names
Darshaka Pathirana [Sat, 2 Mar 2019 01:22:12 +0000 (02:22 +0100)]
Add DHCP setting for Predictable Network Interface Names

Predictable Network Interface Names were missing the default
/etc/network/interfaces file when using the --defaultinterfaces option.

Added a Networking-Section in the man page to clarify how the network is
configured in the target system and fixed the documentation for the
options --vmfile and --vm. Both options automatically enable the
--defaultinterface option and not the --nointerfaces option.

Closes: grml/grml-debootstrap#126

2 years agoUpdate bug report instructions
Michael Prokop [Fri, 25 Jan 2019 10:04:14 +0000 (11:04 +0100)]
Update bug report instructions

Thanks: Patrick Schleizer

2 years agoRelease new version 0.87 v0.87
Michael Prokop [Thu, 24 Jan 2019 09:21:39 +0000 (10:21 +0100)]
Release new version 0.87

2 years agodocs: add further and improve existing usage examples
Michael Prokop [Thu, 24 Jan 2019 09:08:36 +0000 (10:08 +0100)]
docs: add further and improve existing usage examples

There's no reason to say "use /dev/sda1 as system partition"
all the time, when we already mention that we "Install Debian on /dev/sda1".

Provide usage examples for mmdebstrap and LVM devices.

The --iso option also accepts mountpoint without any file: syntax,
which is more human-friendly.

2 years agodebian/rules: support nocheck in DEB_BUILD_OPTIONS
Michael Prokop [Thu, 24 Jan 2019 08:45:24 +0000 (09:45 +0100)]
debian/rules: support nocheck in DEB_BUILD_OPTIONS

Spotted by lintian (see tag override_dh_auto_test-does-not-check-DEB_BUILD_OPTIONS)

2 years agozsh-completion: improve wording and list of available options to better match reality
Michael Prokop [Thu, 24 Jan 2019 08:35:29 +0000 (09:35 +0100)]
zsh-completion: improve wording and list of available options to better match reality

The --mntpoint option is quite unimportant, whereas --grub, --password
and --bootappend all require an argument. Instead the --hostname is
quite important. Adjust accordingly.

Add related debian/post* scripts for proper dpkg-maintscript-helper
rm_conffile support.

2 years agoInstall zsh-completion in /usr/share/zsh/vendor-completions
Michael Prokop [Thu, 24 Jan 2019 08:23:42 +0000 (09:23 +0100)]
Install zsh-completion in /usr/share/zsh/vendor-completions

Since Zsh version v4.3.12-1 in Debian completions should
go to /usr/share/zsh/vendor-completions and are supported
there out-of-the-box.

2 years agogrml-debootstrap man page: point users towards github instead of private mail
Michael Prokop [Thu, 24 Jan 2019 08:18:01 +0000 (09:18 +0100)]
grml-debootstrap man page: point users towards github instead of private mail

2 years agoReplace http with https where possible
Michael Prokop [Thu, 24 Jan 2019 08:15:34 +0000 (09:15 +0100)]
Replace http with https where possible

2 years agoDrop no longer relevant releasetable-man.txt
Michael Prokop [Thu, 24 Jan 2019 08:09:32 +0000 (09:09 +0100)]
Drop no longer relevant releasetable-man.txt

2 years agoSupport mmdebstrap via DEBOOTSTRAP=mmdebstrap
Michael Prokop [Thu, 24 Jan 2019 08:08:07 +0000 (09:08 +0100)]
Support mmdebstrap via DEBOOTSTRAP=mmdebstrap

The only known incompatibility so far is the --iso ... option.
Therefore abort grml-debootstrap if DEBOOTSTRAP=mmdebstrap
and --iso ... option are used at the same time.


2 years agoMakefile: use https version of website as man.base.url.for.relative.links
Michael Prokop [Wed, 23 Jan 2019 15:41:20 +0000 (16:41 +0100)]
Makefile: use https version of website as man.base.url.for.relative.links

2 years agoMerge remote-tracking branch 'origin/pr/118'
Michael Prokop [Wed, 23 Jan 2019 15:38:10 +0000 (16:38 +0100)]
Merge remote-tracking branch 'origin/pr/118'

2 years agoRelease new version 0.86 v0.86
Michael Prokop [Fri, 18 Jan 2019 13:15:46 +0000 (14:15 +0100)]
Release new version 0.86

2 years agoBind-mount /run/udev in target system as workaround for lvm2 issue #918590
Michael Prokop [Fri, 18 Jan 2019 12:54:47 +0000 (13:54 +0100)]
Bind-mount /run/udev in target system as workaround for lvm2 issue #918590

Installation takes ages with lvm 2.03.02-1 if /run/udev isn't
available in the target system, causing messages like:

| WARNING: Device /dev/[...] not initialized in udev database even after waiting 10000000 microseconds.

Especially when grub package gets installed (which invokes
vgs and related tools) this takes forever and looks like a
failing installation.

This /run/udev bind-mount is a workaround required for Debian/buster's
lvm2, at least until #918590 is resolved.

2 years agoAdd Debian/buster to release-table in man page
Darshaka Pathirana [Mon, 7 Jan 2019 03:05:02 +0000 (04:05 +0100)]
Add Debian/buster to release-table in man page

2 years agoRelease new version 0.85 v0.85
Michael Prokop [Sun, 30 Dec 2018 10:48:25 +0000 (11:48 +0100)]
Release new version 0.85

2 years agoBump Standards-Version to 4.3.0
Michael Prokop [Sun, 30 Dec 2018 10:48:02 +0000 (11:48 +0100)]
Bump Standards-Version to 4.3.0

No further changes needed

2 years agoAdd preliminary support for Debian/bullseye (AKA Debian v11.0)
Michael Prokop [Sun, 30 Dec 2018 10:27:25 +0000 (11:27 +0100)]
Add preliminary support for Debian/bullseye (AKA Debian v11.0)

The "bullseye" release doesn't exist on the Debian repositories
as such yet, though it's supposed to appear at least once buster
(AKA Debian v10.0) is stable.

2 years agoSupport and default to Debian/buster release, update docs accordingly
Michael Prokop [Sat, 29 Dec 2018 16:35:40 +0000 (17:35 +0100)]
Support and default to Debian/buster release, update docs accordingly

On 2019-02-12 there's the soft-freeze starting for the Buster release.
Accordingly default to buster as new default within grml-debootstrap.

Closes: grml/grml-debootstrap#117

2 years agoRework usage (`--backportrepos` option)
Michael Prokop [Sun, 30 Dec 2018 10:03:23 +0000 (11:03 +0100)]
Rework usage (`--backportrepos` option)

In September 2018 the backports service was migrated from
to an official service within the Debian project and repositories (see

This means no longer exists
as such. Accordingly update the URL to point to the Debian repositories
(using ${RELEASE}-backports).

2 years agoRelease new version 0.84 v0.84
Michael Prokop [Wed, 19 Dec 2018 09:43:54 +0000 (10:43 +0100)]
Release new version 0.84

2 years agopacker: Update VirtualBox Guest Additions to 5.2.22
Michael Prokop [Tue, 18 Dec 2018 17:09:00 +0000 (18:09 +0100)]
packer: Update VirtualBox Guest Additions to 5.2.22

VirtualBox 5.2.22 is available in current stretch-backports, testing
(buster) and unstable. The URL for VBoxGuestAdditions_5.2.1-118918.iso
no longer works (results in 404).

2 years agoMerge remote-tracking branch 'origin/pr/116'
Michael Prokop [Fri, 14 Dec 2018 15:30:06 +0000 (16:30 +0100)]
Merge remote-tracking branch 'origin/pr/116'

2 years agoDo not create target directory in /dev
Darshaka Pathirana [Fri, 14 Dec 2018 15:19:25 +0000 (16:19 +0100)]
Do not create target directory in /dev

grml-debootstrap used to happily create a target directory in /dev if
for instance one forgot to partition sda. To avoid such a mistake it
feels better to abort the installation.

Closes: grml/grml-debootstrap#99

2 years agoRelease new version 0.83 v0.83
Michael Prokop [Wed, 14 Nov 2018 21:29:10 +0000 (22:29 +0100)]
Release new version 0.83

2 years agoMerge remote-tracking branch 'remotes/origin/pr/113'
Michael Prokop [Wed, 14 Nov 2018 21:23:04 +0000 (22:23 +0100)]
Merge remote-tracking branch 'remotes/origin/pr/113'

2 years agoReport "Device-mapper support missing in kernel." as error message
Michael Prokop [Wed, 14 Nov 2018 21:17:11 +0000 (22:17 +0100)]
Report "Device-mapper support missing in kernel." as error message

Fix typo in comment, while at it

2 years agoMerge remote-tracking branch 'origin/pr/111'
Michael Prokop [Wed, 14 Nov 2018 21:12:40 +0000 (22:12 +0100)]
Merge remote-tracking branch 'origin/pr/111'

2 years agoMerge remote-tracking branch 'origin/pr/112'
Michael Prokop [Wed, 14 Nov 2018 21:08:35 +0000 (22:08 +0100)]
Merge remote-tracking branch 'origin/pr/112'

2 years agoMakefile: drop functions directory, no longer being relevant
Michael Prokop [Wed, 14 Nov 2018 21:07:23 +0000 (22:07 +0100)]
Makefile: drop functions directory, no longer being relevant

With the integration of cmdlinesopts.clp into the main script
this directory is no longer relevant.

2 years agoImprove cleanup of loop devices
Darshaka Pathirana [Wed, 25 Jul 2018 10:14:37 +0000 (12:14 +0200)]
Improve cleanup of loop devices

kpartx (sometimes) does not cleanup the loop devices when deleting the
partition devmappings. This is a known bug, see Debian Bug #891077.

This is change is a possible workaround for that issue.

Now aborting grml-debootstrap is possible without leaving unneded loop
devices behind.

2 years agocode style; einfo GRUB_INSTALL; document GRUB_INSTALL
Patrick Schleizer [Sun, 9 Sep 2018 16:24:09 +0000 (12:24 -0400)]
code style; einfo GRUB_INSTALL; document GRUB_INSTALL

2 years agosupport skipping installation of grub using GRUB_INSTALL='no'
Patrick Schleizer [Mon, 27 Aug 2018 20:26:44 +0000 (20:26 +0000)]
support skipping installation of grub using GRUB_INSTALL='no'

split finalize_vm into grub_install and umount_target

2 years agoEnsure /etc/timezone also includes the TIMEZONE setting
Michael Prokop [Wed, 25 Jul 2018 16:34:28 +0000 (18:34 +0200)]
Ensure /etc/timezone also includes the TIMEZONE setting

Quoting from the bug report:

| The timezone is currently setup in chroot-script:timezone(), but
| that function only sets up /etc/localtime but not /etc/timezone.
| The problem is that you end up with one set to Europe/Vienna and
| the other set to Etc/UTC.
| This can greatly confuse the system, due to some libraries/tools
| parsing the former, and other the latter.
| So that function should probably also update /etc/timezone, with
| the TIMEZONE value.

So write the $TIMEZONE setting to /etc/timezone.

Closes: #904607
Thanks: Guillem Jover <>

2 years agotravis: run tests from inside VM + support test execution outside of Travis CI
Michael Prokop [Wed, 25 Jul 2018 17:51:03 +0000 (19:51 +0200)]
travis: run tests from inside VM + support test execution outside of Travis CI

This is a big improvement, because we can now communicate with
the running VM, including executing processes inside the VM, like
running goss directly from inside the VM.

While at it also adjust travis/ to be able to run it
*locally* as well. We now don't have to necessarily push to Travis
CI, which also serves to be useful when developing new features.

Thanks: Christian Hofstaedtler <> for helping me with the serial console handling

2 years agoSimplify module loading
Chris Hofstaedtler [Wed, 25 Jul 2018 18:34:24 +0000 (20:34 +0200)]
Simplify module loading

This works fine on stretch.

2 years agoInitial VM test builds on TravisCI
Michael Prokop [Tue, 24 Jul 2018 10:21:21 +0000 (12:21 +0200)]
Initial VM test builds on TravisCI

We're starting a Docker container with Debian/stretch, installing
the Debian package build result (generated via
of grml-debootstrap inside it. Then execute grml-debootstrap,
installing to a VM file. Finally boot the generated VM file via

We use stdio of qemu's serial console to check for the boot prompt
of the installed Debian system, using goss for running the actual

2 years agoImprove checks to make sure loop and dm-mod module are present
Darshaka Pathirana [Tue, 24 Jul 2018 11:34:45 +0000 (13:34 +0200)]
Improve checks to make sure loop and dm-mod module are present

This fix was triggered because running --vmfile to create a virtual
machine image file caused the following error:

| device-mapper: reload ioctl on loop1p1p1 failed: Device or resource busy
| create/reload failed on loop1p1p1

This was caused because kpartx was run twice. The first run was used to test if
the Device-mapper was ready and the second run was actually add the partition
mappings. This used to fail under some circumstances.

2 years agoUse for travis builds
Michael Prokop [Mon, 23 Jul 2018 06:57:20 +0000 (08:57 +0200)]
Use for travis builds

While at it drop irrelevant stuff from .travis.yml.

Thanks Chris Lamb <> for \o/

2 years agoSwitch default mirror from to
Michael Prokop [Mon, 23 Jul 2018 07:07:30 +0000 (09:07 +0200)]
Switch default mirror from to forwards to
nowadays, provided by Fastly and Amazon CloudFront.