[packages/dracut] - bash is *required* for dracut initramfs to work correctly, rel 3

Jan Palus atler at pld-linux.org
Sun Oct 31 02:06:03 CEST 2021


On 30.10.2021 23:23, baggins wrote:
> commit 63a4b90ecfdd4ac023ab8542fd6af60f4c80516e
> Author: Jan Rękorajski <baggins at pld-linux.org>
> Date:   Sat Oct 30 23:21:06 2021 +0200
> 
>     - bash is *required* for dracut initramfs to work correctly, rel 3

At some point dracut started to pretend mksh is supported as /bin/sh
inside initramfs but that's simply not true. Default fallback is
whatever system /bin/sh is linked which in our case is mksh hence broken
initramfs in some cases. Going back to previous default "dash" helped in
my case (lvm) -- are you sure it really needs bash? And perhaps maybe
let's leave a possibility to customize shell and instead of hardcoding
bash use:

add_dracutmodules+=" bash "

which effectively changes default shell.

(At some point I was going to add `add_dracutmodules+=" dash "` but must
have forgotten).

>     
>     If /bin/sh is not bash then dracut initramfs is unable to grok encrypted partitions.
> 
>  bash.patch  | 10 ++++++++++
>  dracut.spec |  4 +++-
>  2 files changed, 13 insertions(+), 1 deletion(-)
> ---
> diff --git a/dracut.spec b/dracut.spec
> index c9484a0..4384e98 100644
> --- a/dracut.spec
> +++ b/dracut.spec
> @@ -2,7 +2,7 @@ Summary:	Initramfs generator using udev
>  Summary(pl.UTF-8):	Generator initramfs wykorzystujący udev
>  Name:		dracut
>  Version:	055
> -Release:	2
> +Release:	3
>  License:	GPL v2+
>  Group:		Base
>  Source0:	https://www.kernel.org/pub/linux/utils/boot/dracut/%{name}-%{version}.tar.xz
> @@ -13,6 +13,7 @@ Patch1:		os-release.patch
>  Patch2:		arch-libdir.patch
>  Patch3:		systemd-paths.patch
>  Patch4:		cryptsetup.patch
> +Patch5:		bash.patch
>  URL:		https://dracut.wiki.kernel.org/
>  BuildRequires:	asciidoc
>  BuildRequires:	dash
> @@ -185,6 +186,7 @@ Bashowe dopełnianie składni dla polecenia dracut.
>  %patch2 -p1
>  %patch3 -p1
>  %patch4 -p1
> +%patch5 -p1
>  
>  %{__sed} -i -e 's, at libexecdir@,%{_libexecdir},g' modules.d/50plymouth/module-setup.sh
>  %{__sed} -i -e 's, at lib@,%{_lib},g' modules.d/95resume/module-setup.sh
> diff --git a/bash.patch b/bash.patch
> new file mode 100644
> index 0000000..e51aae7
> --- /dev/null
> +++ b/bash.patch
> @@ -0,0 +1,10 @@
> +--- dracut-055/modules.d/00bash/module-setup.sh~	2021-05-27 14:34:19.000000000 +0200
> ++++ dracut-055/modules.d/00bash/module-setup.sh	2021-10-30 23:03:00.931687353 +0200
> +@@ -27,6 +27,6 @@
> +     inst /bin/bash
> + 
> +     # Prefer bash as default shell if no other shell is preferred.
> +-    [[ -L $initdir/bin/sh ]] || ln -sf bash "${initdir}/bin/sh"
> ++    ln -sf bash "${initdir}/bin/sh"
> + 
> + }
> ================================================================
> 
> ---- gitweb:
> 
> http://git.pld-linux.org/gitweb.cgi/packages/dracut.git/commitdiff/63a4b90ecfdd4ac023ab8542fd6af60f4c80516e
> 
> _______________________________________________
> pld-cvs-commit mailing list
> pld-cvs-commit at lists.pld-linux.org
> http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit


More information about the pld-devel-en mailing list