Перейти на главную   
  helloworld.ru - документация и книги по программированию  
helloworld.ru - документация и книги по программированию
    главная     хостинг    
Поиск по сайту:  
Смотрите также
Языки программирования
C#
MS Visual C++
Borland C++
C++ Builder
Visual Basic
Quick Basic
Turbo Pascal
Delphi
JavaScript
Java
PHP
Perl
Assembler
AutoLisp
Fortran
Python
1C

Интернет-технологии
HTML
VRML
HTTP
CGI
FTP
Proxy
DNS
протоколы TCP/IP
Apache

Web-дизайн
HTML
Дизайн
VRML
PhotoShop
Cookie
CGI
SSI
CSS
ASP
PHP
Perl

Программирование игр
DirectDraw
DirectSound
Direct3D
OpenGL
3D-графика
Графика под DOS

Алгоритмы
Численные методы
Обработка данных

Сис. программирование
Драйверы

Базы данных
MySQL
SQL

Другое

Хостинг


Друзья
demaker.ru
Реклама

Лучший хостинг. Аренда серверов




helloworld.ru

Linux Bootdisk HOWTO

7. Поиск неисправностей, или Агония Поражения.

При создании загрузочных дискет, первые немногие попытки часто не будут загружаться. Общий подход к созданию корневого диска - собрать компоненты из вашей существующей системы, и пробовать и получить основаную на дискете систему, когда она начнет показывает сообщения на консоли. Как только она начинает говорить с Вами, половина сражения выиграна, потому что Вы можете видеть, на что она жалуется, и Вы можете устранять индивидуальные проблемы, пока система не заработает гладко. Если система только зависает без объяснений, найти причину весьма трудно. Чтобы получить систему загружающуюся до состояния, когда она будет разговаривать с Вами, требуется присутствовие нескольких компонентов и правильная конфигурация. Рекомендуемая процедура для исследования проблемы, когда система не разговаривает с Вами, следующая:

  • Проверьте, что корневой диск фактически содержит каталоги, которые Вы думаете. Достаточно просто скопировать неправильно, чтобы Вы получили что-то вроде /rootdisk/bin вместо /bin на вашей корневой дискете.

  • Проверьте наличие /lib/libc.so так с той же самой ссылкой, как и в вашем /lib каталоге на жестком диске.

  • Проверьте, что любые символические ссылки в вашем /dev каталоге в вашей существующей системе также существуют на вашей корневой файловой системе дискеты, и что эти ссылки к устройствам, которые Вы включили в вашу корневую дискету. В частности /dev/console ссылка необходима во многих случаях.

  • Проверьте, что Вы включили /dev/tty1, /dev/null, /dev/zero, /dev/mem, /dev/ram и /dev/kmem файлы.

  • Проверьте конфигурацию ядра - поддержка всех ресурсов, требуемых до точки входа в систему должна быть встроенная, не модулями. Так поддержка ramdisk и ext2 должна быть встроена.

  • Проверьте правильность установок ядра для вашего корневого устройства и ramdisk.

    Если эти общие аспекты были рассмотрены, есть несколько более специфических файлов для проверки:

    1. Удостоверитесь, что init включен как /sbin/init или /bin/init. Удостоверьтесь, что установлен атрибут исполняемый.

    2. Выполните ldd init, чтобы проверить библиотеки init. Обычно это - только libc.so, но проверьте все равно. Удостоверитесь, что Вы включили необходимые библиотеки и загрузчики.

    3. Удостоверитесь, что Вы имеете правильный загрузчик для ваших библиотек --- ld.so для a.out или ld-linux.so для ELF.

    4. Проверьте /etc/inittab на вашей bootdisk файловой системе вызовов getty (или некоторой getty-подобной программы, типа agetty, mgetty или getty_ps). Проверьте man страницы программы, которую Вы используете, чтобы удостовериться, что они имеют смысл. inittab - возможно хитростная часть, потому что синтаксис и содержание зависит от используемой программы init и характера системы. Единственый способ заняться этим состоит в том, чтобы читать man страницы для init и inittab и понять точно, что ваша существующая система делает, когда она загружается. Удостоверитьтесь, что /etc/inittab имеет запись инициализации системы. Она должна содержать команду, для выполнения сценария инициализации системы, который должен существовать.

    5. Как с init, выполните ldd на вашем getty, чтобы видеть то, что требуется, и удостоверьтесь, что необходимые библиотечные файлы и загрузчики были включены в вашу корневую файловую систему.

    6. Убедитесь, что Вы включили программу оболочки (например, bash или ash) способную к выполнению всех ваших rc сценариев.

    7. Если у Вас есть /etc/ld.so.cache файлом на вашем спасательном диске, пересоздайте его.

    Если init запустился, но Вы получаете сообщения:

     
       Id xxx respawning too fast: disabled for 5 minutes
    
    Это исходит от init, обычно указывает, что getty или login умирает, как только начинает выполнять программы и зависимые библиотеки. Удостоверитесь, что вызовы в /etc/inittab правильны. Если Вы получаете странные сообщения от getty, это может означать, что форма вызова в /etc/inittab неправильна. Опции программ getty изменяются; даже различные версии agetty, как сообщают, имеют различные несовместимые формы вызова.

    Если Вы получаете приглашение к входу и вводите правильный login, но система сразу запрашивает у Вас другое имя - проблема может быть с PAM или NSS. Смотри секцию "PAM и NSS". Проблема может быть также в использовании вами скрытых паролей, и нескопированном /etc/shadow на ваш загрузочный диск.

    Если Вы пытаетесь выполнять некоторые программы, типа df, который находится на вашем спасательном диске, но Вы получаете сообщение: df: not found, проверьте две вещи: ( 1) Удостоверьтесь, что каталог содержащий команду df находится в переменной PATH, и ( 2) удостоверьтесь, что у Вас есть библиотеки (и загрузчики), которые нужны программам.


  • [ Назад | Оглавление | Далее ]









    helloworld.ru © 2001-2021
    Все права защищены