Как определить версию Linux и версию ядра
TL;DR
Коротко: узнайте, какую сборку Linux и какое ядро установлены, чтобы понять, применимы ли для вашей системы обновления и исправления безопасности. Используйте команды lsb_release, cat /etc/os-release, hostnamectl, uname, dmesg и просмотр файлов в /etc и /proc — для большинства дистрибутивов хотя бы одна команда вернёт нужную информацию.
Быстрые ссылки
- Rolling и point-релизы
- Команда lsb_release
- Файл /etc/os-release
- Файл /etc/issue
- Команда hostnamectl
- Команда uname
- Псевдо-файл /proc/version
- Команда dmesg
- Несколько способов получить ту же информацию

Введение
Знание версии дистрибутива Linux и версии ядра помогает принимать решения по обновлениям, совместимости и безопасности. Разные дистрибутивы имеют разные модели выпуска (rolling vs point release), и это влияет на частоту получения патчей. В статье собраны надёжные методы получения информации о системе, применимые в большинстве рабочих сценариев.
Важно: некоторые команды или файлы доступны только при определённой конфигурации (например, hostnamectl работает только на systemd-системах). Если одна команда не доступна, попробуйте другую.
Rolling и point-релизы
Rolling-release дистрибутивы (например, Arch, Manjaro, openSUSE Tumbleweed) обновляют пакеты по мере их появления. Point-release дистрибутивы (например, Debian, семейство Ubuntu, Fedora) выпускают крупные обновления периодически — обычно несколько раз в год. В экстренных случаях дистрибутивы point-release всё же могут выпускать срочные патчи.
Почему это важно
- У rolling-систем чаще новые пакеты и исправления, но выше шанс внезапных несовместимостей.
- У point-релизов стабильность и предсказуемые тестовые окна, но задержка с доставкой свежих версий.
Вне зависимости от модели распространения, система, установленная на диске, со временем меняется: обновления, патчи и установленные пакеты могут отличаться от первоначальной установки. Поэтому регулярная проверка версии дистрибутива и ядра необходима.
Команда lsb_release
Команда lsb_release показывает данные Linux Standard Base и информацию о дистрибутиве. На многих дистрибутивах она установлена по умолчанию (например, Ubuntu, Manjaro). На других её может потребоваться установить.
Установка на Fedora (если пакет отсутствует):
sudo dnf install redhat-lsb-coreПосле установки можно просмотреть все доступные поля:
lsb_release -aЕсли нужна только краткая строка с описанием дистрибутива:
lsb_release -dПримеры вывода (терминал):



Примечание: если вы не можете устанавливать пакеты (ограничения на рабочем компьютере), используйте альтернативные методы ниже.
Файл /etc/os-release
Файл /etc/os-release содержит структурированную информацию о системе: имя дистрибутива, версию, идентификатор и полезные ссылки проекта. Содержимое удобно просматривать через cat или less:
cat /etc/os-release
Типичные поля и их значение:
- Name: название дистрибутива (если не задано, может быть просто “Linux”).
- Version: версия ОС.
- ID: короткий идентификатор дистрибутива (нижний регистр).
- ID_LIKE: если дистрибутив основан на другом, здесь указано имя родителя.
- Pretty_Name: человекочитаемая строка с именем и версией.
- Version_ID: числовой идентификатор версии.
- Home_URL, Support_URL, Bug_Report_URL, Privacy_Policy_URL: полезные ссылки проекта.
- Version_Codename: кодовое имя версии ( если есть ).
- Ubuntu_Codename: специфично для Ubuntu — внутреннее кодовое имя.
Во многих системах существует несколько файлов с окончанием “release” в /etc. Их можно перечислить:
ls /etc/*releaseИ просмотреть сразу все:
cat /etc/*release
Иногда в выводе встречаются дополнительные поля DISTRIBUTION_*, повторяющие уже известную информацию.
Файл /etc/issue
Файл /etc/issue содержит короткую строку, которая может отображаться на экране входа в систему. Входные менеджеры могут игнорировать этот файл, но сам файл доступен для чтения:
cat /etc/issueЭтот файл хорош для быстрой проверки и для сценариев, где не установлены утилиты lsb.
Команда hostnamectl
Команда hostnamectl показывает системную информацию и рабочую конфигурацию хоста. Она доступна на системах, использующих systemd.
hostnamectl
Важный вывод: секция с операционной системой и версией ядра. Это удобный способ получить сразу имя хоста, OS и информацию о ядре.
Важно: hostnamectl работает только при наличии systemd. На системах без systemd используйте uname или /proc/version.
Команда uname
Команда uname показывает детали ядра. Без опций она выводит минимальную информацию, но с опцией -a вы получите всё доступное:
uname -aЕсли нужно только несколько полей (машина, версия ядра, имя ядра):
uname -mrsПример вывода команды uname:

Используйте uname, когда systemd недоступен, или когда вам нужна только информация по ядру.
Псевдо-файл /proc/version
Файл /proc/version — это виртуальный файл, созданный ядром при загрузке; в нём указаны данные о сборке, компиляторе и версиях ядра. Доступ к файлу возможен как к обычному файлу:
cat /proc/versionЭто удобный вариант, если вам нужно узнать подробности о сборке ядра (например, GCC-версию, параметры сборки и т. п.).
Команда dmesg
Команда dmesg читает кольцевой буфер сообщений ядра. В буфере первым часто отображается сообщение о версии ядра и строка идентификации “Linux”. Для фильтрации используйте grep:
sudo dmesg | grep Linux
dmesg полезен, если вы хотите увидеть сообщения, связанные с ядром, особенно после загрузки или при диагностике аппаратных проблем.
Несколько способов получить ту же информацию
Если один из методов недоступен (отсутствует пакет, нет прав или systemd не используется), альтернативные методы наверняка сработают. Всегда держите под рукой несколько подходов.
Быстрая шпаргалка — команды и файлы
- Проверьте дистрибутив и версию:
- lsb_release -a
- cat /etc/os-release
- cat /etc/*release
- cat /etc/issue
- Проверьте ядро:
- uname -a
- uname -mrs
- cat /proc/version
- hostnamectl (только systemd)
- sudo dmesg | grep Linux
Чек-листы по ролям
Администратор системы
- Проверить текущую версию дистрибутива и ядра (lsb_release, /etc/os-release, uname).
- Сопоставить версию ядра с базой уязвимостей/патчей в вашей организации.
- Проверить наличие доступных обновлений и политики обновлений (rolling vs point).
- Планировать тестирование обновлений в тестовой среде перед развёртыванием.
Инженер поддержки/инцидентов
- Быстро получить сведения о системе с помощью uname -a и cat /etc/os-release.
- Зафиксировать версии в тикете инцидента.
- Проверить журналы загрузки через dmesg для выявления ошибок, связанных с ядром.
Разработчик приложений
- Проверить совместимость приложения с версией libc и ядра.
- Убедиться, что системные вызовы и модули ядра совместимы с целевой версией.
Шаблон для отчёта о системе (копировать и заполнять)
| Поле | Значение |
|---|---|
| Дистрибутив (Pretty_Name) | <заполните> |
| Version_ID | <заполните> |
| Kernel (uname -r) | <заполните> |
| uname -a | <вставьте вывод> |
| /etc/os-release | <вставьте вывод> |
| /proc/version | <вставьте вывод> |
Дерево решений для выбора команды
flowchart TD
A[Нужна информация о системе?] --> B{Имеется ли systemd?}
B -- Да --> C[hostnamectl]
B -- Нет --> D{Можно ли установить пакеты?}
D -- Да --> E[Установить lsb_release и выполнить lsb_release -a]
D -- Нет --> F[cat /etc/os-release или cat /etc/*release]
C --> G{Нужна только версия ядра?}
G -- Да --> H[uname -r]
G -- Нет --> I[Просмотреть полный вывод hostnamectl]
F --> J[Если нужно — cat /proc/version или sudo dmesg | grep Linux]Критерии приёмки
- Должна быть получена строка с именем дистрибутива и номером версии (через lsb_release или /etc/os-release).
- Должна быть получена строка с версией ядра (через uname -r или /proc/version).
- Для production-серверов результаты сохраняются в системе учёта (тикет, CMDB) перед обновлением.
Тестовые случаи
- Система с systemd
- Ожидаемый результат: hostnamectl выводит OS и Kernel.
- Система без systemd, lsb_release доступен
- Ожидаемый результат: lsb_release -a возвращает данные дистрибутива.
- Система без systemd и без lsb_release
- Ожидаемый результат: cat /etc/os-release и uname -r дают необходимые данные.
- Ограниченные права (нет sudo)
- Ожидаемый результат: чтение /etc/os-release и uname -a выполняется без прав root.
Когда методы не сработают и как поступать
- Если /etc/os-release отсутствует или повреждён: проверьте остальные файлы в /etc (например, *release), или используйте uname и dmesg. В контейнеризированных средах файл может отражать хост-систему.
- Если lsb_release возвращает мало информации: используйте cat /etc/os-release и доп. команды.
- Если uname показывает необычную строку: сравните с выводом /proc/version для подтверждения.
Краткая методология проверки (мини-метод)
- Сначала попробуйте команды низкого уровня: uname -a и cat /proc/version.
- Если нужно подробное имя дистрибутива — cat /etc/os-release.
- Для человекочитаемой строки и стандартного формата — lsb_release -d (при наличии).
- Для автоматизации: парсите /etc/os-release (KEY=VALUE формат) в скрипте.
Терминология — 1 строка
- Дистрибутив: набор инструментов, пакетов и конфигураций, объединённых в ОС (например, Ubuntu, Fedora).
- Rolling-release: модель распространения, где пакеты постоянно обновляются.
- Point-release: модель релизов с отдельными крупными выпусками.
- Ядро (kernel): сердцевина ОС, управляющая аппаратными ресурсами.
Советы по безопасности и приватности
- При распространении результатов по инцидентам удаляйте из отчёта чувствительные данные (IP, ключи, уникальные идентификаторы).
- Не отправляйте целиком вывод dmesg или /proc/version в общедоступные баг-трекеры без редактирования — логи могут содержать информацию о железе и конфигурации.
Вывод и рекомендации
- Всегда сохраняйте вывод команд с информацией о версии в системах учёта перед обновлением.
- В тестовой среде проверяйте новые ядра и пакеты на совместимость.
- Используйте несколько способов сбора данных, чтобы компенсировать ограничения окружения.
Ключевые выводы
- Для получения информации о дистрибутиве используйте lsb_release и /etc/os-release.
- Для информации о ядре используйте uname и /proc/version; hostnamectl удобен на systemd.
- Всегда фиксируйте версии перед обновлением и учитывайте модель релизов дистрибутива.
Похожие материалы
Gmail не получает письма — быстрое решение
Умный дом: одно приложение для всех устройств
MetaMask не работает — как быстро исправить
Исправить Access denied при запуске gpedit.msc
Topgrade — обновление Linux одной командой