|
|
#!/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
|
|
|
|