При создании загрузочных дискет, первые немногие попытки часто не будут загружаться. Общий подход к созданию корневого диска - собрать компоненты из вашей существующей системы, и пробовать и получить основанную на дискете систему, когда она начнет показывает сообщения на консоли. Как только она начинает говорить с Вами, половина сражения выиграна, потому что Вы можете видеть, на что она жалуется, и Вы можете устранять индивидуальные проблемы, пока система не заработает гладко. Если система только зависает без объяснений, найти причину весьма трудно. Чтобы получить систему загружающуюся до состояния, когда она будет разговаривать с Вами, требуется присутствие нескольких компонентов и правильная конфигурация. Рекомендуемая процедура для исследования проблемы, когда система не разговаривает с Вами, следующая:
Kernel panic: VFS: Unable to mount root fs on XX:YYЭто частая проблема и может иметь несколько причин. Первая, проверьте устройство XX:YY по списку кодов устройства; это правильное корневое устройство? Если нет, Вы возможно не сделали
rdev -R
, или сделали это с неправильным образом файловой
системы. Если код устройства правильный, тогда тщательно проверьте скомпилирован ли
драйвер вашего устройства встроенным. Убедитесь, что поддержка дискеты, ramdisk и
ext2 файловой системы встроенная.
/bin
на вашей корневой дискете.
/lib
каталоге на жестком диске.
/dev
каталоге в
вашей существующей системе также существуют на вашей корневой файловой системе
дискеты, и что эти ссылки к устройствам, которые Вы включили в вашу корневую дискету.
В частности /dev/console
ссылка необходима во многих случаях.
/dev/tty1, /dev/null, /dev/zero,
/dev/mem, /dev/ram
и /dev/kmem
файлы.
Если эти общие аспекты были рассмотрены, есть несколько более специфических файлов для проверки:
init
включен как /sbin/init или
/bin/init. Удостоверьтесь, что установлен атрибут исполняемый.
ldd init
, чтобы проверить библиотеки init. Обычно это -
только libc.so
, но проверьте все равно. Удостоверитесь, что Вы включили
необходимые библиотеки и загрузчики.
ld.so
для a.out или ld-linux.so
для ELF.
getty
(или некоторой getty
-подобной программы, типа agetty
,
mgetty
или getty_ps
).
Дважды проверьте
еще раз inittab
на Вашем жестком диске.
Проверьте man страницы программы, которую Вы используете, чтобы удостовериться, что
они имеют смысл. inittab
- возможно хитростная часть, потому что синтаксис и
содержание зависит от используемой программы init
и характера системы.
Единственный способ заняться этим состоит в том, чтобы читать man страницы для
init
и inittab
и понять, что делает ваша существующая система, когда она
загружается. Удостоверьтесь, что /etc/inittab содержит запись
инициализации системы. Она должна содержать команду, для выполнения сценария
инициализации системы, который должен существовать.
init
, выполните ldd
на вашем getty
, чтобы
увидеть, что ей требуется, и удостоверьтесь, что необходимые библиотечные файлы и
загрузчики были включены в вашу корневую файловую систему.
bash
или
ash
) способную к выполнению всех ваших rc сценариев.
Если init
запустился, но Вы получаете сообщения:
Id xxx respawning too fast: disabled for 5 minutes
Это исходит от init
, обычно указывает, что getty
или login
умирает,
как только начинает выполняться.
Проверьте бинарники getty
и login
и зависимые библиотеки. Удостоверьтесь, ч
то содержимое /etc/inittab корректно. Если Вы получаете странные
сообщения от getty
, это может означать, что форма вызова в
/etc/inittab неправильна. Опции программ getty различны; говорят, что
даже разные версии agetty
имеют различные несовместимые формы вызова.
Если Вы получаете приглашение к входу и вводите правильный login, но система сразу запрашивает у Вас другое имя - проблема может быть с PAM или NSS. Смотри секцию PAM и NSS. Проблема может быть также в использовании вами скрытых паролей, и не скопированном /etc/shadow на ваш загрузочный диск.
Если Вы пытаетесь выполнять некоторые программы, типа df
, который находится на
вашем спасательном диске, но Вы получаете сообщение: df: not found
, проверьте
две вещи: ( 1) Удостоверьтесь, что каталог содержащий программу df
находится в
переменной PATH, и ( 2) удостоверьтесь, что у Вас есть библиотеки (и загрузчики),
которые нужны программам.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |