Введение / Зачем это нужно
Знание точной версии ядра Linux необходимо при установке проприетарных драйверов, настройке контейнеров или поиске решений для аппаратных конфликтов. Разработчики софта часто указывают минимальные требования к ядру (например, 5.10+ для поддержки Btrfs-фич или новейших Wi-Fi модулей). Без этих данных установка драйверов dkms или обновление пакетов безопасности может завершиться ошибкой совместимости. Этот гайд покажет, как получить информацию за несколько секунд без установки дополнительных утилит.
Требования / Подготовка
- Доступ к эмулятору терминала (GNOME Terminal, Konsole, xterm и др.).
- Права обычного пользователя достаточно. Повышенные привилегии (
sudo) потребуются только для одного из методов. - Статья протестирована на дистрибутивах с ядрами серии 4.x, 5.x и 6.x. Синтаксис команд универсален.
Шаг 1: Используйте команду uname
Самый быстрый и стандартный способ — утилита uname. Она запрашивает системные вызовы ядра и возвращает их в читаемом виде.
uname -r
Команда выведет только номер релиза, например 6.8.0-45-generic. Этого достаточно для поиска драйверов или проверки требований ПО.
💡 Совет: Если нужно увидеть архитектуру процессора и полное имя хоста, выполните
uname -a. Для проверки только архитектуры используйтеuname -m.
Шаг 2: Проверьте файл /proc/version
Псевдофайловая система /proc хранит метаданные работающей ОС в реальном времени. Чтение этого файла покажет не только версию, но и информацию о компиляторе, который использовался при сборке ядра.
cat /proc/version
Вывод будет содержать строку вида Linux version 6.5.0-41-generic (buildd@lcy02-amd64-010) (gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0, GNU ld (GNU Binutils for Ubuntu) 2.41) #41-Ubuntu SMP PREEMPT_DYNAMIC. Первые цифры после version — ваша текущая сборка.
Шаг 3: Воспользуйтесь утилитой hostnamectl
В современных дистрибутивах с systemd эта утилита собирает и отображает системные метаданные. Она удобна для администраторов серверов, так как выводит данные в структурированном виде.
hostnamectl | grep Kernel
Результат будет выглядеть так: Kernel: Linux 6.5.0-41-generic. Метод не требует парсинга строк и сразу отдает чистое значение.
Шаг 4: Извлеките данные из dmesg (альтернативный метод)
Если стандартные утилиты по какой-то причине отсутствуют в минималистичной сборке, можно обратиться к журналу загрузки ядра.
sudo dmesg | grep "Linux version"
⚠️ Важно: Для чтения буфера
dmesgв новых дистрибутивах могут потребоваться праваroot. Строка выводит сообщение, которое ядро печатает при инициализации системы, поэтому оно точно соответствует загруженному релизу.
Проверка результата
Сравните полученный номер с документацией устанавливаемого ПО. Обратите внимание на цифры до первого дефиса (например, 6.5.0). Это основная ветка ядра. Если она совпадает с требованиями разработчика, вы можете безопасно приступать к компиляции модулей или обновлению пакетов. Для архивирования информации перенаправьте вывод в файл: uname -r > ~/kernel_version.txt.
Возможные проблемы
command not found: Убедитесь, что используете стандартныйbashилиzsh. В экстремально урезанных средах (например, BusyBox) команды могут иметь ограниченный синтаксис. В этом случае используйтеcat /proc/version.- Несоответствие версии в контейнере: В Docker или LXC
uname -rпокажет версию ядра хостовой машины, так как контейнеры используют общее ядро ОС. Это архитектурное ограничение, а не ошибка. - Ошибка доступа к dmesg: Если
dmesgвозвращаетPermission denied, система ограничила чтение буфера ядра для обычных пользователей. Запустите команду сsudoили используйтеjournalctl -k | head -n 20.