You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ublinux-init/ublinux/scripts/grub-functions

150 lines
7.5 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env bash
ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0
SELF_NAME="grub-functions"
PATH_GRUB="/memory/data/from/0/boot/grub/"
exec_get_all_menuentry(){
## Показать все варианты загрузки из grub_main.cfg grub_addon.cfg grub_boothdd.cfg grub_recovery.cfg
echo "\
Full_save_to_HDD
Sandbox_in_RAM_with_save_user_profile_on_HDD
Full_sandbox_in_RAM
Saving_to_the_HDD_module
Menu_of_the_second_system
Additional_Menu>Sandbox_on_HDD_with_saving_user_profile_on_HDD
Additional_Menu>Full_sandbox_on_HDD
Recovery_Menu>Boot_base_modules_on_HDD_without_user_settings
Recovery_Menu>Boot_base_modules_in_RAM_without_user_settings
Boot_menu_for_other_OS>Boot_Windows_bootmgr
Boot_menu_for_other_OS>Boot_Windows_ntldr
Boot_menu_for_other_OS>Boot_Windows_BIOS_MBR
Boot_menu_for_other_OS>Boot_Windows_EFI_MBR
Boot_menu_for_other_OS>Boot_from_storage_1_Windows_EFI_MBR
Boot_menu_for_other_OS>Boot_from_storage_2_Windows_EFI_MBR
Boot_menu_for_other_OS>Boot_from_storage_3_Windows_EFI_MBR
Boot_menu_for_other_OS>Boot_from_storage_4_Windows_EFI_MBR
Boot_menu_for_other_OS>Boot_Windows_EFI_GPT
Boot_menu_for_other_OS>Boot_from_storage_1_Windows_EFI_GPT
Boot_menu_for_other_OS>Boot_from_storage_2_Windows_EFI_GPT
Boot_menu_for_other_OS>Boot_from_storage_3_Windows_EFI_GPT
Boot_menu_for_other_OS>Boot_from_storage_4_Windows_EFI_GPT
Boot_menu_for_other_OS>Boot_from_storage_2_masking
Boot_menu_for_other_OS>Boot_from_storage_3_masking
Boot_menu_for_other_OS>Boot_from_storage_4_masking
Boot_menu_for_other_OS>Boot_from_storage_2_without_masking
Boot_menu_for_other_OS>Boot_from_storage_3_without_masking
Boot_menu_for_other_OS>Boot_from_storage_4_without_masking"
#Старые пункт:
#UBLinux Desktop Enterprise 2405 - Полное сохранение HDD
#UBLinux Desktop Enterprise 2405 - Песочница в RAM с сохранением профиля пользователя HDD
#UBLinux Desktop Enterprise 2405 - Полная песочница в RAM
#UBLinux Desktop Enterprise 2405 - Сохранение в модуль HDD
#Меню дополнительное>UBLinux Desktop Enterprise 2405 - Песочница на HDD с сохранением профиля пользователя HDD
#Меню дополнительное>UBLinux Desktop Enterprise 2405 - Полная песочница на HDD
#Меню выбора загрузки других ОС>Загрузка Windows используя bootmgr (7, 8, 8.1, 10, 11, 12)
#Меню выбора загрузки других ОС>Загрузка Windows используя ntldr (XP)
#Меню выбора загрузки других ОС>Загрузка Windows BIOS MBR
#Меню выбора загрузки других ОС>Загрузка Windows EFI boot раздел MBR
#Меню выбора загрузки других ОС>Загрузка с диска №1, Windows EFI boot раздел MBR
#Меню выбора загрузки других ОС>Загрузка с диска №2, Windows EFI boot раздел MBR
#Меню выбора загрузки других ОС>Загрузка с диска №3, Windows EFI boot раздел MBR
#Меню выбора загрузки других ОС>Загрузка с диска №4, Windows EFI boot раздел MBR
#Меню выбора загрузки других ОС>Загрузка Windows EFI boot раздел GPT
#Меню выбора загрузки других ОС>Загрузка с диска №1, Windows EFI boot раздел GPT
#Меню выбора загрузки других ОС>Загрузка с диска №2, Windows EFI boot раздел GPT
#Меню выбора загрузки других ОС>Загрузка с диска №3, Windows EFI boot раздел GPT
#Меню выбора загрузки других ОС>Загрузка с диска №4, Windows EFI boot раздел GPT
#Меню выбора загрузки других ОС>Загрузка с диска №2, маскируем диск под первый загрузочный
#Меню выбора загрузки других ОС>Загрузка с диска №3, маскируем диск под первый загрузочный
#Меню выбора загрузки других ОС>Загрузка с диска №4, маскируем диск под первый загрузочный
#Меню выбора загрузки других ОС>Загрузка с диска №2, без маскировки
#Меню выбора загрузки других ОС>Загрузка с диска №3, без маскировки
#Меню выбора загрузки других ОС>Загрузка с диска №4, без маскировки
# FILE_OSRELEASE="/usr/lib/os-release"
# NAME_DISTRIB=$(sed -En "/VARIANT=/{s/VARIANT=\"(.*)\"/\1/p}" ${FILE_OSRELEASE})
# VER_DISTRIB=$(sed -En "/VERSION_ID=/{s/VERSION_ID=(.*)/\1/p}" ${FILE_OSRELEASE})
#
# FILE_GRUB_MAIN="${PATH_GRUB}/ublinux/grub_main.cfg"
# if [[ -f ${FILE_GRUB_MAIN} ]]; then
# sed -En "/menuentry/{
# /(ISO|Install|Установка)/!{
# s/^[ \t]*//
# s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/
# s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/
# s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p
# }
# }" ${FILE_GRUB_MAIN}
# fi
#
#
# FILE_GRUB_ADDON="${PATH_GRUB}/ublinux/grub_addon.cfg"
# if [[ -f ${FILE_GRUB_ADDON} ]]; then
# NAME_MENU_GRUB_ADDON=$(sed -En "/${FILE_GRUB_ADDON##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN})
# sed -En "/menuentry/{
# /(ISO|Install|Установка)/!{
# s/^[ \t]*/${NAME_MENU_GRUB_ADDON}>/
# s/\\$\{NAME_DISTRIB\}/${NAME_DISTRIB}/
# s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/
# s/menuentry \"(.*${NAME_DISTRIB}.*${VER_DISTRIB}.*)\" .*/\1/p
# }
# }" ${FILE_GRUB_ADDON}
# #"
# fi
#
# FILE_GRUB_BOOTHDD="${PATH_GRUB}/ublinux/grub_boothdd.cfg"
# if [[ -f ${FILE_GRUB_BOOTHDD} ]]; then
# NAME_MENU_GRUB_BOOTHDD=$(sed -En "/${FILE_GRUB_BOOTHDD##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN})
# sed -En "/menuentry/{
# /(Back|Возврат)/!{
# s/^[ \t]*/${NAME_MENU_GRUB_BOOTHDD}>/
# s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/
# s/menuentry \"(.*)\" .*/\1/p
# }
# }" ${FILE_GRUB_BOOTHDD}
# #"
# fi
#
# FILE_GRUB_LOCAL="${PATH_GRUB}/ublinux/grub_local.cfg"
# if [[ -f ${FILE_GRUB_LOCAL} ]]; then
# NAME_MENU_GRUB_LOCAL=$(sed -En "/${FILE_GRUB_LOCAL##*/}/{x;{s/menuentry \"(.*)\" .*/\1/p};d;}; x" ${FILE_GRUB_MAIN} | sed -E "s/^[[:blank:]]//")
# sed -En "/menuentry/{
# /(Back|Возврат)/!{
# s/^[ \t]*/${NAME_MENU_GRUB_LOCAL}>/
# s/\\$\{VER_DISTRIB\}/${VER_DISTRIB}/
# s/menuentry \"(.*)\" .*/\1/p
# }
# }" ${FILE_GRUB_LOCAL}
# #"
# fi
}
exec_get_last_menuentry(){
## Показать последний выбранный вариант загрузки
FILE_GRUBENV="${PATH_GRUB}/grubenv"
sed -En "/saved_entry=/{s/saved_entry=(.*)/\1/p}" ${FILE_GRUBENV}
}
################
##### MAIN #####
################
# Если файл подключен как ресурс с функциями, то выйти
return 0 2>/dev/null && return 0
if [[ -z $@ ]]; then
true
else
FUNCTION=
while [[ $# -gt 0 ]]; do
declare -f "${1}" &>/dev/null && FUNCTION+="; ${1}" || FUNCTION+=" '${1//\'/}'"
shift
done
eval ${FUNCTION#*; }
fi