Fix /rc.halt.pre/71-kernel

master v2.121
Dmitry Razumov 2 months ago
parent 10ad195a9b
commit 12c21bef58
Signed by: asmeron
GPG Key ID: 50BC1DB583B79706

@ -13,23 +13,11 @@ PATH_KERNEL="/usr/lib/modules"
copy_newkernel_to_boot(){ copy_newkernel_to_boot(){
# Найти все файлы ядра и initramfs. Еслии новее по дате модификации в системе, то заменить загрузочные # Найти все файлы ядра и initramfs. Еслии новее по дате модификации в системе, то заменить загрузочные
mountpoint --quiet "${PATH_BOOT}" || return 0 mountpoint --quiet "${PATH_BOOT}" || return 0
find ${PATH_KERNEL} -maxdepth 2 -name "vmlinuz-*.*.*-*" -print | while read FIND_FILE; do find ${PATH_KERNEL} -maxdepth 2 \( -name "vmlinuz-*.*.*-*" -o -name "ublinux-*.*.*-*" -o -name "addon-*.*.*-*" \) -print | while read FIND_FILE; do
local DTIME_FIND_FILE=$(stat -c'%Y' $(readlink -e ${FIND_FILE} 2>/dev/null)) local DTIME_FIND_FILE=$(stat -c'%Y' $(readlink -e ${FIND_FILE} 2>/dev/null))
[[ -e ${PATH_BOOT}/${FIND_FILE##*/} ]] && local DTIME_BOOT_FILE=$(stat -c'%Y' ${PATH_BOOT}/${FIND_FILE##*/} 2>/dev/null) || local DTIME_BOOT_FILE= [[ -e ${PATH_BOOT}/${FIND_FILE##*/} ]] && local DTIME_BOOT_FILE=$(stat -c'%Y' ${PATH_BOOT}/${FIND_FILE##*/} 2>/dev/null) || local DTIME_BOOT_FILE=0
[[ ${DTIME_FIND_FILE} =~ ^[0-9]+$ && ${DTIME_BOOT_FILE} =~ ^[0-9]+$ ]] && [[ ${DTIME_FIND_FILE} -gt ${DTIME_BOOT_FILE} ]] \ [[ ${DTIME_FIND_FILE} =~ ^[0-9]+$ && ${DTIME_BOOT_FILE} =~ ^[0-9]+$ ]] && [[ ${DTIME_FIND_FILE} -gt ${DTIME_BOOT_FILE} ]] \
&& install -CDm400 -o root -g root $(readlink -e ${FIND_FILE}) ${PATH_BOOT}/${FIND_FILE##*/} && cp -aL "${FIND_FILE}" "${PATH_BOOT}/" && chown root:root "${PATH_BOOT}/${FIND_FILE##*/}" && chmod 400 "${PATH_BOOT}/${FIND_FILE##*/}"
done
find ${PATH_KERNEL} -maxdepth 2 -name "ublinux-*.*.*-*" -print | while read FIND_FILE; do
local DTIME_FIND_FILE=$(stat -c'%Y' $(readlink -e ${FIND_FILE} 2>/dev/null))
[[ -e ${PATH_BOOT}/${FIND_FILE##*/} ]] && local DTIME_BOOT_FILE=$(stat -c'%Y' ${PATH_BOOT}/${FIND_FILE##*/} 2>/dev/null) || local DTIME_BOOT_FILE=
[[ ${DTIME_FIND_FILE} =~ ^[0-9]+$ && ${DTIME_BOOT_FILE} =~ ^[0-9]+$ ]] && [[ ${DTIME_FIND_FILE} -gt ${DTIME_BOOT_FILE} ]] \
&& install -CDm400 -o root -g root $(readlink -e ${FIND_FILE}) ${PATH_BOOT}/${FIND_FILE##*/}
done
find ${PATH_KERNEL} -maxdepth 2 -name "addon-*.*.*-*" -print | while read FIND_FILE; do
local DTIME_FIND_FILE=$(stat -c'%Y' $(readlink -e ${FIND_FILE} 2>/dev/null))
[[ -e ${PATH_BOOT}/${FIND_FILE##*/} ]] && local DTIME_BOOT_FILE=$(stat -c'%Y' ${PATH_BOOT}/${FIND_FILE##*/} 2>/dev/null) || local DTIME_BOOT_FILE=
[[ ${DTIME_FIND_FILE} =~ ^[0-9]+$ && ${DTIME_BOOT_FILE} =~ ^[0-9]+$ ]] && [[ ${DTIME_FIND_FILE} -gt ${DTIME_BOOT_FILE} ]] \
&& install -CDm400 -o root -g root $(readlink -e ${FIND_FILE}) ${PATH_BOOT}/${FIND_FILE##*/}
done done
} }
@ -48,7 +36,7 @@ exec_prepare_menu_kernel(){
TXT_RETURN="Return"; TXT_SELECTKERNEL="Select kernel version" TXT_RETURN="Return"; TXT_SELECTKERNEL="Select kernel version"
TXT_RU_RETURN="Возврат"; TXT_RU_SELECTKERNEL="Выбрать версию ядра" TXT_RU_RETURN="Возврат"; TXT_RU_SELECTKERNEL="Выбрать версию ядра"
[[ ${FILE_LANG} == "ru" ]] && TXT_RETURN=${TXT_RU_RETURN} && TXT_SELECTKERNEL=${TXT_RU_SELECTKERNEL} [[ ${FILE_LANG} == "ru" ]] && TXT_RETURN=${TXT_RU_RETURN} && TXT_SELECTKERNEL=${TXT_RU_SELECTKERNEL}
[[ -f ${FILE_BOOTMENU_KERNEL} ]] && rm -f ${FILE_BOOTMENU_KERNEL} local DATA_BOOTMENU_KERNEL=
for VMLINUZ_FILES in ${PATH_BOOT}/vmlinuz-*; do for VMLINUZ_FILES in ${PATH_BOOT}/vmlinuz-*; do
[[ -f "${VMLINUZ_FILES}" ]] || continue [[ -f "${VMLINUZ_FILES}" ]] || continue
[[ ${VMLINUZ_FILES} =~ .*\/vmlinuz\-([0-9]+\.[0-9]+\.[a-z0-9_]+\-[0-9]+)$ ]] [[ ${VMLINUZ_FILES} =~ .*\/vmlinuz\-([0-9]+\.[0-9]+\.[a-z0-9_]+\-[0-9]+)$ ]]
@ -57,28 +45,32 @@ exec_prepare_menu_kernel(){
VMLINUZ_FILE="vmlinuz-\${VMLINUZ_VER}" VMLINUZ_FILE="vmlinuz-\${VMLINUZ_VER}"
UBLINUX_FILE="ublinux-\${VMLINUZ_VER}" UBLINUX_FILE="ublinux-\${VMLINUZ_VER}"
[[ -f ${PATH_BOOT}/addon-${VMLINUZ_VER} ]] && ADDON_FILE="addon-\${VMLINUZ_VER}" || ADDON_FILE="" [[ -f ${PATH_BOOT}/addon-${VMLINUZ_VER} ]] && ADDON_FILE="addon-\${VMLINUZ_VER}" || ADDON_FILE=""
cat << EOF >> "${FILE_BOOTMENU_KERNEL}" DATA_BOOTMENU_KERNEL+=\
menuentry "${TXT_SELECTKERNEL}: ${VMLINUZ_VER}" --unrestricted { " menuentry \"${TXT_SELECTKERNEL}: ${VMLINUZ_VER}\" --unrestricted {
VMLINUZ_VER="${VMLINUZ_VER}" VMLINUZ_VER=\"${VMLINUZ_VER}\"
VMLINUZ_FILE="${VMLINUZ_FILE}" VMLINUZ_FILE=\"${VMLINUZ_FILE}\"
UBLINUX_FILE="${UBLINUX_FILE}" UBLINUX_FILE=\"${UBLINUX_FILE}\"
ADDON_FILE="${ADDON_FILE}" ADDON_FILE=\"${ADDON_FILE}\"
export VMLINUZ_VER export VMLINUZ_VER
export VMLINUZ_FILE export VMLINUZ_FILE
export UBLINUX_FILE export UBLINUX_FILE
export ADDON_FILE export ADDON_FILE
configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg
} }
EOF "
fi fi
done done
cat << EOF >> "${FILE_BOOTMENU_KERNEL}" if [[ -n ${DATA_BOOTMENU_KERNEL} ]]; then
if [ -f \${prefix}/ublinux/grub_${FILE_LANG}.cfg ]; then DATA_BOOTMENU_KERNEL+=\
menuentry "${TXT_RETURN}" --unrestricted { " if [ -f \${prefix}/ublinux/grub_${FILE_LANG}.cfg ]; then
menuentry \"${TXT_RETURN}\" --unrestricted {
configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg
} }
fi"
[[ -f ${FILE_BOOTMENU_KERNEL} ]] && [[ "$(< ${FILE_BOOTMENU_KERNEL})" == "${DATA_BOOTMENU_KERNEL}" ]] || echo "${DATA_BOOTMENU_KERNEL}" > "${FILE_BOOTMENU_KERNEL}"
else
[[ -f ${FILE_BOOTMENU_KERNEL} ]] && rm -f ${FILE_BOOTMENU_KERNEL}
fi fi
EOF
} }
copy_newkernel_to_boot copy_newkernel_to_boot

Loading…
Cancel
Save