Что происходит между rc.S и rc.M в Slackware 10.1 во время загрузки? Пытаюсь загрузить ядро 3.x (пробовали 3.4 и 3.10) на этом компьютере, и оно зависает сразу после завершения выполнения rc.S. Ядра 2.6 загружаются нормально.
rc.M не запускается, так как "Going multiuser" никогда не отображается на консоли.
#!/bin/sh
#
# rc.M This file is executed by init(8) when the system is being
# initialized for one of the "multi user" run levels (i.e.
# levels 1 through 6). It usually does mounting of file
# systems et al.
#
# Version: @(#)/etc/rc.d/rc.M 2.23 Wed Feb 26 19:20:58 PST 2003
#
# Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
# Heavily modified by Patrick Volkerding <volkerdi@slackware.com>
#
# Tell the viewers what's going to happen.
echo "Going multiuser..."
Использование inittab Slackware по умолчанию (комментарии удалены):
id:3:initdefault:
si:S:sysinit:/etc/rc.d/rc.S
su:1S:wait:/etc/rc.d/rc.K
rc:2345:wait:/etc/rc.d/rc.M
ca::ctrlaltdel:/sbin/shutdown -t5 -r now
l0:0:wait:/etc/rc.d/rc.0
l6:6:wait:/etc/rc.d/rc.6
pf::powerfail:/sbin/genpowerfail start
pg::powerokwait:/sbin/genpowerfail stop
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
c2:1235:respawn:/sbin/agetty 38400 tty2 linux
c3:1235:respawn:/sbin/agetty 38400 tty3 linux
c4:1235:respawn:/sbin/agetty 38400 tty4 linux
c5:1235:respawn:/sbin/agetty 38400 tty5 linux
c6:12345:respawn:/sbin/agetty 38400 tty6 linux
x1:4:wait:/etc/rc.d/rc.4
Зависает сразу после этого:
Using /etc/random-seed to initialize /dev/urandom.
Я закомментировал этот фрагмент кода в rc.S, и он все еще зависает, поэтому я предполагаю, что проблема в другом месте, но я понятия не имею, что происходит сразу после rc.S.
После rc.S, init запустит rc.M, если уровень запуска 2,3,4 или 5, и rc.K, если уровень запуска 1 ... вы можете попытаться запустить в одиночном режиме (например: уровень запуска 1), чтобы увидеть если он загружается
Slackware 10.1 устарела и может быть недостаточно готова для запуска ядра 3.0 ... но вы можете попробовать отладить его лучше, это может быть какая-то отсутствующая функция в ядре или какая-то утилита, которую вам нужно обновить
отредактируйте /etc/rc.d/rc.S и добавьте во вторую строку
set -x
Это сделает скрипт подробным и расскажет, что он выполняет. Если дойдет до конца, попробуйте добавить это в другие скрипты. после этого вам нужно будет прочитать вывод и, возможно, добавить тестовый код перед неисправной частью и / или закомментировать его (в зависимости от того, что происходит)