[Решено] Случайно обновил ядро
Модератор: Модераторы разделов
[Решено] Случайно обновил ядро
Что-то я используя slackpkg + ядро обновил и kernel-modules, не сохранив старое, у меня есть варианты это разрулить?
При загрузке generic ядра оно пишет что нет модулей и не грузится, а при загрузке huge пишет про модули,но загружается.
Вот это я прочитал уже после.
Или проще систему переставить чем это решить? Теперь буду знать что стоит в blacklist добавлять.
При загрузке generic ядра оно пишет что нет модулей и не грузится, а при загрузке huge пишет про модули,но загружается.
Вот это я прочитал уже после.
Или проще систему переставить чем это решить? Теперь буду знать что стоит в blacklist добавлять.
Последний раз редактировалось UnixNoob 28.10.2020 22:43, всего редактировалось 1 раз.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
- Hephaestus
- Сообщения: 3729
- Статус: Многоуважаемый джинн...
- ОС: Slackware64-14.1/14.2
- Контактная информация:
Re: Случайно обновил ядро
Смотря, что там получилось.
Если пакеты встали поверх существующих (как обновление),
то отрубить нафиг slackpkg+, использовать оф. репу и "вертать всё взад".
В принципе, может получиться.
Смотрите журналы установки пакетов: кто там куда.
Зачем? Использование нескольких разных реп - это занятие само по себе рискованное,
а в слаке особенно, потому что зависимости не отслеживаются.
Может быть, конечно, slackpkg+ и умеет что-то на тему зависимостей,
но в случае чего - с него взятки гладки, расхлебывать Вам.
Re: Случайно обновил ядро
Я его и не обвиняю,я просто не знал, что ядро возможно обновлять slackpkg. Я думал эта процедура исключительно "ручная". А оказалось что она должна быть ручной и нельзя использовать slackpkg для этого,но по умолчанию исключения не добавлены.Hephaestus писал: ↑27.10.2020 15:25Зачем? Использование нескольких разных реп - это занятие само по себе рискованное,
а в слаке особенно, потому что зависимости не отслеживаются.
Может быть, конечно, slackpkg+ и умеет что-то на тему зависимостей,
но в случае чего - с него взятки гладки, расхлебывать Вам.
Использую его т.к ставил версию Alien Live DVD с KDE, мне показалось что так проще будет поддерживать DE в рабочем состоянии. Чем добавлять исключения в slackpkg и каждый раз скачивать и устанавливать их скриптом.
Он ругается на отсутствие модулей ядра под эту версию и на невозможность смонтировать корень.
Это же всё путь изучения и набивания шишек, я захотел попробовать Plazma, а ей нужна current-версия, stable по словам автора он удалит скоро, т.к она давно не обновлялась.
Я видел инструкцию по сборке ядра из исходников и про обновление системы, но не нашел касательно нового ядра в готовом виде.
Возможно мне требуется что-то такое, из файла Upgrade.txt.
Код: Выделить всё
/usr/share/mkinitrd/mkinitrd_command_generator.sh -k 4.4.14 | bash
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Re: Случайно обновил ядро
Давайте сперва выясним, что произошло на самом деле.
1) сообщение об отсутствии модулей с generic ядром какой именно версии (по выводу ядра)?
2) установлено huge ядро какой версии (по выводу ядра или "uname -r")?
3) пакеты каких ядер/модулей установлены?
ls -t /var/log/packages/kernel-*
4) какой используется загрузчик?
5) какие репо подключены в slackpkg+?
grep ^MIRRORPLUS /etc/slackpkg/slackpkgplus.conf
-- не "должна быть ручной и нельзя", а "рекомендуется вручную" -- в таком варианте меньше шанс на ошибку и чуть-чуть проще исправление последствий.
http://www.slackware.ru/forum/viewtopic.php?f=8&t=668#p4136
1) сообщение об отсутствии модулей с generic ядром какой именно версии (по выводу ядра)?
2) установлено huge ядро какой версии (по выводу ядра или "uname -r")?
3) пакеты каких ядер/модулей установлены?
ls -t /var/log/packages/kernel-*
4) какой используется загрузчик?
5) какие репо подключены в slackpkg+?
grep ^MIRRORPLUS /etc/slackpkg/slackpkgplus.conf
Добавлено (19:01):
Это не совсем так:
-- не "должна быть ручной и нельзя", а "рекомендуется вручную" -- в таком варианте меньше шанс на ошибку и чуть-чуть проще исправление последствий.
Добавлено (19:15):
Про то, как в Slackware устроена пакетная часть с ядрами/модулями, можно почитать там:http://www.slackware.ru/forum/viewtopic.php?f=8&t=668#p4136
Re: Случайно обновил ядро
Код: Выделить всё
~$ uname -r
5.4.72
/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
Оба ядра обновились, до этого было 5.4.69.
При этом о проблемах с модулями пишут оба ядра, но huge систему в итоге загружает, а generic не может смонтировать корень, в комплект к модулям.
Код: Выделить всё
$ 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
У меня grub2 for Windows ( я на slackware.su спрашивал и вы мне уже там отвечали ) Я кстати не пойму какой в итоге из них более рабочий, .ru или .su.
Код: Выделить всё
$ 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/
Заглянул в initrd.gz, там указано ядро 5.4.69, видимо требуется это:bormant писал(а): ↑27.10.2020 18:53Про то, как в Slackware устроена пакетная часть с ядрами/модулями, можно почитать там:
http://www.slackware.ru/forum/viewtopic.php?f=8&t=668#p4136
Код: Выделить всё
# cd /boot
# mkinitrd -c -k 5.4.72 -r /dev/sdd2 -f ext4 -m ext4
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Re: Случайно обновил ядро
1) про загрузку generic
Вывод в целом сделан правильный, generic ядро не может грузиться без initrd, содержащего соответствующие ядру модули корневой ФС и, при необходимости, оборудования, обслуживающего устройство, на котором эта корневая ФС находится.
Чтобы каждый раз не печатать горстку параметров, рекомендую один раз поправить в /etc/mkinitrd.conf следующие строки:
Тогда после обновления ядра достаточно выполнять
2) про ситуацию в целом
Картинка выглядит как дОлжно (пакет с модулями нужной версии установлен), но ругань про модули присутствует:
а) о какой именно ругани идет речь,
б) du -s /lib/modules/5.4.72/
в) df -h /; df -i /
Поскольку причин тому возможно более одной, не будем играть в Вангу и сперва посмотрим на "ругань про модули".
Вывод в целом сделан правильный, 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
Картинка выглядит как дОлжно (пакет с модулями нужной версии установлен), но ругань про модули присутствует:
Поэтому неплохо бы увидеть,
а) о какой именно ругани идет речь,
б) du -s /lib/modules/5.4.72/
в) df -h /; df -i /
Поскольку причин тому возможно более одной, не будем играть в Вангу и сперва посмотрим на "ругань про модули".
Re: Случайно обновил ядро
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% /
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"
Re: Случайно обновил ядро
То есть, обновление было штатным, модули загружаемого ядра на корневом разделе, фактически присутствуют, huge ядро на них фразой "No kernel modules found for Linux 5.4.72" не ругается; все дело только в необновлённом initrd. generic ядро не видит модулей ровно потому, что запущено еще со временным корнем из существующего initrd, в котором модулей для его версии еще нет, по той же причине не может смонтировать и реальный корень.UnixNoob писал: ↑28.10.2020 16:22Generic пишет следующее, а 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/
Выполните п. (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/
Re: Случайно обновил ядро
Все заработало, оказалось все не так страшно. Но в исключения я все-таки добавлю ядро и его модули, благо пока система свежая,а то бы еще какие модули поехали.
Да я не великий любитель всего свежего, просто показалось не плохой идеей после установки обновиться, пока ничего нет и особо не сломается.bormant писал(а): ↑28.10.2020 19:50PS. Чем больше поставите в систему самостоятельно собранного ПО, не входящего в дистрибутив Slackware current, тем менее вероятность того, что есть смысл обновлять current (дабы не поломать зависимости собранного стороннего ПО и не иметь удовольствия пересобирать его).
Поэтому буду теперь более внимательно читать и изучать предлагаемые списки обновления.
Спасибо, законспектирую все это.bormant писал(а): ↑28.10.2020 19:50можно использовать сценарий chk3ppdeps оттуда:
https://www.linuxquestions.org/questions/slackware-14/[ann]-chk3ppdeps-2019-1128-beta-4175665158/
Спасибо вам за ответы и за руководства/статьи по Slackware.
"Однажды один очень мудрый человек… ничего не сказал. Времена были опасные, да и собеседники ненадёжные"