This commit is contained in:
2026-01-13 11:21:57 +07:00
parent 8c9b451437
commit d135b81c61

74
ib.sh
View File

@@ -317,6 +317,76 @@ EOF
pause
}
prepare_dist_upgrade() {
echo -e "${YELLOW}🧹 ПОДГОТОВКА СИСТЕМЫ К ОБНОВЛЕНИЮ${NC}"
# 1. Обновляем текущие пакеты до упора
echo "📦 Шаг 1: Полное обновление текущих пакетов..."
$PKG_MGR update -y && $PKG_MGR upgrade -y && $PKG_MGR dist-upgrade -y 2>/dev/null || $PKG_MGR full-upgrade -y
# 2. Чистка старых ядер и конфигов
echo "🧹 Шаг 2: Удаление неиспользуемых зависимостей..."
$PKG_MGR autoremove --purge -y
$PKG_MGR autoclean -y
# 3. Проверка битых пакетов
if [[ "$PKG_MGR" == "apt" ]]; then
echo "🔍 Шаг 3: Проверка целостности пакетов..."
dpkg --configure -a
apt install -f -y
fi
echo -e "${GREEN}✅ Система готова к апгрейду!${NC}"
echo -e "${YELLOW}⚠️ РЕКОМЕНДУЕТСЯ ПЕРЕЗАГРУЗКА ПЕРЕД СЛЕДУЮЩИМ ШАГОМ!${NC}"
pause
}
do_major_upgrade() {
clear
echo -e "${RED}⚠️ ВНИМАНИЕ: ОПАСНАЯ ОПЕРАЦИЯ!${NC}"
echo "Эта функция обновит вашу ОС до следующей мажорной версии."
echo "Убедитесь, что у вас есть БЭКАП данных."
read -p "Вы уверены, что хотите продолжить? (y/N): " CONFIRM
[ "$CONFIRM" != "y" ] && return
case $OS_ID in
ubuntu)
echo "🚀 Запуск Ubuntu Release Upgrade..."
pkg_install update-manager-core
# -d для разработки (если релиз новый), убираем для стабильных
do-release-upgrade -f DistUpgradeViewNonInteractive
;;
debian)
CURRENT_CODENAME=$(lsb_release -sc 2>/dev/null || cat /etc/debian_version | cut -d. -f1)
echo "📝 Текущий кодовое имя: $CURRENT_CODENAME"
read -p "Введите кодовое имя СЛЕДУЮЩЕГО релиза (например, bookworm): " NEXT_CODENAME
# Замена репозиториев
sed -i "s/$CURRENT_CODENAME/$NEXT_CODENAME/g" /etc/apt/sources.list
sed -i "s/$CURRENT_CODENAME/$NEXT_CODENAME/g" /etc/apt/sources.list.d/*.list 2>/dev/null
apt update
apt upgrade --without-new-pkgs -y
apt full-upgrade -y
;;
almalinux|rocky)
echo "🚀 Использование инструмента ELevate (Leapp)..."
pkg_install network-scripts # часто нужно для leapp
curl -O https://repo.almalinux.org/elevate/elevate-release-latest-el$(echo $OS_VERSION | cut -d. -f1).noarch.rpm
rpm -Uvh elevate-release-latest-el*.rpm
pkg_install leapp-upgrade leapp-data-almalinux # или rocky
echo "🔍 Запуск проверки совместимости..."
leapp preupgrade
echo -e "${YELLOW}Проверьте отчет: /var/log/leapp/leapp-report.txt${NC}"
echo "Для финала запустите: leapp upgrade"
;;
*)
echo "❌ Автоматический апгрейд для $OS_ID пока не поддерживается."
;;
esac
pause
}
setup_disks_advanced() {
clear
echo "${GREEN}💾 НОВЫЕ ДИСКИ${NC}"
@@ -538,6 +608,8 @@ while true; do
printf "13) 🗄️ SAMBA (шары+пользователи) \n"
printf "14) 💾 Диски (выбор+форматирование)\n"
printf "15) 📈 Расширение дисков \n"
printf "16) 🛠️ Подготовка к Update \m"
printf "17 🆙 Upgrade релиза. \n"
printf "S) 📊 Статус \n"
printf "0) ❌ Выход \n"
printf "==============================================\n"
@@ -559,6 +631,8 @@ while true; do
13) install_smb_interactive ;;
14) setup_disks_advanced ;;
15) extend_disk_space ;;
16) prepare_dist_upgrade ;;
17) do_major_upgrade ;;
[Ss]) status_all ;;
0) break ;;
*) echo "❌ Неверный пункт!"; sleep 1 ;;