Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: протоколирование загрузки  (Прочитано 6109 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #15 : 02 Октября 2008, 01:08:24 »
Я вижу что пишется, об этом не трудно догадаться, я не могу понять, как это все засунуть в лог.

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #16 : 02 Октября 2008, 01:36:35 »
Что вы все набросились на человека?
Все правильно сказал badfiles... То, что отображается при загрузке, ни в какие логи не пишется, поскольку это просто вывод на экран текста от скриптов загрузочных

Да, кстати. Чтобы отключить графику при старте и "все узреть", надо в grub'e (/boot/grub/menu.lst) прописать nosplash (или убрать splash к черту=)
kernel          /boot/vmlinuz-2.6.22.9 root=UUID=... ro quiet nosplash
P.S. Пришла в голову мысль, как запихать (хотя бы часть) сообщений в лог-файлы=)
Надо в начале создать скрипт перенапрваления стандартного вывода...
а может, и не сработает...
« Последнее редактирование: 02 Октября 2008, 01:54:50 от Saha »

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #17 : 02 Октября 2008, 01:55:34 »
Ну раз оно пишется на консоль, значит можно это направить в файл?

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #18 : 02 Октября 2008, 02:00:51 »
не так все просто... поскольку пишут в консоль как бы разные проги...
приходит в голову пока только идея перенаправить /dev/stdout в файл (а такое возможно?)
или запускать начальную оболочку bash с перенаправленным выводом

что-то нашел...
http://www.opennet.ru/openforum/vsluhforumID9/7581.html#3

еще команда script может помочь (если ее запихать в самый первый загрузочный скрипт)

ага! вот, похоже, что нужно!
http://www.penguin-soft.com/penguin/man/8/bootlogd.html
Надо вставить скрипт /etc/init.d/bootlogd после выполнения /etc/rcS.d/S11mountdevsubfs.sh
у меня это будет выглядется так: ln -s /etc/init.d/bootlogd /etc/rcS.d/S12bootlogd
насколько я понял, чуть надо помучаться, чтобы корректно этот скрипт вставить=)
« Последнее редактирование: 02 Октября 2008, 02:35:35 от Saha »

Оффлайн MaSsoL

  • Активист
  • *
  • Сообщений: 519
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #19 : 02 Октября 2008, 02:58:17 »
...и снимать на видио:)
куда будут писаться логи,если фс не примонтирована?
In Console We Trust!

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #20 : 02 Октября 2008, 08:00:19 »
 Ядро загружается в RAM , так что ни каких вариантов со скриптами нет. Ядро пишет свои выводы  в т.к. Ringpuffer, который имеет определенный размер. Если он превышен, то данные переписываются. dmesg выдает потом данные из Kernel Ring Buffer. Есть вариант еше, поподробней посмотреть логи ядра

grep kernel /var/log/messages | less


« Последнее редактирование: 02 Октября 2008, 08:05:38 от mazut »
Патрикеич.
Под наблюдением.

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #21 : 02 Октября 2008, 12:39:25 »
Для тех, кто не верит, что можно с некоторого места писать все в файл, и поленился пойти по ссылке (http://www.penguin-soft.com/penguin/man/8/bootlogd.html), кратко привожу здесь описание bootlogd:
Цитировать
Bootlogd runs in the background and copies all strings sent to the /dev/console device to a logfile. If the logfile is not accessible, the messages will be buffered in-memory until it is.
Цитировать
Bootlogd works by redirecting the console output from the console device. It copies that output to the real console device and a logfile.
Из /etc/init.d/bootlogd:
Цитировать
Required-Start:    mountdevsubfs
Смотрим, что такое mountdevsubfs
Цитировать
# Short-Description: Mount special file systems under /dev.
# Description:       Mount the virtual filesystems the kernel provides
#                    that ordinarily live under the /dev filesystem.
так что практически сразу включается протоколирование загрузки=)

Оффлайн mazut

  • Забанен
  • Активист
  • *
  • Сообщений: 703
  • да, не заходи ты сюда!
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #22 : 02 Октября 2008, 12:47:11 »
Протокол загрузки после старта init. Об этом не спорил никто. А до старта init есть?

http://www.ibm.com/developerworks/ru/library/l-linuxboot/?S_TACT=105AGX99&S_CMP=GR01

С кортинками
« Последнее редактирование: 02 Октября 2008, 12:52:28 от mazut »
Патрикеич.
Под наблюдением.

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #23 : 02 Октября 2008, 13:41:45 »
Ну так до старта init никто и не пишет на консоль (практически=)

В общем, удалось мне запустить этот bootlogd...
Для поколений оставлю маленький хау-ту  ;)
Для начала надо установить пакет sysvinit, в котором сидит этот самый "демон"  (для Ubuntu 7.10) ;)
sudo apt-get install sysvinitдалее можно воспользоваться замечательной утилиткой BootUp-Manager (sudo apt-get install bum) и включить bootlogd и stop-bootlogd (последний нужен, ибо иначе этот демон всю жизнь будет протоколировать, а в файл /var/log/boot ничего не напишет).
Однако, BootUp-Manager прописывает старт bootlogd только на 2 ранлевеле, а было бы неплохо пораньше его включить.
Это делается просто - в BootUp-Manager выключаем bootlogd и создаем символическую ссылку такую:
sudo ln -s /etc/init.d/bootlogd /etc/rcS.d/S12bootlogdНомер 12 выбирался у меня исходя из того, чтобы bootlogd стартовал сразу после mountdevsubfs.sh, который у меня идет под номером 11

Ну вот, вроде, и все.
Еще есть файл  /etc/default/bootlogd, в котором я прописал так:
# Run bootlogd at startup ?
BOOTLOGD_ENABLE=Yes
Но он, вроде, ни на что не влияет (ибо, как сейчас обнаружил, у меня там опечатка, а все работает=)

После этого в файл /var/log/boot будут писаться сообщения начиная с таких:
Thu Oct  2 13:25:11 2008:  * Loading kernel modules...
Thu Oct  2 13:25:11 2008:  * Loading manual drivers...
Thu Oct  2 13:25:11 2008:    ...done.
Thu Oct  2 13:25:11 2008:  * Activating swap...
Thu Oct  2 13:25:11 2008:    ...done.
Thu Oct  2 13:25:11 2008:  * Checking root file system...
« Последнее редактирование: 02 Октября 2008, 14:30:29 от Saha »

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #24 : 02 Октября 2008, 14:16:48 »
The following packages will be REMOVED:
>  friendly-recovery startup-tasks system-services ubuntu-minimal upstart
>  upstart-compat-sysv upstart-logd
The following NEW packages will be installed:
  sysvinit

А этих не жалко? Они на что-нибудь влияют?

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #25 : 02 Октября 2008, 14:27:31 »
The following packages will be REMOVED:
>  friendly-recovery startup-tasks system-services ubuntu-minimal upstart
>  upstart-compat-sysv upstart-logd
The following NEW packages will be installed:
  sysvinit

А этих не жалко? Они на что-нибудь влияют?

не стоит сносить эти пакеты, я думаю=)
Хм, у меня Ubuntu 7.10, видимо, в 8.04 немного по-другому...
попробуй поискать bootlogd, во-первых, в своей системе
sudo locate -u
locate bootlogd
Должен быть в /sbin/
Во вторых, поищи в пакетах: aptitude search bootlogd
Скорее всего, bootlogd уже установлен

Похоже, в этом пакете:
initscripts

А вот фиг вам, скрипт есть, а самой програмки нет... кто составляет эти пакеты?=)

В общем, как-то надо установить sysvinit не удаляя другие пакеты... или просто скопировать
http://ru.archive.ubuntu.com/ubuntu/pool/main/s/sysvinit/sysvinit_2.86.ds1-14.1ubuntu45_amd64.deb
открыть его менеджером архивов и скопировать оттуда /sbin/bootlogd
« Последнее редактирование: 02 Октября 2008, 14:49:08 от Saha »

Оффлайн badfiles

  • Участник
  • *
  • Сообщений: 230
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #26 : 02 Октября 2008, 15:24:46 »
Рискнул, установил  sudo apt-get install sysvinit bum
При этом удалилось описанное выше....
Видимо, кто-то грамотный составляет эти пакеты, потому-то ничего не сломалось....
Грамотная вещь bum, там есть режим advanced, очень удобно.

Bootlogd поставил rcS-S12
stop-bootlogd rc2-S99

Теперь все вижу, очень рад ))

Оффлайн Saha

  • Активист
  • *
  • Сообщений: 517
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #27 : 02 Октября 2008, 21:19:14 »
и отлично, что все получилось!  :)
Правда, я бы все-таки просто скопировал bootlogd из пакета, на всяк. пож, вместо того, чтобы устанавливать пакет, удаляющий кучу других  :coolsmiley:

Оффлайн Wendellis

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: протоколирование загрузки
« Ответ #28 : 08 Февраля 2009, 09:44:22 »
Я вот тоже сначала поставил sysvinit, удалились эти пакеты.
Потом попытался перезагрузиться - вместо перезагрузки появилась страница приветствия, тоже самое при выключении. Вручную набрал reboot, появилось сообщение
timeout opening/writing control channel /dev/initctlВ общем, при установке sysvinit заменяются команды shutdown, reboot, halt, которые до этого были в пакете upstart-compat-sysv и работают они глючно. Лучше выковыривать bootlogd отдельно.
Кстати, BootUp-Manager почему-то не показывает скрипты с расширением sh.

 

Страница сгенерирована за 0.056 секунд. Запросов: 23.