Перейти к содержимому

Управление ядрами в MiniOS 🔧

🤔 Зачем заменять ядро?

В MiniOS используется ядро по умолчанию, но есть несколько причин, по которым вы можете захотеть его заменить:

🔧 Различные варианты ядра Debian

Debian предоставляет несколько вариантов ядра, оптимизированных для разных сценариев использования:

  • linux-image-6.12.38+deb13-amd64 — стандартное ядро для 64-битных систем (по умолчанию в MiniOS)
  • linux-image-6.12.38+deb13-rt-amd64 — ядро реального времени для задач с критичными требованиями к задержке
  • linux-image-6.12.38+deb13-cloud-amd64 — оптимизировано для облачных и виртуализированных сред

📝 Примечание: Номера версий (например, 6.12.38+deb13) меняются с обновлениями. Чтобы узнать доступные ядра:

bash
apt search linux-image-.*-amd64
apt search linux-image-.*-rt-amd64
apt search linux-image-.*-cloud-amd64

🎯 Специализированные сценарии

  • Вычисления в реальном времени — RT-ядра для аудиопродакшена, промышленного управления
  • Игры и низкая задержка — кастомные ядра с оптимизациями для игр
  • Усиление безопасности — ядра с дополнительными патчами безопасности (grsecurity и др.)
  • Совместимость с оборудованием — более новые ядра для поддержки современного железа
  • Тонкая настройка производительности — собственная сборка ядра с нужными оптимизациями

🛠️ Пользовательские возможности ядра

  • Пользовательские патчи — применение специфических патчей для вашего оборудования или задач
  • Модули ядра — добавление поддержки специализированного оборудования или файловых систем
  • Оптимизация компиляции — сборка с разными флагами оптимизации
  • Оптимизация размера — удаление ненужных драйверов для уменьшения размера ядра

📈 Типовые сценарии

  • Аудио рабочие станции — использование RT-ядра для минимальной задержки звука
  • Игровые системы — применение патчей и оптимизаций для игр
  • Серверные среды — ядра, оптимизированные для облака и виртуализации
  • Старое оборудование — использование старых ядер для совместимости с винтажными системами
  • Системы для разработки — тестирование приложений на разных версиях ядра

⚙️ Обзор менеджера ядер MiniOS

MiniOS предлагает два инструмента для управления ядрами:

  1. 🖥️ Менеджер ядер MiniOS (GUI): Удобное графическое приложение для упаковки, установки и управления ядрами
  2. ⌨️ minios-kernel (CLI): Инструмент командной строки для продвинутых пользователей и автоматизации

Оба инструмента автоматически выполняют:

  • Упаковку ядра в формат SquashFS
  • Генерацию initramfs с нужными драйверами и скриптами загрузки
  • Установку в репозиторий ядер MiniOS
  • Обновление конфигурации загрузчика
  • Активацию и переключение ядра

⚠️ Важные моменты:

  • 🔑 Административные права: Для работы обоих инструментов требуются права администратора, будет запрошена аутентификация через PolicyKit
  • 🔗 Совместимость ядер: Убедитесь, что ядра совместимы с MiniOS. Рекомендуется использовать ядра из репозитория
  • 💾 Каталог MiniOS: Инструменты автоматически определяют каталог MiniOS (/minios/) и проверяют права на запись
  • 🔄 Автоматические обновления: Конфигурация загрузчика обновляется автоматически при активации ядра

🖥️ Способ 1: Использование менеджера ядер MiniOS (GUI)

Графический менеджер ядер предоставляет интуитивно понятный интерфейс для всех операций с ядрами.

📝 Шаги:

1. 🚀 Запуск приложения

bash
minios-kernel-manager

Или найдите "MiniOS Kernel Manager" в меню приложений.

2. 📦 Упаковка нового ядра

Вкладка "Упаковать ядро":

  1. Выберите источник ядра:

    • Ручная упаковка: Найдите и выберите локальный пакет ядра .deb
    • Репозиторий: Выберите ядро из доступных в репозиториях Debian/Ubuntu
  2. Настройте сжатие:

    • Выберите тип сжатия SquashFS: zstd (рекомендуется), lz4, lzo, xz или gzip
  3. Упакуйте ядро:

    • Нажмите кнопку "Упаковать ядро"
    • Следите за ходом процесса в логе упаковки
    • Файлы автоматически устанавливаются в репозиторий MiniOS

3. 🔄 Управление установленными ядрами

Вкладка "Управление ядрами":

  1. Просмотр доступных ядер:

    • Просмотрите все упакованные ядра со статусами:
      • ACTIVE: Текущее настроенное ядро
      • RUNNING: Ядро, с которым загружена система
      • AVAILABLE: Доступно для активации
  2. Активация ядра:

    • Кликните правой кнопкой по ядру и выберите "Активировать ядро"
    • Подтвердите активацию в диалоге
    • Конфигурация загрузчика обновится автоматически
  3. Удаление ядра:

    • Кликните правой кнопкой по неактивному ядру и выберите "Удалить ядро"
    • Подтвердите удаление (действие необратимо)

⌨️ Способ 2: Использование minios-kernel (CLI)

Инструмент командной строки предоставляет возможности скриптового управления ядрами.

⚠️ Требуются права администратора:

Для работы CLI-инструмента необходимы права root, которые будут проверяться автоматически. Запускайте команды с помощью sudo или через pkexec:

bash
sudo minios-kernel list
# or
pkexec minios-kernel activate 6.12.38+deb13-amd64

📝 Базовые команды:

1. 📋 Список доступных ядер

bash
sudo minios-kernel list

Показывает все упакованные ядра и их статусы.

2. 📦 Упаковка ядра

Из репозитория:

bash
sudo minios-kernel package --repo linux-image-6.12.38+deb13-amd64 -o /tmp/kernel-output

Из локального .deb файла:

bash
sudo minios-kernel package --deb /path/to/kernel.deb -o /tmp/kernel-output

С пользовательским сжатием:

bash
sudo minios-kernel package --repo linux-image-6.12.38+deb13-rt-amd64 --sqfs-comp lz4 -o /tmp/kernel-output

3. 🔄 Активация ядра

bash
sudo minios-kernel activate 6.12.38+deb13-amd64

4. 🗑️ Удаление ядра

bash
sudo minios-kernel delete 6.12.38+deb13-amd64

5. 📊 Проверка статуса

bash
sudo minios-kernel status

Показывает статус каталога MiniOS и информацию о текущем ядре.

6. ℹ️ Информация о ядре

bash
sudo minios-kernel info                           # Information about current active kernel
sudo minios-kernel info 6.12.38+deb13-amd64     # Information about specific kernel

Показывает подробную информацию о выбранном ядре, включая его статус и доступность.

🔧 Расширенные опции CLI:

Вывод в JSON (для скриптов):

bash
sudo minios-kernel --json list
sudo minios-kernel --json status
sudo minios-kernel --json info
sudo minios-kernel --json package --repo linux-image-6.12.38+deb13-amd64 -o /tmp/output
sudo minios-kernel --json activate 6.12.38+deb13-amd64
sudo minios-kernel --json delete 6.12.38+deb13-amd64

Расширенные параметры упаковки:

bash
# Use custom temporary directory (requires at least 1024MB free space)
sudo minios-kernel package --repo linux-image-6.12.38+deb13-rt-amd64 -o /tmp/output --temp-dir /custom/temp

# Force package lists update if outdated
sudo minios-kernel package --repo linux-image-6.12.38+deb13-rt-amd64 -o /tmp/output --force-update

Справка и использование:

bash
minios-kernel --help                    # General help (doesn't require root)
sudo minios-kernel package --help       # Package command help
sudo minios-kernel list --help          # List command help
sudo minios-kernel activate --help      # Activate command help
sudo minios-kernel info --help          # Info command help
sudo minios-kernel status --help        # Status command help
sudo minios-kernel delete --help        # Delete command help

🔧 Устранение неполадок

Частые проблемы и решения:

🚫 Каталог MiniOS не найден

  • Причина: Инструменты не могут найти каталог MiniOS
  • Решение: Убедитесь, что вы работаете в системе MiniOS или USB-накопитель корректно смонтирован
  • Проверка: Выполните sudo minios-kernel status для проверки обнаружения каталога

🔒 Доступ запрещён

  • Причина: Каталог MiniOS доступен только для чтения или недостаточно прав
  • Решение: Убедитесь, что у вас есть права администратора и файловая система доступна для записи
  • Проверка: Проверьте статус каталога MiniOS в GUI или CLI

📦 Ошибка установки пакета

  • Причина: Повреждённый пакет, проблемы с сетью или зависимостями
  • Решение:
    • Проверьте целостность файла пакета
    • Убедитесь в наличии интернет-соединения для репозиторных пакетов
    • Обновите списки пакетов: sudo apt update

💥 Kernel panic после активации

  • Причина: Несовместимое ядро или отсутствуют драйверы
  • Решение:
    • Загрузитесь в режиме восстановления или с предыдущим ядром
    • Используйте sudo minios-kernel activate <working-version>, чтобы активировать рабочее ядро
    • Проверьте совместимость ядра с вашим оборудованием

🔄 Система загружает старое ядро

  • Причина: Конфигурация загрузчика не обновилась
  • Решение:
    • Повторите активацию ядра: sudo minios-kernel activate <version>
    • Проверьте, что ядро было корректно упаковано и установлено

⚠️ Оборудование не работает после смены ядра

  • Причина: В новом ядре отсутствуют драйверы
  • Решение:
    • Проверьте, что модуль ядра SquashFS был установлен
    • Убедитесь, что новое ядро поддерживает ваше оборудование
    • Попробуйте другой вариант ядра

🚨 Восстановление ядра из оригинального образа MiniOS

Если нужно восстановиться после повреждённого или несовместимого ядра, загрузитесь с оригинального ISO/USB MiniOS:

bash
# Boot from original MiniOS image with from= parameter
# At boot prompt, specify your installed MiniOS device
from=/dev/sda1  # Replace with your actual MiniOS device

Процесс восстановления: При загрузке с оригинального ISO/USB MiniOS и указании в параметре from= устройства, где установлен MiniOS, init-система это определяет и позволяет получить доступ к установленной системе MiniOS. Метод восстановления зависит от того, остались ли оригинальные файлы ядра:

  1. Если оригинальное ядро осталось:

    • Загрузка происходит автоматически с оригинальным ядром с ISO/USB
    • Активируйте оригинальное ядро вручную: sudo minios-kernel activate <original-kernel-version>
  2. Если оригинальное ядро было удалено:

    • Скопируйте файлы ядра из оригинального образа MiniOS и восстановите их в нужные каталоги вашей установки MiniOS
    • Активируйте восстановленное ядро вручную: sudo minios-kernel activate <original-kernel-version>

В обоих случаях для активации ядра потребуется ручное вмешательство после восстановления.

🔍 Диагностические команды:

Проверить текущий статус системы:

bash
sudo minios-kernel status
sudo minios-kernel info     # Current active kernel info
uname -r                    # Current running kernel
cat /proc/version           # Kernel version details
lsmod                       # Loaded kernel modules

Проверить файлы ядра:

bash
ls -la /minios/kernels/     # List packaged kernels
ls -la /minios/boot/        # List boot files

Проверить конфигурацию загрузчика:

bash
grep -r "vmlinuz" /minios/boot/  # Find kernel references in boot configs

📋 Обзор структуры файлов

Менеджер ядра MiniOS автоматически управляет следующими файлами:

Структура репозитория ядра:

/minios/
├── 01-kernel.sb                   # Active kernel module (standard location)
├── kernels/                       # Repository of inactive/alternative kernels
│   ├── 01-kernel-<version>.sb     # SquashFS kernel modules
│   ├── vmlinuz-<version>          # Kernel binaries
│   └── initrfs-<version>.img      # Initial RAM filesystems
├── boot/
│   ├── vmlinuz-<version>          # Active kernel binary
│   ├── initrfs-<version>.img      # Active initial RAM filesystem
│   ├── syslinux/
│   │   └── syslinux.cfg           # SYSLINUX bootloader config
│   └── grub/
│       └── grub.cfg               # GRUB bootloader config

Примечание: Стандартный модуль 01-kernel.sb, поставляемый с MiniOS, содержит дополнительные драйверы по сравнению с оригинальными пакетами ядра из репозитория. Эти дополнительные драйверы обеспечивают расширенную совместимость с оборудованием для беспроводных адаптеров и устройств хранения данных.

Индикаторы статуса:

  • ACTIVE: Ядро, настроенное в загрузчике (будет загружено при следующей перезагрузке)
  • RUNNING: В данный момент выполняемое ядро
  • AVAILABLE: Упаковано и готово к активации

Автоматические операции:

  • ✅ Упаковка и сжатие ядра
  • ✅ Генерация initramfs с необходимыми драйверами
  • ✅ Установка в репозиторий MiniOS
  • ✅ Обновление конфигурации загрузчика
  • ✅ Управление симлинками для активных ядер
  • ✅ Очистка временных файлов

🎯 Рекомендации по использованию

Выбор ядра:

  • По возможности используйте ядра из официальных репозиториев Debian/Ubuntu
  • Тестируйте новые ядра сначала в тестовой среде
  • Всегда держите хотя бы одно проверенное рабочее ядро для восстановления

Перед установкой:

  • Убедитесь, что каталог MiniOS доступен для записи
  • Проверьте, достаточно ли свободного места на диске (ядра могут занимать 100–500 МБ)
  • Обновите списки пакетов для ядер из репозитория

После установки:

  • Тщательно протестируйте новое ядро
  • Проверьте корректную работу всего оборудования
  • Сохраняйте предыдущее ядро как резервное до подтверждения стабильности нового

Планирование восстановления:

  • Всегда храните резервную копию рабочего ядра
  • Знайте, как загрузиться с rescue-носителя при необходимости
  • Документируйте, какие ядра работают с вашей конфигурацией оборудования