parent
9238353b5b
commit
7a23de4ff3
@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
ENABLED=yes
|
||||
[[ ${ENABLED} == "yes" ]] || exit 0
|
||||
|
||||
PATH_BOOT="/memory/layer-base/0"
|
||||
PATH_KERNEL="/usr/lib/modules"
|
||||
|
||||
copy_newkernel_to_boot(){
|
||||
# Найти все файлы ядра и initramfs и которые отсутствуют
|
||||
find ${PATH_KERNEL} -maxdepth 2 -name "vmlinuz-*.*.*-*" -exec bash -c "[[ -f ${PATH_BOOT}/\${1##*/} ]] || install -CDm400 -o root -g root \$(readlink -e \${1}) ${PATH_BOOT}/\${1##*/}" bash {} \;
|
||||
find ${PATH_KERNEL} -maxdepth 2 -name "ublinux-*.*.*-*" -exec bash -c "[[ -f ${PATH_BOOT}/\${1##*/} ]] || install -CDm400 -o root -g root \$(readlink -e \${1}) ${PATH_BOOT}/\${1##*/}" bash {} \;
|
||||
find ${PATH_KERNEL} -maxdepth 2 -name "addon-*.*.*-*" -exec bash -c "[[ -f ${PATH_BOOT}/\${1##*/} ]] || install -CDm400 -o root -g root \$(readlink -e \${1}) ${PATH_BOOT}/\${1##*/}" bash {} \;
|
||||
}
|
||||
|
||||
remove_oldkernel_from_boot(){
|
||||
# Найти все файлы ядра "vmlinuz-*.*.*-*" и initramfs "ublinux-*.*.*-*" в ${PATH_BOOT}/boot и которые отсутствуют в /usr/modules/*/ удалить
|
||||
find ${PATH_BOOT} -maxdepth 1 -name "vmlinuz-*.*.*-*" -exec bash -c "find ${PATH_KERNEL} -maxdepth 2 -name \${1##*/} -exec false \{\} + && rm -f \$1" bash {} \;
|
||||
find ${PATH_BOOT} -maxdepth 1 -name "ublinux-*.*.*-*" -exec bash -c "find ${PATH_KERNEL} -maxdepth 2 -name \${1##*/} -exec false \{\} + && rm -f \$1" bash {} \;
|
||||
find ${PATH_BOOT} -maxdepth 1 -name "addon-*.*.*-*" -exec bash -c "find ${PATH_KERNEL} -maxdepth 2 -name \${1##*/} -exec false \{\} + && rm -f \$1" bash {} \;
|
||||
}
|
||||
|
||||
exec_prepare_menu_kernel(){
|
||||
# Сформировать меню выбора версии ядра
|
||||
FILE_LANG=${LANG%_*}
|
||||
FILE_BOOTMENU_KERNEL="/memory/data/from/0/boot/grub/ublinux/grub_${FILE_LANG}_settings_kernel.cfg"
|
||||
PATH_BOOT_KERNEL="/memory/layer-base/0"
|
||||
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}
|
||||
[[ -d ${PATH_BOOT_KERNEL} ]] || return 0
|
||||
[[ -f ${FILE_BOOTMENU_KERNEL} ]] && rm -f ${FILE_BOOTMENU_KERNEL}
|
||||
for VMLINUZ_FILES in ${PATH_BOOT_KERNEL}/vmlinuz-*; do
|
||||
[[ -f "${VMLINUZ_FILES}" ]] || continue
|
||||
[[ ${VMLINUZ_FILES} =~ .*\/vmlinuz\-([0-9]+\.[0-9]+\.[a-z0-9_]+\-[0-9]+)$ ]]
|
||||
VMLINUZ_VER=${BASH_REMATCH[1]}
|
||||
if [[ -n ${VMLINUZ_VER} && -f ${PATH_BOOT_KERNEL}/ublinux-${VMLINUZ_VER} ]]; then
|
||||
VMLINUZ_FILE="vmlinuz-\${VMLINUZ_VER}"
|
||||
UBLINUX_FILE="ublinux-\${VMLINUZ_VER}"
|
||||
[[ -f ${PATH_BOOT_KERNEL}/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}"
|
||||
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 {
|
||||
configfile \${prefix}/ublinux/grub_${FILE_LANG}.cfg
|
||||
}
|
||||
fi
|
||||
EOF
|
||||
}
|
||||
|
||||
copy_newkernel_to_boot
|
||||
remove_oldkernel_from_boot
|
||||
exec_prepare_menu_kernel
|
||||
Loading…
Reference in new issue