|
|
|
|
@ -13,23 +13,11 @@ PATH_KERNEL="/usr/lib/modules"
|
|
|
|
|
copy_newkernel_to_boot(){
|
|
|
|
|
# Найти все файлы ядра и initramfs. Еслии новее по дате модификации в системе, то заменить загрузочные
|
|
|
|
|
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))
|
|
|
|
|
[[ -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} ]] \
|
|
|
|
|
&& install -CDm400 -o root -g root $(readlink -e ${FIND_FILE}) ${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##*/}
|
|
|
|
|
&& cp -aL "${FIND_FILE}" "${PATH_BOOT}/" && chown root:root "${PATH_BOOT}/${FIND_FILE##*/}" && chmod 400 "${PATH_BOOT}/${FIND_FILE##*/}"
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -48,7 +36,7 @@ exec_prepare_menu_kernel(){
|
|
|
|
|
TXT_RETURN="Return"; TXT_SELECTKERNEL="Select kernel version"
|
|
|
|
|
TXT_RU_RETURN="Возврат"; 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
|
|
|
|
|
[[ -f "${VMLINUZ_FILES}" ]] || continue
|
|
|
|
|
[[ ${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}"
|
|
|
|
|
UBLINUX_FILE="ublinux-\${VMLINUZ_VER}"
|
|
|
|
|
[[ -f ${PATH_BOOT}/addon-${VMLINUZ_VER} ]] && ADDON_FILE="addon-\${VMLINUZ_VER}" || ADDON_FILE=""
|
|
|
|
|
cat << EOF >> "${FILE_BOOTMENU_KERNEL}"
|
|
|
|
|
menuentry "${TXT_SELECTKERNEL}: ${VMLINUZ_VER}" --unrestricted {
|
|
|
|
|
VMLINUZ_VER="${VMLINUZ_VER}"
|
|
|
|
|
VMLINUZ_FILE="${VMLINUZ_FILE}"
|
|
|
|
|
UBLINUX_FILE="${UBLINUX_FILE}"
|
|
|
|
|
ADDON_FILE="${ADDON_FILE}"
|
|
|
|
|
DATA_BOOTMENU_KERNEL+=\
|
|
|
|
|
" menuentry \"${TXT_SELECTKERNEL}: ${VMLINUZ_VER}\" --unrestricted {
|
|
|
|
|
VMLINUZ_VER=\"${VMLINUZ_VER}\"
|
|
|
|
|
VMLINUZ_FILE=\"${VMLINUZ_FILE}\"
|
|
|
|
|
UBLINUX_FILE=\"${UBLINUX_FILE}\"
|
|
|
|
|
ADDON_FILE=\"${ADDON_FILE}\"
|
|
|
|
|
export VMLINUZ_VER
|
|
|
|
|
export VMLINUZ_FILE
|
|
|
|
|
export UBLINUX_FILE
|
|
|
|
|
export ADDON_FILE
|
|
|
|
|
configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg
|
|
|
|
|
}
|
|
|
|
|
EOF
|
|
|
|
|
"
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
cat << EOF >> "${FILE_BOOTMENU_KERNEL}"
|
|
|
|
|
if [ -f \${prefix}/ublinux/grub_${FILE_LANG}.cfg ]; then
|
|
|
|
|
menuentry "${TXT_RETURN}" --unrestricted {
|
|
|
|
|
if [[ -n ${DATA_BOOTMENU_KERNEL} ]]; then
|
|
|
|
|
DATA_BOOTMENU_KERNEL+=\
|
|
|
|
|
" if [ -f \${prefix}/ublinux/grub_${FILE_LANG}.cfg ]; then
|
|
|
|
|
menuentry \"${TXT_RETURN}\" --unrestricted {
|
|
|
|
|
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
|
|
|
|
|
EOF
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
copy_newkernel_to_boot
|
|
|
|
|
|