[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