X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fkernel-install%2F90-loaderentry.install;h=a6a8abc2bd56198387717591259f843eff50dbf1;hb=be391925d52bde04ea9b14f868a401d545c67af9;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..a6a8abc2b 100644 --- a/src/kernel-install/90-loaderentry.install +++ b/src/kernel-install/90-loaderentry.install @@ -38,21 +38,30 @@ 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 + readarray -t line < /proc/cmdline + for i in ${line[*]}; do + if [[ "${i#initrd=*}" == "$i" ]]; then + BOOT_OPTIONS[${#BOOT_OPTIONS[@]}]="$i" + fi + 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 +79,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