X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fkernel-install%2F90-loaderentry.install;h=d433e00a5c3fc1508024431558d8c614d9c6c4d2;hb=f9aa5413807e163df49171793eb93a230cd7b955;hp=55b4d24672e1046a4923f2e683a39d90baff884a;hpb=8f51399e75e5d0d0741ecb18c549a57840bd1cc3;p=elogind.git diff --git a/src/kernel-install/90-loaderentry.install b/src/kernel-install/90-loaderentry.install index 55b4d2467..d433e00a5 100644 --- a/src/kernel-install/90-loaderentry.install +++ b/src/kernel-install/90-loaderentry.install @@ -32,27 +32,37 @@ fi if [[ -f /etc/os-release ]]; then . /etc/os-release +elif [[ -f /usr/lib/os-release ]]; then + . /usr/lib/os-release fi if ! [[ $PRETTY_NAME ]]; then PRETTY_NAME="Linux $KERNEL_VERSION" fi +declare -a BOOT_OPTIONS + if [[ -f /etc/kernel/cmdline ]]; then readarray -t BOOT_OPTIONS < /etc/kernel/cmdline fi if ! [[ ${BOOT_OPTIONS[*]} ]]; then - readarray -t BOOT_OPTIONS < /proc/cmdline + read -a line -r < /proc/cmdline + for i in "${line[@]}"; do + [[ "${i#initrd=*}" != "$i" ]] && continue + BOOT_OPTIONS[${#BOOT_OPTIONS[@]}]="$i" + done fi -if ! [[ $BOOT_OPTIONS ]]; then +if ! [[ ${BOOT_OPTIONS[*]} ]]; then echo "Could not determine the kernel command line parameters." >&2 echo "Please specify the kernel command line in /etc/kernel/cmdline!" >&2 exit 1 fi -cp --preserve "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" || { +cp "$KERNEL_IMAGE" "$BOOT_DIR_ABS/linux" && + chown root:root "$BOOT_DIR_ABS/linux" && + chmod 0644 "$BOOT_DIR_ABS/linux" || { echo "Could not copy '$KERNEL_IMAGE to '$BOOT_DIR_ABS/linux'." >&2 exit 1 } @@ -70,6 +80,7 @@ mkdir -p "${LOADER_ENTRY%/*}" || { echo "linux $BOOT_DIR/linux" [[ -f $BOOT_DIR_ABS/initrd ]] && \ echo "initrd $BOOT_DIR/initrd" + : } > "$LOADER_ENTRY" || { echo "Could not create loader entry '$LOADER_ENTRY'." >&2 exit 1