LINUX.ORG.RU
ФорумAdmin

Узнать какое ядро загружено

 


0

4

Привет. Допустим, на диске есть один root с Ubuntu раздел и несколько ext4 разделов с данными, но на каждом из этих разделов может находится ядро. Какое именно ядро (с какого именно раздела) грузить прописано в grub.cfg. Как не используя файл grub.cfg понять, какое именно ядро загружено сейчас в системе? Версии ядра у всех ядер одинаковые.

Версии ядра у всех ядер одинаковые.

Если версии ядер одинаковые, то какая разница?

vlb ★★★
()

Как не используя файл grub.cfg понять, какое именно ядро загружено сейчас в системе?

$ cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=4357c7e0-9e4b-473e-8980-2fe439ff6129 ro zswap.enabled=1 quiet
Deleted
()
Ответ на: комментарий от vlb

Может у него разный набор модулей/опций в них

Deleted
()
Ответ на: комментарий от former_anonymous

Одинаковые версии == одинаковые модули, потому что оные загружаются из /lib/modules/$(uname -r).

Как уже сказали выше, grep -Eo 'BOOT_IMAGE=[^ ]*' /proc/cmdline.

intelfx ★★★★★
()
Ответ на: комментарий от intelfx

Одинаковые версии == одинаковые модули

Да. всё верно. Но вкомпилированные опции у ядер могут быть разными.

BOOT_IMAGE

Я посмотрел, у меня в /proc/cmdline нет BOOT_IMAGE

former_anonymous ★★★
() автор топика
Последнее исправление: former_anonymous (всего исправлений: 1)
Ответ на: комментарий от intelfx

потому что оные загружаются из /lib/modules/$(uname -r).

Это если они были скомпилированы как модули, а если как часть ядра то нет.

Deleted
()
Ответ на: комментарий от former_anonymous

ну linuz - это в debian, у тебя может иначе зваться, там должна найтись та-же CMDLINE

grep linuz /var/log/dmesg
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=4357c7e0-9e4b-473e-8980-2fe439ff6129 ro zswap.enabled=1 quiet
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.16.0-4-amd64 root=UUID=4357c7e0-9e4b-473e-8980-2fe439ff6129 ro zswap.enabled=1 quiet

Загружаешь точно не через новомодные uefi?

Deleted
()
Последнее исправление: log4tmp (всего исправлений: 1)
Ответ на: комментарий от Deleted

в dmesg нет упоминаний о [vm]linuz, только версия загруженного ядра в самом начале

Загружаешь точно не через новомодные uefi?

нет, стандартный bios/mbr

former_anonymous ★★★
() автор топика
Последнее исправление: former_anonymous (всего исправлений: 1)
$ zcat /proc/config.gz > /tmp/cur.linux.cfg && \
for cfg in /boot/config*; do \
diff /tmp/cur.linux.cfg $cfg > /dev/null && echo $cfg ; \
done
/boot/config
/boot/config-4.3.0-gento

как-то так, чтоль? только вместо /boot/config* список конфигов в разных разделах

anTaRes ★★★★
()
Ответ на: комментарий от former_anonymous

:) ну хз

$ t="$(cat /proc/sys/kernel/version | grep -o -E '[0-9]{1} [0-9]{2}:[0-9]{2}')"; ls -l /boot/Syst* | grep "$t"
lrwxrwxrwx 1 root root      23 ноя  8 16:42 /boot/System.map -> System.map-4.3.0-gentoo
-rw-r--r-- 1 root root 1872331 ноя  8 16:42 /boot/System.map-4.3.0-gentoo
lrwxrwxrwx 1 root root      27 ноя  8 16:42 /boot/System.map.old -> System.map-4.3.0-gentoo.old

anTaRes ★★★★
()

Никак. Ядро может быть загружено с отсутствующего устройства или из астрала (прямая загрузка ядра гипервизором)

no-dashi ★★★★★
()
Ответ на: комментарий от former_anonymous

Нахрена держать несколько по-разному собранных копий одного ядра?

anonymous
()
Ответ на: комментарий от no-dashi

Ядро может быть загружено с отсутствующего устройства

у меня все устройства присутствуют, и у меня есть доступ ко всем возможным ядрам чтобы проверить их

former_anonymous ★★★
() автор топика
Последнее исправление: former_anonymous (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.