На днях, по рабочим задачам, мне нужно было выявить, какая версия ядра фиксит проблему. Тут, конечно же, пришлось вспомнить, как можно установить ядро, посмотреть его версию, запустить систему с целевым образом.
Ядро Linux - это один из самых важных компонентов операционной системы - буквально ее база и основа всех основ.
Самый распространенный способ посмотреть версию ядра - это команда uname. Она выводит некоторую системную информацию, в том числе, о ядре.
Чтобы исключить всю информацию, кроме нас интересующей, можно использовать флаг '-r':
$ uname -r
6.8.0-41-generic
Но это далеко не единственный способ справиться с задачей. Мы можем посмотреть строку запуска Grub с помощью команды:
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-6.8.0-41-generic
Тут в параметре BOOT_IMAGE мы можем видеть полный путь к образу, который был загружен.
В той же файловой системе proc есть файл version, где хранится версия ядра:
$ cat /proc/version
Linux version 6.8.0-41-generic
Дальше, чтобы получить ту же информацию мы можем посмотреть лог dmesg, в самом начале которого отображается версия ядра:
$ sudo dmesg | grep Linux
Linux version 6.8.0-41-generic
Ага, а как можно посмотреть общий список образов, которые установлены в системе?
Тут тоже есть несколько способов. Во-первых, можно использовать пакетный менеджер:
$ sudo dpkg -l | grep linux-headers | grep ii | awk '{print $3}'
$ sudo rpm -q kernel
Во-вторых, можно посмотреть содержимое папки boot и выловить от туда все образы ядра с именем vmlinuz:
$ ls /boot | grep vmlinuz
vmlinuz
vmlinuz-6.8.0-36-generic
vmlinuz-6.8.0-41-generic
В-третьих, используя тот же boot, а именно файл "/boot/grub/grub.cfg", можно посмотреть на все доступные версии:
$ grep 'menuentry \|submenu ' /boot/grub/grub.cfg | cut -f2 -d "'"
Ubuntu, with Linux 6.8.0-41-generic
Ubuntu, with Linux 6.8.0-41-generic (recovery mode)
Эта команда ищет строки, которые содержат слова menuentry либо submenu и передает их команде cat на вывод, которая, в свою очередь, предварительно прогоняет их через фильтр по разделителю (-f2 -d "'").
Linux++ | IT-Образование
