Короткий ответ: ставь обычное ядро linux как основное, а linux-lts как запасное для серьёзной работы. linux-hardened нужен, если безопасность важнее скорости, а linux-zen подойдёт для десктопа, где хочется отзывчивости. Все четыре можно держать рядом: GRUB покажет их в меню, а выбор нужного занимает пару секунд.
В Arch Linux ядро устанавливается как обычный пакет. Их можно ставить несколько, и каждое живёт в /boot со своими файлами: vmlinuz-linux, vmlinuz-linux-lts, vmlinuz-linux-hardened, vmlinuz-linux-zen. Рядом лежат initramfs-образы с теми же именами, а модули каждого ядра хранятся отдельно в /usr/lib/modules. Ядра не конфликтуют между собой.
Посмотреть, какие ядра стоят в системе, можно двумя способами: ls /boot покажет файлы, а pacman -Q | grep linux выведет установленные пакеты. Версии ядер не совпадают: обычное ядро обновляется до свежей ветки каждые несколько недель, а LTS держится на одной и той же ветке годами.
Текущее стабильное ядро. Свежие функции, свежие драйверы, обновления каждые несколько недель. Это выбор по умолчанию, и для большинства задач он правильный.
Ядро с долгосрочной поддержкой. Версия старая, но её поддерживают годами: исправляют ошибки и уязвимости, не добавляя новых функций. Минимум сюрпризов при обновлениях. Хороший выбор для сервера, для работы, которую нельзя прерывать, и для старого железа, где новые ядра ведут себя непредсказуемо.
Обычное ядро с набором патчей безопасности: усиленная защита памяти, ограничения на часть системных вызовов, дополнительные проверки. Работает чуть медленнее, зато эксплуатировать уязвимости сложнее. Полезно, если ты держишь публичные сервисы или работаешь с чужими файлами.
Сборка с тюнингом под десктоп: другие планировщики, настройки под интерактивную нагрузку. Субъективно система отзывается быстрее. Для игр и повседневной работы неплохой вариант, но чудес не жди. Если сомневаешься между zen и обычным ядром, начни с обычного: разница заметна не всегда.
Одна команда:
sudo pacman -S linux-lts
Вместе с ядром подтянутся заголовки linux-lts-headers (они нужны для сборки модулей), а pacman-хук автоматически сгенерирует initramfs-образ. Initramfs содержит модули, нужные для монтирования корня: драйверы дисков, поддержку шифрования, файловые системы. Без него ядро не сможет найти корневой раздел. То же самое для остальных вариантов:
sudo pacman -S linux-hardened
sudo pacman -S linux-zen
Заголовки нужны не только для ручной сборки модулей. Если ты используешь DKMS-модули, например драйверы NVIDIA или модули VirtualBox, они пересобираются под каждое установленное ядро автоматически. Без заголовков DKMS не сможет собрать модуль для нового ядра, и оно не загрузится с нужным драйвером. Если заголовки не подтянулись сами, поставь их вручную:
sudo pacman -S linux-lts-headers
После установки проверь, что файлы на месте:
ls /boot
Ты увидишь vmlinuz-linux-lts и initramfs-linux-lts.img рядом с обычными. Какое ядро активно сейчас, покажет uname -r. Проверить, что пакет на месте, можно командой pacman -Q linux-lts.
sudo pacman -Syu обновляет все установленные ядра разом. Для каждого пакета срабатывает хук mkinitcpio, и генерируется свежий initramfs-образ. Пункты меню при этом не меняются: названия ядер те же, просто под ними теперь лежат новые файлы. Перегенерировать grub.cfg после обычного обновления не обязательно, но если ты менял параметры ядра или добавлял модули в mkinitcpio, сделай это.
Если какое-то ядро после обновления перестало загружаться, не паникуй. Выбери в меню другое ядро, загрузись и разберись со старым: откати пакет из кэша pacman или удали его. Именно для этого и держат запасное ядро.
GRUB не знает о ядрах сам по себе. Он читает конфиг, который генерирует grub-mkconfig, а тот сканирует /boot и находит все vmlinuz-*. После установки нового ядра перегенерируй конфиг:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Скрипт собирает конфиг из шаблонов в /etc/grub.d. Шаблон 10_linux сканирует /boot, находит все ядра и для каждого создаёт пункт меню.
В меню появятся пункты: Arch Linux, Arch Linux (linux-lts), Arch Linux (linux-hardened), Arch Linux (linux-zen). У каждого есть запасной вариант с fallback-initramfs. Запасной пункт пригодится, если основной initramfs-образ повреждён или не подходит под твоё железо. Fallback-образ собирается с минимальным набором модулей и часто спасает, когда основной не подходит. Если в меню появились дубли или старые пункты, значит, в /boot остались файлы удалённых ядер. Почисти их и перегенерируй конфиг. Если пункты не появились вовсе, разбор причин в статье «GRUB не видит ядра после обновления».
Самый простой способ: вручную. В меню GRUB стрелками выбери нужный пункт и нажми Enter. Выбор действует один раз, на следующую загрузку вернётся ядро по умолчанию.
Чтобы закрепить выбор, включи сохранение. Добавь в /etc/default/grub строку:
GRUB_DEFAULT=saved
и снова выполни:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Вместо saved можно прописать номер пункта или название прямо в GRUB_DEFAULT, например GRUB_DEFAULT="Arch Linux (linux-lts)". Тогда сохранение не нужно, но менять ядро придётся правкой файла и перегенерацией конфига.
Теперь работают две команды:
sudo grub-set-default "Arch Linux (linux-lts)" # постоянный выбор
sudo grub-reboot "Arch Linux (linux-lts)" # только следующая загрузка
grub-set-default меняет ядро по умолчанию надолго, grub-reboot только на один запуск. Название пункта должно точно совпадать с тем, что написано в grub.cfg. Вместо названия можно указывать номер пункта, начиная с нуля. Но названия надёжнее: номера сдвигаются, когда ты добавляешь или удаляешь ядра. Посмотреть текущее сохранённое значение можно командой grub-editenv list. Если добавить в /etc/default/grub строку GRUB_SAVEDEFAULT=true, любой пункт, выбранный вручную в меню, станет новым значением по умолчанию.
Если ядро больше не нужно, убери его вместе с заголовками:
sudo pacman -Rsn linux-lts
Флаг -s удалит зависимости, которые больше никому не нужны, в том числе linux-lts-headers. После этого снова перегенерируй конфиг GRUB, чтобы пункт исчез из меню.
Следи за местом на ESP. Каждое ядро с initramfs занимает больше 100 МБ, а раздел /boot на UEFI-системах часто маленький. Проверить размер легко:
du -sh /boot
Свободное место покажет df -h /boot. Если осталось меньше 50 МБ, пора чистить. На ESP в 512 МБ комфортно живут два-три ядра, на разделе в 1 ГБ можно держать все четыре.
Если раздел забивается, симптомы и лечение в статье «Корневой раздел заполняется».
Сценарии, которые встречаются чаще всего.
linux. Свежие драйверы, свежие функции, всё работает из коробки.linux-lts. Обновления предсказуемые, регрессии редки.linux-hardened.linux-zen.linux-lts, если свежее ядро глючит.linux или linux-lts. Главное, чтобы драйвер поддерживал версию ядра, а модуль пересобрался через DKMS после обновления.linux-lts. Обновления реже, риск регрессий ниже.linux. Под него всё тестируется в первую очередь.Главное правило: не держи все четыре ядра ради интереса. Каждое занимает место на ESP и добавляет пункты в меню. Два ядра закрывают почти все сценарии, три нужны только при специфических требованиях.
Оптимальная связка для большинства: linux как основное и linux-lts как запасное. Если свежее ядро после обновления откажется загружаться, ты выберешь в меню LTS-вариант и продолжишь работу, а потом разберёшься с проблемой. Если захочешь сменить загрузчик целиком, сравни варианты в статье «systemd-boot vs GRUB: второе ядро».
Да. Ограничение одно: место на ESP. Каждое ядро с initramfs занимает больше 100 МБ, поэтому на разделе в 512 МБ поместится три-четыре варианта. Лишнее лучше удалять, а не копить: каждый лишний пункт в меню только мешает.
Выполни sudo grub-mkconfig -o /boot/grub/grub.cfg и проверь, что файлы vmlinuz-* лежат в /boot. Если конфиг сгенерировался, а пункта нет, проверь, что пакет ядра установлен полностью: pacman -Q linux-lts.
Это то же ядро с дополнительными патчами безопасности: усиленная защита памяти, ограничения системных вызовов, дополнительные проверки. Цена: небольшое снижение производительности.
В меню GRUB выбери пункт с linux-lts (или другим старым ядром) и загрузись. После этого удали проблемное ядро через sudo pacman -Rsn linux и перегенерируй конфиг. Если и LTS не загружается, проблема не в ядре, а в параметрах загрузки или initramfs.
Да. Удали linux через sudo pacman -Rsn linux и перегенерируй конфиг GRUB. Но помни: свежие драйверы и функции ты получишь только с обычным ядром, LTS обновляется реже и живёт на старой версии.
Несколько ядер в меню GRUB работают как страховка, а не как лишняя сложность. linux даёт свежесть, linux-lts стабильность, linux-hardened безопасность, linux-zen отзывчивость. Установка сводится к pacman -S и grub-mkconfig, выбор при загрузке к паре нажатий, а удаление к pacman -Rsn. Держи linux и linux-lts рядом, и любая проблема с обновлением ядра перестанет быть проблемой.
Задай вопрос в чате — отвечаем быстро, по делу и без воды.
Комментарии