grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/1] support loading of custom initrd images


From: Andrei Borzenkov
Subject: Re: [PATCH 1/1] support loading of custom initrd images
Date: Fri, 5 Feb 2016 20:04:29 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1

05.02.2016 13:43, Christian Hesse пишет:
> From: Christian Hesse <address@hidden>
> 
> Signed-off-by: Christian Hesse <address@hidden>
> ---
>  docs/grub.texi          |  6 ++++++
>  util/grub-mkconfig.in   |  1 +
>  util/grub.d/10_linux.in | 16 +++++++++-------
>  3 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/docs/grub.texi b/docs/grub.texi
> index 0afdd8c..f65647c 100644
> --- a/docs/grub.texi
> +++ b/docs/grub.texi
> @@ -1398,6 +1398,12 @@ for all respectively normal entries.
>  The values of these options replace the values of @samp{GRUB_CMDLINE_LINUX}
>  and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux and Xen menu entries.
>  
> address@hidden GRUB_CUSTOM_INITRD
> +Give custom initrd images to be loaded in addition to the initrd image
> +found for the kernel. One use case is to load Intel ucode image.
> +

Is there any other use case? Both dracut and initramfs-tools already add
early cpio with microcode to generated initrd. This is bootloader
agnostic and better solution.

> +This expects a space separated list of initrd images in @samp{/boot}.
> +
>  @item GRUB_DISABLE_LINUX_UUID
>  Normally, @command{grub-mkconfig} will generate menu entries that use
>  universally-unique identifiers (UUIDs) to identify the root filesystem to
> diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
> index 3183744..bbe9e62 100644
> --- a/util/grub-mkconfig.in
> +++ b/util/grub-mkconfig.in
> @@ -211,6 +211,7 @@ export GRUB_DEFAULT \
>    GRUB_CMDLINE_NETBSD \
>    GRUB_CMDLINE_NETBSD_DEFAULT \
>    GRUB_CMDLINE_GNUMACH \
> +  GRUB_CUSTOM_INITRD \
>    GRUB_TERMINAL_INPUT \
>    GRUB_TERMINAL_OUTPUT \
>    GRUB_SERIAL_COMMAND \
> diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
> index 5a78513..8e060c5 100644
> --- a/util/grub.d/10_linux.in
> +++ b/util/grub.d/10_linux.in
> @@ -136,10 +136,12 @@ EOF
>    if test -n "${initrd}" ; then
>      # TRANSLATORS: ramdisk isn't identifier. Should be translated.
>      message="$(gettext_printf "Loading initial ramdisk ...")"
> -    sed "s/^/$submenu_indentation/" << EOF
> -     echo    '$(echo "$message" | grub_quote)'
> -     initrd  ${rel_dirname}/${initrd}
> -EOF
> +    printf ' %s\n' "echo     '$(echo "$message" | grub_quote)'" | sed 
> "s/^/$submenu_indentation/"
> +    printf ' %s ' 'initrd' | sed "s/^/$submenu_indentation/"
> +    for I in "address@hidden"; do
> +     printf ' %s/%s' "${rel_dirname}" "${I}"
> +    done
> +    printf '\n'
>    fi
>    sed "s/^/$submenu_indentation/" << EOF
>  }
> @@ -188,7 +190,7 @@ while [ "x$list" != "x" ] ; do
>    alt_version=`echo $version | sed -e "s,\.old$,,g"`
>    linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
>  
> -  initrd=
> +  initrd=(${GRUB_CUSTOM_INITRD})

We explicitly avoid bashisms in all scripts.

>    for i in "initrd.img-${version}" "initrd-${version}.img" 
> "initrd-${version}.gz" \
>          "initrd-${version}" "initramfs-${version}.img" \
>          "initrd.img-${alt_version}" "initrd-${alt_version}.img" \
> @@ -198,7 +200,7 @@ while [ "x$list" != "x" ] ; do
>          "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
>          "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do
>      if test -e "${dirname}/${i}" ; then
> -      initrd="$i"
> +      initrd+=("$i")
>        break
>      fi
>    done
> @@ -217,7 +219,7 @@ while [ "x$list" != "x" ] ; do
>    fi
>  
>    if test -n "${initrd}" ; then
> -    gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2
> +    gettext_printf "Found initrd image(s) in %s: %s\n" "${dirname}" 
> "${initrd[*]}" >&2
>    elif test -z "${initramfs}" ; then
>      # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs.  Since 
> there's
>      # no initrd or builtin initramfs, it can't work here.
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]