[Решено] Случайно обновил ядро

SLAX, Deep Style, ZenWalk

Модератор: Модераторы разделов

Ответить
Аватара пользователя
UnixNoob
Сообщения: 1378
ОС: Slackware

[Решено] Случайно обновил ядро

Сообщение UnixNoob »

Что-то я используя slackpkg + ядро обновил и kernel-modules, не сохранив старое, у меня есть варианты это разрулить?

При загрузке generic ядра оно пишет что нет модулей и не грузится, а при загрузке huge пишет про модули,но загружается.
Вот это я прочитал уже после.
Или проще систему переставить чем это решить? Теперь буду знать что стоит в blacklist добавлять.
Последний раз редактировалось UnixNoob 28.10.2020 22:43, всего редактировалось 1 раз.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: Случайно обновил ядро

Сообщение Hephaestus »

UnixNoob писал:
27.10.2020 14:34
у меня есть варианты это разрулить?
Смотря, что там получилось.
Если пакеты встали поверх существующих (как обновление),
то отрубить нафиг slackpkg+, использовать оф. репу и "вертать всё взад".
В принципе, может получиться.
Смотрите журналы установки пакетов: кто там куда.
UnixNoob писал:
27.10.2020 14:34
используя slackpkg +
Зачем? Использование нескольких разных реп - это занятие само по себе рискованное,
а в слаке особенно, потому что зависимости не отслеживаются.
Может быть, конечно, slackpkg+ и умеет что-то на тему зависимостей,
но в случае чего - с него взятки гладки, расхлебывать Вам.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1378
ОС: Slackware

Re: Случайно обновил ядро

Сообщение UnixNoob »

Hephaestus писал:
27.10.2020 15:25
Зачем? Использование нескольких разных реп - это занятие само по себе рискованное,
а в слаке особенно, потому что зависимости не отслеживаются.
Может быть, конечно, slackpkg+ и умеет что-то на тему зависимостей,
но в случае чего - с него взятки гладки, расхлебывать Вам.
Я его и не обвиняю,я просто не знал, что ядро возможно обновлять slackpkg. Я думал эта процедура исключительно "ручная". А оказалось что она должна быть ручной и нельзя использовать slackpkg для этого,но по умолчанию исключения не добавлены.
Использую его т.к ставил версию Alien Live DVD с KDE, мне показалось что так проще будет поддерживать DE в рабочем состоянии. Чем добавлять исключения в slackpkg и каждый раз скачивать и устанавливать их скриптом.
Hephaestus писал:
27.10.2020 15:25
Смотря, что там получилось.
Он ругается на отсутствие модулей ядра под эту версию и на невозможность смонтировать корень.

Это же всё путь изучения и набивания шишек, я захотел попробовать Plazma, а ей нужна current-версия, stable по словам автора он удалит скоро, т.к она давно не обновлялась.
Я видел инструкцию по сборке ядра из исходников и про обновление системы, но не нашел касательно нового ядра в готовом виде.
Возможно мне требуется что-то такое, из файла Upgrade.txt.

Код: Выделить всё

/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.4.14 | bash
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Случайно обновил ядро

Сообщение bormant »

Давайте сперва выясним, что произошло на самом деле.
1) сообщение об отсутствии модулей с generic ядром какой именно версии (по выводу ядра)?
2) установлено huge ядро какой версии (по выводу ядра или "uname -r")?
3) пакеты каких ядер/модулей установлены?
ls -t /var/log/packages/kernel-*
4) какой используется загрузчик?

5) какие репо подключены в slackpkg+?
grep ^MIRRORPLUS /etc/slackpkg/slackpkgplus.conf
Добавлено (19:01):
UnixNoob писал:
27.10.2020 16:37
оказалось что она должна быть ручной и нельзя использовать slackpkg для этого, но по умолчанию исключения не добавлены.
Это не совсем так:
-- не "должна быть ручной и нельзя", а "рекомендуется вручную" -- в таком варианте меньше шанс на ошибку и чуть-чуть проще исправление последствий.
Добавлено (19:15):
Про то, как в Slackware устроена пакетная часть с ядрами/модулями, можно почитать там:
http://www.slackware.ru/forum/viewtopic.php?f=8&t=668#p4136
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1378
ОС: Slackware

Re: Случайно обновил ядро

Сообщение UnixNoob »

bormant писал(а):
27.10.2020 18:53
Давайте сперва выясним, что произошло на самом деле.
1) сообщение об отсутствии модулей с generic ядром какой именно версии (по выводу ядра)?

Код: Выделить всё

~$ uname -r
5.4.72
На всякий случай положение дел в /boot
/boot

Код: Выделить всё

ls -la /boot
итого 36806
drwxr-xr-x  5 root root     1024 Oct 25 17:50 ./
drwxr-xr-x 22 root root     4096 Oct 27 14:46 ../
lrwxrwxrwx  1 root root       38 Oct  5 18:39 README.initrd -> /usr/doc/mkinitrd-1.4.11/README.initrd
lrwxrwxrwx  1 root root       22 Oct 25 17:50 System.map -> System.map-huge-5.4.72
-rw-r--r--  1 root root  3883431 Oct 17 22:39 System.map-generic-5.4.72
-rw-r--r--  1 root root  5336027 Oct 17 22:38 System.map-huge-5.4.72
-rw-r--r--  1 root root      136 Oct 25 19:32 boot_message.txt
lrwxrwxrwx  1 root root       22 Oct 25 17:50 config -> config-huge-5.4.72.x64
-rw-r--r--  1 root root   217626 Oct 17 21:39 config-generic-5.4.72.x64
-rw-r--r--  1 root root   217626 Oct 17 21:39 config-huge-5.4.72.x64
-rwxr-xr-x  1 root root   216219 Jun 12  2018 elilo-ia32.efi*
-rwxr-xr-x  1 root root   238531 Jun 12  2018 elilo-x86_64.efi*
drwxr-xr-x  3 root root     1024 Jul 29 21:49 grub/
drwxr-xr-x 14 root root     1024 Oct 25 19:32 initrd-tree/
-rw-r--r--  1 root root 10707779 Oct 25 19:32 initrd.gz
-rw-r--r--  1 root root    22578 May 18 02:35 inside.bmp
-rw-r--r--  1 root root      432 May 18 02:35 inside.dat
drwx------  2 root root    12288 Oct 25 17:45 lost+found/
-rw-r--r--  1 root root     6878 May 18 02:35 onlyblue.bmp
-rw-r--r--  1 root root      424 May 18 02:35 onlyblue.dat
-rw-r--r--  1 root root    15634 Mar 27  2011 slack.bmp
-rw-r--r--  1 root root    33192 May 18 02:35 tuxlogo.bmp
-rw-r--r--  1 root root      423 May 18 02:35 tuxlogo.dat
lrwxrwxrwx  1 root root       19 Oct 25 17:50 vmlinuz -> vmlinuz-huge-5.4.72
lrwxrwxrwx  1 root root       22 Oct 25 17:50 vmlinuz-generic -> vmlinuz-generic-5.4.72
-rw-r--r--  1 root root  6568320 Oct 17 22:39 vmlinuz-generic-5.4.72
lrwxrwxrwx  1 root root       19 Oct 25 17:50 vmlinuz-huge -> vmlinuz-huge-5.4.72
-rw-r--r--  1 root root 10037632 Oct 17 22:38 vmlinuz-huge-5.4.72

bormant писал(а):
27.10.2020 18:53
2) установлено huge ядро какой версии (по выводу ядра или "uname -r")?
Оба ядра обновились, до этого было 5.4.69.
При этом о проблемах с модулями пишут оба ядра, но huge систему в итоге загружает, а generic не может смонтировать корень, в комплект к модулям.
bormant писал(а):
27.10.2020 18:53
3) пакеты каких ядер/модулей установлены?
ls -t /var/log/packages/kernel-*

Код: Выделить всё

$ ls -t /var/log/packages/kernel-*
/var/log/packages/kernel-source-5.4.72-noarch-1
/var/log/packages/kernel-modules-5.4.72-x86_64-1
/var/log/packages/kernel-huge-5.4.72-x86_64-1
/var/log/packages/kernel-headers-5.4.72-x86-1
/var/log/packages/kernel-generic-5.4.72-x86_64-1
/var/log/packages/kernel-firmware-20201023_dae4b4c-noarch-1
bormant писал(а):
27.10.2020 18:53
4) какой используется загрузчик?
У меня grub2 for Windows ( я на slackware.su спрашивал и вы мне уже там отвечали :) ) Я кстати не пойму какой в итоге из них более рабочий, .ru или .su.
bormant писал(а):
27.10.2020 18:53
5) какие репо подключены в slackpkg+?
grep ^MIRRORPLUS /etc/slackpkg/slackpkgplus.conf

Код: Выделить всё

$ grep ^MIRRORPLUS /etc/slackpkg/slackpkgplus.conf 
MIRRORPLUS['slackpkgplus']=http://slakfinder.org/slackpkg+/
MIRRORPLUS['restricted']=http://slackware.nl/people/alien/restricted_sbrepos/current/x86_64/
MIRRORPLUS['alienbob']=http://slackware.nl/people/alien/sbrepos/current/x86_64/
MIRRORPLUS['mate']=http://slackware.uk/msb/current/latest/x86_64/ 
MIRRORPLUS['ktown']=http://slackware.nl/alien-kde/current/testing/x86_64/
bormant писал(а):
27.10.2020 18:53
Про то, как в Slackware устроена пакетная часть с ядрами/модулями, можно почитать там:
http://www.slackware.ru/forum/viewtopic.php?f=8&t=668#p4136
Заглянул в initrd.gz, там указано ядро 5.4.69, видимо требуется это:

Код: Выделить всё

# cd /boot
 # mkinitrd -c -k 5.4.72 -r /dev/sdd2 -f ext4 -m ext4
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Случайно обновил ядро

Сообщение bormant »

1) про загрузку generic
Вывод в целом сделан правильный, generic ядро не может грузиться без initrd, содержащего соответствующие ядру модули корневой ФС и, при необходимости, оборудования, обслуживающего устройство, на котором эта корневая ФС находится.

Чтобы каждый раз не печатать горстку параметров, рекомендую один раз поправить в /etc/mkinitrd.conf следующие строки:

Код: Выделить всё

KERNEL_VERSION=$(readlink /boot/vmlinuz-generic | cut -d- -f3)"
MODULE_LIST="ext4"
ROOTDEV="/dev/sdd2"
ROOTFS="ext4"
Тогда после обновления ядра достаточно выполнять

Код: Выделить всё

# mkinitrd -c -F
2) про ситуацию в целом
Картинка выглядит как дОлжно (пакет с модулями нужной версии установлен), но ругань про модули присутствует:
UnixNoob писал:
27.10.2020 22:25
При этом о проблемах с модулями пишут оба ядра, но huge систему в итоге загружает
Поэтому неплохо бы увидеть,
а) о какой именно ругани идет речь,
б) du -s /lib/modules/5.4.72/
в) df -h /; df -i /

Поскольку причин тому возможно более одной, не будем играть в Вангу и сперва посмотрим на "ругань про модули".
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1378
ОС: Slackware

Re: Случайно обновил ядро

Сообщение UnixNoob »

bormant писал(а):
28.10.2020 08:44
Поэтому неплохо бы увидеть,
а) о какой именно ругани идет речь,
б) du -s /lib/modules/5.4.72/
в) df -h /; df -i /

Поскольку причин тому возможно более одной, не будем играть в Вангу и сперва посмотрим на "ругань про модули".
Generic пишет следующее, а huge первую строчку из этого, но в dmesg не отображается
a:

Код: Выделить всё

random:fast init done
No kernel modules found for Linux 5.4.72
mount: mounting /dev/sdd2 on /mnt failed: No such device.
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type 'exit' when things are done.
б:

Код: Выделить всё

~$ du -s /lib/modules/5.4.72/
263780  /lib/modules/5.4.72/
в:

Код: Выделить всё

df -h / ;df -i /
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/sdd2           34G          15G   18G           45% /
Файловая система  Iнодов IИспользовано IСвободно IИспользовано% Cмонтировано в
/dev/sdd2        2228224        598931   1629293            27% /

"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Аватара пользователя
bormant
Сообщения: 1354

Re: Случайно обновил ядро

Сообщение bormant »

UnixNoob писал:
28.10.2020 16:22
Generic пишет следующее, а huge первую строчку из этого

Код: Выделить всё

random:fast init done
No kernel modules found for Linux 5.4.72
mount: mounting /dev/sdd2 on /mnt failed: No such device.
ERROR: No /sbin/init found on rootdev (or not mounted). Trouble ahead. You can try to fix it. Type 'exit' when things are done.

Код: Выделить всё

~$ du -s /lib/modules/5.4.72/
263780  /lib/modules/5.4.72/
То есть, обновление было штатным, модули загружаемого ядра на корневом разделе, фактически присутствуют, huge ядро на них фразой "No kernel modules found for Linux 5.4.72" не ругается; все дело только в необновлённом initrd. generic ядро не видит модулей ровно потому, что запущено еще со временным корнем из существующего initrd, в котором модулей для его версии еще нет, по той же причине не может смонтировать и реальный корень.

Выполните п. (1) из моего предыдущего сообщения (про mkinitrd), перезагрузитесь. О результатах отпишите.

Аналогичного эффекта можно достичь и другими способами:
1) /usr/share/mkinitrd/mkinitrd_command_generator.sh | bash
если же говорить о моменте непосредственно после обновления пакетов с ядрами и до перезагрузки, то с явным указанием версии установленного, но еще не запущенного при загрузке ядра:
/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 5.4.72 | bash
2) mkinitrd -c -k 5.4.72 -m ext4 -r /dev/sdd2 -f ext4

Но они не очень удобны тем, что нужно предварительно посмотреть на версию свежеустановленного ядра, чтобы указать ее в параметрах и не опечататься, равно как и в других параметрах.
Универсальное "mkinitrd -c -F" в этой ситуации мне нравится больше ;-)
Добавлено (20:01):
PS. Чем больше поставите в систему самостоятельно собранного ПО, не входящего в дистрибутив Slackware current, тем менее вероятность того, что есть смысл обновлять current (дабы не поломать зависимости собранного стороннего ПО и не иметь удовольствия пересобирать его).

В качестве индикатора того, что скорее всего будет сломано при очередном
slackpkg update; slackpkg upgrade-all
можно использовать сценарий chk3ppdeps оттуда:
https://www.linuxquestions.org/questions/slackware-14/[ann]-chk3ppdeps-2019-1128-beta-4175665158/
Спасибо сказали:
Аватара пользователя
UnixNoob
Сообщения: 1378
ОС: Slackware

Re: Случайно обновил ядро

Сообщение UnixNoob »

bormant писал(а):
28.10.2020 19:50
Выполните п. (1) из моего предыдущего сообщения (про mkinitrd), перезагрузитесь. О результатах отпишите.
Все заработало, оказалось все не так страшно. Но в исключения я все-таки добавлю ядро и его модули, благо пока система свежая,а то бы еще какие модули поехали.
bormant писал(а):
28.10.2020 19:50
PS. Чем больше поставите в систему самостоятельно собранного ПО, не входящего в дистрибутив Slackware current, тем менее вероятность того, что есть смысл обновлять current (дабы не поломать зависимости собранного стороннего ПО и не иметь удовольствия пересобирать его).
Да я не великий любитель всего свежего, просто показалось не плохой идеей после установки обновиться, пока ничего нет и особо не сломается. :laugh:
Поэтому буду теперь более внимательно читать и изучать предлагаемые списки обновления.
bormant писал(а):
28.10.2020 19:50
можно использовать сценарий chk3ppdeps оттуда:
https://www.linuxquestions.org/questions/slackware-14/[ann]-chk3ppdeps-2019-1128-beta-4175665158/
Спасибо, законспектирую все это.
Спасибо вам за ответы и за руководства/статьи по Slackware.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Спасибо сказали:
Ответить