File manager - Edit - /home/u774251322/domains/quickyums.com/public_html/static/img/logo/kernel.zip
Back
PK B[)J�g g install.d/50-dracut.installnu ȯ�� #!/usr/bin/bash COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" # If KERNEL_INSTALL_MACHINE_ID is defined but empty, BOOT_DIR_ABS is a fake directory. # So, let's skip to create initrd. if ! [[ ${KERNEL_INSTALL_MACHINE_ID-x} ]]; then exit 0 fi if [[ -d "$BOOT_DIR_ABS" ]]; then INITRD="initrd" else BOOT_DIR_ABS="/boot" INITRD="initramfs-${KERNEL_VERSION}.img" fi ret=0 case "$COMMAND" in add) INITRD_IMAGE_PREGENERATED=${KERNEL_IMAGE%/*}/initrd if [[ -f ${INITRD_IMAGE_PREGENERATED} ]]; then # we found an initrd at the same place as the kernel # use this and don't generate a new one cp --reflink=auto "$INITRD_IMAGE_PREGENERATED" "$BOOT_DIR_ABS/$INITRD" \ && chown root:root "$BOOT_DIR_ABS/$INITRD" \ && chmod 0600 "$BOOT_DIR_ABS/$INITRD" \ && exit 0 fi if [[ -f /etc/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline elif [[ -f /usr/lib/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline else declare -a BOOT_OPTIONS read -r -d '' -a line < /proc/cmdline for i in "${line[@]}"; do [[ "${i#initrd=*}" != "$i" ]] && continue BOOT_OPTIONS+=("$i") done fi unset noimageifnotneeded for ((i=0; i < "${#BOOT_OPTIONS[@]}"; i++)); do # shellcheck disable=SC1001 if [[ ${BOOT_OPTIONS[$i]} == root\=PARTUUID\=* ]]; then noimageifnotneeded="yes" break fi done dracut -f ${noimageifnotneeded:+--noimageifnotneeded} "$BOOT_DIR_ABS/$INITRD" "$KERNEL_VERSION" ret=$? ;; remove) rm -f -- "$BOOT_DIR_ABS/$INITRD" ret=$? ;; esac exit $ret PK B[�ec�� � install.d/92-crashkernel.installnu ȯ�� #!/usr/bin/bash COMMAND="$1" KERNEL_VERSION="$2" KDUMP_INITRD_DIR_ABS="$3" KERNEL_IMAGE="$4" case "$COMMAND" in add) kdumpctl _reset-crashkernel-for-installed_kernel "$KERNEL_VERSION" exit 0 ;; esac PK B[�AT�� � install.d/20-grub.installnu ȯ�� #!/usr/bin/bash if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then exit 0 fi [[ -f /etc/default/grub ]] && . /etc/default/grub [[ -f /etc/os-release ]] && . /etc/os-release COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" KERNEL_DIR="${KERNEL_IMAGE%/*}" MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID # If ${BOOT_DIR_ABS} exists, some other boot loader is active. [[ -d "${BOOT_DIR_ABS}" ]] && exit 0 # UKIs are BLS type 2 entries, 90-uki-copy.install takes care of them [ "x$KERNEL_INSTALL_LAYOUT" != "xuki" ] || exit 0 BLS_DIR="/boot/loader/entries" mkbls() { local kernelver=$1 && shift local datetime=$1 && shift local kernelopts=$1 && shift local debugname="" local debugid="" local flavor="" if [[ "$kernelver" == *\+* ]] ; then local flavor=-"${kernelver##*+}" if [[ "${flavor}" == "-debug" ]]; then local debugname=" with debugging" local debugid="-debug" fi fi cat <<EOF title ${NAME} (${kernelver}) ${VERSION}${debugname} version ${kernelver}${debugid} linux /vmlinuz-${kernelver} initrd /initramfs-${kernelver}.img options ${kernelopts} grub_users \$grub_users grub_arg --unrestricted grub_class ${ID} EOF } [[ "$KERNEL_VERSION" == *\+* ]] && flavor=-"${KERNEL_VERSION##*+}" case "$COMMAND" in add) if [[ "${KERNEL_DIR}" != "/boot" ]]; then for i in \ "$KERNEL_IMAGE" \ "$KERNEL_DIR"/System.map \ "$KERNEL_DIR"/config \ "$KERNEL_DIR"/zImage.stub \ "$KERNEL_DIR"/dtb do [[ -e "$i" ]] || continue rm -f "/boot/${i##*/}-${KERNEL_VERSION}" cp -aT "$i" "/boot/${i##*/}-${KERNEL_VERSION}" command -v restorecon &>/dev/null && \ restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}" done # hmac is .vmlinuz-<version>.hmac so needs a special treatment i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac" if [[ -e "$i" ]]; then rm -f "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" command -v restorecon &>/dev/null && \ restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" fi # symvers is symvers-<version>.gz symlink, needs a special treatment i="$KERNEL_DIR/symvers.gz" if [[ -e "$i" ]]; then rm -f "/boot/symvers-${KERNEL_VERSION}.gz" ln -s "$i" "/boot/symvers-${KERNEL_VERSION}.gz" command -v restorecon &>/dev/null && \ restorecon "/boot/symvers-${KERNEL_VERSION}.gz" fi fi if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then if [[ -f /etc/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /etc/kernel/cmdline elif [[ -f /usr/lib/kernel/cmdline ]]; then read -r -d '' -a BOOT_OPTIONS < /usr/lib/kernel/cmdline else declare -a BOOT_OPTIONS read -r -d '' -a line < /proc/cmdline for i in "${line[@]}"; do [[ "${i#initrd=*}" != "$i" ]] && continue [[ "${i#BOOT_IMAGE=*}" != "$i" ]] && continue BOOT_OPTIONS+=("$i") done fi eval "$(grub2-get-kernel-settings)" || true [[ -d "$BLS_DIR" ]] || mkdir -m 0700 -p "$BLS_DIR" BLS_ID="${MACHINE_ID}-${KERNEL_VERSION}" BLS_TARGET="${BLS_DIR}/${BLS_ID}.conf" mkbls "${KERNEL_VERSION}" \ "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${KERNEL_DIR}")")" \ "${BOOT_OPTIONS[*]}" >"${BLS_TARGET}" command -v restorecon &>/dev/null && restorecon -R "${BLS_TARGET}" LINUX="$(grep '^linux[ \t]' "${BLS_TARGET}" | sed -e 's,^linux[ \t]*,,')" INITRD="$(grep '^initrd[ \t]' "${BLS_TARGET}" | sed -e 's,^initrd[ \t]*,,')" if [[ "$(grub2-probe --device $(grub2-probe --target=device /) --target=fs)" == "btrfs" && "${SUSE_BTRFS_SNAPSHOT_BOOTING}" == "true" ]]; then LINUX_RELPATH="$(grub2-mkrelpath -r /boot${LINUX})" else LINUX_RELPATH="$(grub2-mkrelpath /boot${LINUX})" fi BOOTPREFIX="$(dirname ${LINUX_RELPATH})" ROOTPREFIX="$(dirname "/boot${LINUX}")" if [[ $LINUX != $LINUX_RELPATH ]]; then sed -i -e "s,^linux.*,linux ${BOOTPREFIX}${LINUX},g" "${BLS_TARGET}" sed -i -e "s,^initrd.*,initrd ${BOOTPREFIX}${INITRD},g" "${BLS_TARGET}" fi if ( [[ "$KERNEL_VERSION" != *${GRUB_DEFAULT_KERNEL_TYPE}* ]] && \ [ "x$GRUB_NON_STANDARD_KERNEL" == "xtrue" ] ) || \ ( echo "$KERNEL_VERSION" | grep -E -q "64k|auto|rt|uki" && \ [ "x$GRUB_NON_STANDARD_KERNEL" != "xtrue" ] ) || \ ( [[ "$KERNEL_VERSION" == *debug* ]] && [ "x$GRUB_DEFAULT_TO_DEBUG" != "xtrue" ] ); then GRUB_UPDATE_DEFAULT_KERNEL=false fi if [ "x$GRUB_UPDATE_DEFAULT_KERNEL" = "xtrue" ]; then NEWDEFAULT="${BLS_ID}" fi if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")" cp -aT "${BLS_TARGET}" "${BLS_DEBUG}" TITLE="$(grep '^title[ \t]' "${BLS_DEBUG}" | sed -e 's/^title[ \t]*//')" OPTIONS="$(echo "${BOOT_OPTIONS[*]} ${GRUB_CMDLINE_LINUX_DEBUG}" | sed -e 's/\//\\\//g')" sed -i -e "s/^title.*/title ${TITLE}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${BLS_DEBUG}" sed -i -e "s/^options.*/options ${OPTIONS}/" "${BLS_DEBUG}" if [ -n "$NEWDEFAULT" -a "x$GRUB_DEFAULT_TO_DEBUG" = "xtrue" ]; then NEWDEFAULT="${BLS_DEBUG_ID}" fi fi if [ -n "$NEWDEFAULT" ]; then grub2-editenv - set "saved_entry=${NEWDEFAULT}" fi # this probably isn't the best place to do this, but it will do for now. if [ -e "${ROOTPREFIX}${INITRD}" -a -e "${ROOTPREFIX}${LINUX}" -a \ "${ROOTPREFIX}${INITRD}" -ot "${ROOTPREFIX}${LINUX}" -a \ -x /usr/lib/kernel/install.d/50-dracut.install ]; then rm -f "${ROOTPREFIX}${INITRD}" fi exit 0 fi /sbin/new-kernel-pkg --package "kernel${flavor}" --install "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --mkinitrd --dracut --depmod --update "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --rpmposttrans "$KERNEL_VERSION" || exit $? # If grubby is used there's no need to run other installation plugins exit 77 ;; remove) if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then BLS_TARGET="${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/${KERNEL_VERSION}/${KERNEL_VERSION}~debug/")" rm -f "${BLS_TARGET}" "${BLS_DEBUG}" for i in vmlinuz System.map config zImage.stub dtb; do rm -rf "/boot/${i}-${KERNEL_VERSION}" done # hmac is .vmlinuz-<version>.hmac so needs a special treatment rm -f "/boot/.vmlinuz-${KERNEL_VERSION}.hmac" # symvers is symvers-<version>.gz symlink, needs a special treatment rm -f "/boot/symvers-${KERNEL_VERSION}.gz" exit 0 fi /sbin/new-kernel-pkg --package "kernel${flavor+-$flavor}" --rminitrd --rmmoddep --remove "$KERNEL_VERSION" || exit $? # If grubby is used there's no need to run other installation plugins exit 77 ;; *) ;; esac PK B[�a�C� � install.d/10-devicetree.installnu ȯ�� #!/usr/bin/bash # set -x if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]] then COMMAND="$1" KERNEL_VERSION="$2" #BOOT_DIR_ABS="$3" #KERNEL_IMAGE="$4" [ -f /etc/u-boot.conf ] && source /etc/u-boot.conf || true [ -z "$FIRMWAREDT" ] || FirmwareDT=$FIRMWAREDT if [[ $FirmwareDT == "True" ]] then # if we want to use firmware DT we remove symlink to current kernel DT if [ -h /boot/dtb ]; then rm -f /boot/dtb fi exit 0 fi # Setup a /boot/dtb -> /boot/dtb-$newest_kernel_version symlink so that # u-boot can find the correct dtb to load. # # If invoked to 'add' a new kernel, find the newest based on `sort`ing # the kernel versions dtb. If 'remove', then follow basically the same # procedure but exclude the version currently being removed. # # The theory of operation here is that, while newer kernels may add new # dtb nodes and fields, as upstreaming hw support for some particular # device progresses, it should never make backward incompatible changes. # So it should always be safe to use a newer dtb with an older kernel. list_dtb_versions() { excluded_version="$1" for dtbdir in /boot/dtb-*; do dtbver=${dtbdir#*-} if [ "$dtbver" != "$excluded_version" ]; then echo $dtbver fi done } setup_dtb_link() { ver=`list_dtb_versions $1 | sort -r --sort=version | head -1` if [ -h /boot/dtb ]; then rm -f /boot/dtb fi ln -s dtb-$ver /boot/dtb } ret=0 case "$COMMAND" in add) # If we're adding a kernel we want that version if [ -h /boot/dtb ]; then rm -f /boot/dtb fi ln -s dtb-$KERNEL_VERSION /boot/dtb ret=$? ;; remove) setup_dtb_link $KERNEL_VERSION ret=$? ;; esac exit $ret else # Just exit on non ARM exit 0 fi PK B[:֤�| | install.d/92-tuned.installnu ȯ�� #!/usr/bin/bash COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then exit 0 fi MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID # with grub2 always /boot BOOT_ROOT="/boot" LOADER_ENTRIES="$BOOT_ROOT/loader/entries" [ -d "$LOADER_ENTRIES" ] || exit 0 [ "$COMMAND" = "add" ] || exit 0 ARCH=`uname -m` pushd "$LOADER_ENTRIES" &> /dev/null for f in `basename "$MACHINE_ID"`-*.conf; do # Skip non-files and rescue entries if [ ! -f "$f" -o "${f: -12}" == "-rescue.conf" ]; then continue fi # Skip boom managed entries if [[ "$f" =~ \w*-[0-9a-f]{7,}-.*-.*.conf ]]; then continue fi if [ "${ARCH:0:4}" = "s390" ]; then # On s390(x), the zipl bootloader doesn't support variables, # unpatch TuneD variables which could be there from the previous TuneD # versions grep -q '^\s*options\s\+.*\$tuned_params' "$f" && sed -i '/^\s*options\s\+/ s/\s\+\$tuned_params\b//g' "$f" grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" && sed -i '/^\s*initrd\s\+/ s/\s\+\$tuned_initrd\b//g' "$f" else # Not on s390(x), add TuneD variables if they are not there grep -q '^\s*options\s\+.*\$tuned_params' "$f" || sed -i '/^\s*options\s\+/ s/\(.*\)/\1 \$tuned_params/' "$f" grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" || sed -i '/^\s*initrd\s\+/ s/\(.*\)/\1 \$tuned_initrd/' "$f" fi done popd &> /dev/null exit 0 PK B[� p_ _ install.d/90-uki-copy.installnu ȯ�� #!/usr/bin/sh # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # systemd is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <https://www.gnu.org/licenses/>. set -e COMMAND="${1:?}" KERNEL_VERSION="${2:?}" # shellcheck disable=SC2034 ENTRY_DIR_ABS="$3" KERNEL_IMAGE="$4" ENTRY_TOKEN="$KERNEL_INSTALL_ENTRY_TOKEN" BOOT_ROOT="$KERNEL_INSTALL_BOOT_ROOT" UKI_DIR="$BOOT_ROOT/EFI/Linux" case "$COMMAND" in remove) [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \ echo "Removing $UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION*.efi" exec rm -f \ "$UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION.efi" \ "$UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION+"*".efi" ;; add) ;; *) exit 0 ;; esac [ "$KERNEL_INSTALL_LAYOUT" = "uki" ] || exit 0 if ! [ -d "$UKI_DIR" ]; then [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "creating $UKI_DIR" mkdir -p "$UKI_DIR" fi TRIES_FILE="${KERNEL_INSTALL_CONF_ROOT:-/etc/kernel}/tries" if [ -f "$TRIES_FILE" ]; then read -r TRIES <"$TRIES_FILE" if ! echo "$TRIES" | grep -q '^[0-9][0-9]*$'; then echo "$TRIES_FILE does not contain an integer." >&2 exit 1 fi UKI_FILE="$UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION+$TRIES.efi" else UKI_FILE="$UKI_DIR/$ENTRY_TOKEN-$KERNEL_VERSION.efi" fi # If there is a UKI named uki.efi on the staging area use that, if not use what # was passed in as $KERNEL_IMAGE but insist it has a .efi extension if [ -f "$KERNEL_INSTALL_STAGING_AREA/uki.efi" ]; then [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing $KERNEL_INSTALL_STAGING_AREA/uki.efi as $UKI_FILE" install -m 0644 "$KERNEL_INSTALL_STAGING_AREA/uki.efi" "$UKI_FILE" || { echo "Error: could not copy '$KERNEL_INSTALL_STAGING_AREA/uki.efi' to '$UKI_FILE'." >&2 exit 1 } elif [ -n "$KERNEL_IMAGE" ]; then [ -f "$KERNEL_IMAGE" ] || { echo "Error: UKI '$KERNEL_IMAGE' not a file." >&2 exit 1 } [ "$KERNEL_IMAGE" != "${KERNEL_IMAGE%*.efi}.efi" ] && { echo "Error: $KERNEL_IMAGE is missing .efi suffix." >&2 exit 1 } [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing $KERNEL_IMAGE as $UKI_FILE" install -m 0644 "$KERNEL_IMAGE" "$UKI_FILE" || { echo "Error: could not copy '$KERNEL_IMAGE' to '$UKI_FILE'." >&2 exit 1 } else [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "No UKI available. Nothing to do." exit 0 fi chown root:root "$UKI_FILE" || : exit 0 PK B[��/� � install.d/50-depmod.installnu ȯ�� #!/usr/bin/sh # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # systemd is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <https://www.gnu.org/licenses/>. set -e COMMAND="${1:?}" KERNEL_VERSION="${2:?}" case "$COMMAND" in add) [ -d "/lib/modules/$KERNEL_VERSION/kernel" ] || exit 0 command -v depmod >/dev/null || exit 0 [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "+depmod -a $KERNEL_VERSION" exec depmod -a "$KERNEL_VERSION" ;; remove) [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \ echo "Removing /lib/modules/${KERNEL_VERSION}/modules.dep and associated files" exec rm -f \ "/lib/modules/$KERNEL_VERSION/modules.alias" \ "/lib/modules/$KERNEL_VERSION/modules.alias.bin" \ "/lib/modules/$KERNEL_VERSION/modules.builtin.bin" \ "/lib/modules/$KERNEL_VERSION/modules.builtin.alias.bin" \ "/lib/modules/$KERNEL_VERSION/modules.dep" \ "/lib/modules/$KERNEL_VERSION/modules.dep.bin" \ "/lib/modules/$KERNEL_VERSION/modules.devname" \ "/lib/modules/$KERNEL_VERSION/modules.softdep" \ "/lib/modules/$KERNEL_VERSION/modules.symbols" \ "/lib/modules/$KERNEL_VERSION/modules.symbols.bin" ;; *) exit 0 ;; esac PK B[C�g*� � ! install.d/95-kernel-hooks.installnu ȯ�� #!/usr/bin/bash if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then exit 0 fi COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" # If $BOOT_DIR_ABS exists, some other boot loader is active. [[ -d "$BOOT_DIR_ABS" ]] && exit 0 run_hooks() { local f local files="$1" for f in $files ; do [ -x "$f" ] || continue "$f" "$KERNEL_VERSION" "/boot/vmlinuz-$KERNEL_VERSION" done } case "$COMMAND" in add) run_hooks "/etc/kernel/postinst.d/*[^~] /etc/kernel/postinst.d/$KERNEL_VERSION/*[^~]" ;; remove) run_hooks "/etc/kernel/prerm.d/*[^~] /etc/kernel/prerm.d/$KERNEL_VERSION/*[^~]" ;; *) exit 0 esac PK B[��?z install.d/90-loaderentry.installnu ȯ�� #!/usr/bin/sh # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- # ex: ts=8 sw=4 sts=4 et filetype=sh # SPDX-License-Identifier: LGPL-2.1-or-later # # This file is part of systemd. # # systemd is free software; you can redistribute it and/or modify it # under the terms of the GNU Lesser General Public License as published by # the Free Software Foundation; either version 2.1 of the License, or # (at your option) any later version. # # systemd is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU Lesser General Public License # along with systemd; If not, see <https://www.gnu.org/licenses/>. set -e COMMAND="${1:?}" KERNEL_VERSION="${2:?}" ENTRY_DIR_ABS="${3:?}" KERNEL_IMAGE="$4" INITRD_OPTIONS_SHIFT=4 [ "$KERNEL_INSTALL_LAYOUT" = "bls" ] || exit 0 MACHINE_ID="$KERNEL_INSTALL_MACHINE_ID" ENTRY_TOKEN="$KERNEL_INSTALL_ENTRY_TOKEN" BOOT_ROOT="$KERNEL_INSTALL_BOOT_ROOT" BOOT_MNT="$(stat -c %m "$BOOT_ROOT")" if [ "$BOOT_MNT" = '/' ]; then ENTRY_DIR="$ENTRY_DIR_ABS" else ENTRY_DIR="${ENTRY_DIR_ABS#"$BOOT_MNT"}" fi case "$COMMAND" in remove) [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && \ echo "Removing $BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION*.conf" exec rm -f \ "$BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION.conf" \ "$BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION+"*".conf" ;; add) ;; *) exit 0 ;; esac if [ -f /etc/os-release ]; then # shellcheck source=/dev/null . /etc/os-release elif [ -f /usr/lib/os-release ]; then # shellcheck source=/dev/null . /usr/lib/os-release fi [ -n "$PRETTY_NAME" ] || PRETTY_NAME="Linux $KERNEL_VERSION" SORT_KEY="$IMAGE_ID" [ -z "$SORT_KEY" ] && SORT_KEY="$ID" if [ -n "$KERNEL_INSTALL_CONF_ROOT" ]; then if [ -f "$KERNEL_INSTALL_CONF_ROOT/cmdline" ]; then BOOT_OPTIONS="$(tr -s "$IFS" ' ' <"$KERNEL_INSTALL_CONF_ROOT/cmdline")" fi elif [ -f /etc/kernel/cmdline ]; then BOOT_OPTIONS="$(tr -s "$IFS" ' ' </etc/kernel/cmdline)" elif [ -f /usr/lib/kernel/cmdline ]; then BOOT_OPTIONS="$(tr -s "$IFS" ' ' </usr/lib/kernel/cmdline)" else BOOT_OPTIONS="$(tr -s "$IFS" '\n' </proc/cmdline | grep -ve '^BOOT_IMAGE=' -e '^initrd=' | tr '\n' ' ')" fi BOOT_OPTIONS="${BOOT_OPTIONS% }" # If the boot entries are named after the machine ID, then suffix the kernel # command line with the machine ID we use, so that the machine ID remains # stable, even during factory reset, in the initrd (where the system's machine # ID is not directly accessible yet), and if the root file system is volatile. if [ "$ENTRY_TOKEN" = "$MACHINE_ID" ] && ! echo "$BOOT_OPTIONS" | grep -q "systemd.machine_id="; then BOOT_OPTIONS="$BOOT_OPTIONS systemd.machine_id=$MACHINE_ID" fi TRIES_FILE="${KERNEL_INSTALL_CONF_ROOT:-/etc/kernel}/tries" if [ -f "$TRIES_FILE" ]; then read -r TRIES <"$TRIES_FILE" if ! echo "$TRIES" | grep -q '^[0-9][0-9]*$'; then echo "$TRIES_FILE does not contain an integer." >&2 exit 1 fi LOADER_ENTRY="$BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION+$TRIES.conf" else LOADER_ENTRY="$BOOT_ROOT/loader/entries/$ENTRY_TOKEN-$KERNEL_VERSION.conf" fi if ! [ -d "$ENTRY_DIR_ABS" ]; then echo "Error: entry directory '$ENTRY_DIR_ABS' does not exist" >&2 exit 1 fi install -m 0644 "$KERNEL_IMAGE" "$ENTRY_DIR_ABS/linux" || { echo "Error: could not copy '$KERNEL_IMAGE' to '$ENTRY_DIR_ABS/linux'." >&2 exit 1 } chown root:root "$ENTRY_DIR_ABS/linux" || : shift "$INITRD_OPTIONS_SHIFT" # All files listed as arguments, and staged files starting with "initrd" are installed as initrds. for initrd in "$@" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do [ -f "$initrd" ] || { [ "$initrd" = "${KERNEL_INSTALL_STAGING_AREA}/initrd*" ] && continue echo "Error: initrd '$initrd' not a file." >&2 exit 1 } initrd_basename="${initrd##*/}" [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Installing $ENTRY_DIR_ABS/$initrd_basename" install -m 0644 "$initrd" "$ENTRY_DIR_ABS/$initrd_basename" || { echo "Error: could not copy '$initrd' to '$ENTRY_DIR_ABS/$initrd_basename'." >&2 exit 1 } chown root:root "$ENTRY_DIR_ABS/$initrd_basename" || : done mkdir -p "${LOADER_ENTRY%/*}" || { echo "Error: could not create loader entry directory '${LOADER_ENTRY%/*}'." >&2 exit 1 } [ "$KERNEL_INSTALL_VERBOSE" -gt 0 ] && echo "Creating $LOADER_ENTRY" { echo "title $PRETTY_NAME" echo "version $KERNEL_VERSION" if [ "$ENTRY_TOKEN" = "$MACHINE_ID" ]; then # See similar logic above for the systemd.machine_id= kernel command line option echo "machine-id $MACHINE_ID" fi [ -n "$SORT_KEY" ] && echo "sort-key $SORT_KEY" echo "options $BOOT_OPTIONS" echo "linux $ENTRY_DIR/linux" have_initrd= for initrd in "${@}" "${KERNEL_INSTALL_STAGING_AREA}"/initrd*; do [ -f "$initrd" ] || continue echo "initrd $ENTRY_DIR/${initrd##*/}" have_initrd=yes done # Try "initrd", generated by dracut in its kernel-install hook, if no initrds were supplied [ -z "$have_initrd" ] && [ -f "$ENTRY_DIR_ABS/initrd" ] && echo "initrd $ENTRY_DIR/initrd" : } >"$LOADER_ENTRY" || { echo "Error: could not create loader entry '$LOADER_ENTRY'." >&2 exit 1 } exit 0 PK B[Y� q q install.d/20-grubby.installnu ȯ�� #!/usr/bin/bash if [[ ! -x /sbin/new-kernel-pkg ]]; then exit 0 fi COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" KERNEL_DIR="${KERNEL_IMAGE%/*}" [[ "$KERNEL_VERSION" == *\+* ]] && flavor=-"${KERNEL_VERSION##*+}" case "$COMMAND" in add) if [[ "${KERNEL_DIR}" != "/boot" ]]; then for i in \ "$KERNEL_IMAGE" \ "$KERNEL_DIR"/System.map \ "$KERNEL_DIR"/config \ "$KERNEL_DIR"/zImage.stub \ "$KERNEL_DIR"/dtb \ ; do [[ -e "$i" ]] || continue cp -aT "$i" "/boot/${i##*/}-${KERNEL_VERSION}" command -v restorecon &>/dev/null && \ restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}" done # hmac is .vmlinuz-<version>.hmac so needs a special treatment i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac" if [[ -e "$i" ]]; then cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" command -v restorecon &>/dev/null && \ restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" fi fi /sbin/new-kernel-pkg --package "kernel${flavor}" --install "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --mkinitrd --dracut --depmod --update "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --rpmposttrans "$KERNEL_VERSION" || exit $? ;; remove) /sbin/new-kernel-pkg --package "kernel${flavor+-$flavor}" --rminitrd --rmmoddep --remove "$KERNEL_VERSION" || exit $? ;; *) ;; esac # skip other installation plugins, if we can't find a boot loader spec conforming setup if ! [[ -d /boot/loader/entries || -L /boot/loader/entries ]]; then exit 77 fi PK B[�� "