Files
alr-RG/linux-xanmod-bin/postinstall.sh

89 lines
3.4 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -e
kernel_version=$(ls -1 /usr/lib/modules/ 2>/dev/null | grep -E '\-xanmod[0-9]*$' | sort -V | tail -n 1)
if [ -z "$kernel_version" ]; then
echo "Ошибка: Не удалось определить версию ядра"
exit 1
fi
echo "Обнаружено ядро $kernel_version, выполнение системных хуков..."
kernel_path="/boot/vmlinuz-$kernel_version"
modules_vmlinuz="/usr/lib/modules/$kernel_version/vmlinuz"
if [ ! -f "$kernel_path" ]; then
if [ -f "$modules_vmlinuz" ]; then
echo "Копирование образа ядра в /boot..."
cp "$modules_vmlinuz" "$kernel_path"
chmod 755 "$kernel_path"
else
echo "Ошибка: Образ ядра не найден в /boot или директории модулей"
exit 1
fi
fi
if command -v dracut >/dev/null 2>&1; then
initramfs_img="/boot/initramfs-$kernel_version.img"
echo "Создание initramfs для $kernel_version с помощью dracut..."
dracut --force --kmoddir "/usr/lib/modules/$kernel_version" "$initramfs_img" "$kernel_version"
echo "Initramfs создан: $initramfs_img"
fi
if command -v mkinitcpio >/dev/null 2>&1; then
echo "Создание initramfs для $kernel_version с помощью mkinitcpio..."
mkinitcpio -k "$kernel_version" -g "/boot/initramfs-$kernel_version.img"
fi
if command -v update-initramfs >/dev/null 2>&1; then
echo "Создание initramfs для $kernel_version с помощью update-initramfs..."
update-initramfs -c -k "$kernel_version"
fi
if command -v mkinitfs >/dev/null 2>&1; then
echo "Создание initramfs для $kernel_version с помощью mkinitfs..."
mkinitfs -o "/boot/initramfs-$kernel_version" "$kernel_version"
fi
echo "Обновление конфигурации загрузчика..."
if command -v grubby >/dev/null 2>&1; then
echo "Добавление ядра в загрузчик с помощью grubby..."
initrd_path="/boot/initramfs-$kernel_version.img"
if grubby --info="$kernel_path" >/dev/null 2>&1; then
echo "Ядро уже зарегистрировано в загрузчике"
else
grubby --add-kernel="$kernel_path" \
--initrd="$initrd_path" \
--title="Red OS Linux ($kernel_version) - Xanmod" \
--copy-default
echo "Ядро добавлено в загрузчик"
fi
elif command -v update-grub >/dev/null 2>&1; then
echo "Обновление конфигурации GRUB..."
update-grub
elif command -v grub2-mkconfig >/dev/null 2>&1; then
echo "Обновление конфигурации GRUB2..."
grub2-mkconfig -o /boot/grub2/grub.cfg
elif command -v grub-mkconfig >/dev/null 2>&1; then
echo "Обновление конфигурации GRUB..."
grub-mkconfig -o /boot/grub/grub.cfg
else
echo "Предупреждение: Инструмент настройки загрузчика не найден. Обновите загрузчик вручную."
fi
echo ""
echo "=========================================="
echo "Ядро $kernel_version успешно установлено!"
echo ""
echo "Для загрузки с этого ядра:"
echo "1. Перезагрузите систему"
echo "2. Выберите 'linux-xanmod' в меню GRUB"
echo "=========================================="