Отказ, загружающий мое пользовательское ядро

Я скомпилировал и установил пользовательское использование ядра Linux пакет ядра Debian. Все пошло хорошо: файлы .deb были созданы и пользовательский vmlinuz, и initrd.img были созданы в начальной загрузке/, и/boot/grub/menu.lst были изменены автоматически. Но после того, как я загружаюсь в пользовательское ядро, вот то, что происходит:

После некоторого прогресса пишет следующее:

Begin: Waiting for root file system

и ожидает некоторое время. И затем печать это:

Gave up waiting for root device. Common problems:
    - Boot args (cat /proc/cmdline)
        - Check root delay= (did the system wait long enough?)
        - Check root= (did the system wait for the right device?)
    - Missing modules (cat /proc/modules; ls /dev)

ALERT! doesn't exist. Dropping to a shell!

/bin/sh
(initramfs)

и переходы для окружения в RAM. Когда я попробовал mount /dev/hda6 /tmp/hda6, действительно существует № hda6. hda6, раздел, выполняющий мой Debian и включая пользовательский initrd.img.

Помогите мне парни!

1
задан 09.09.2013, 15:40

2 ответа

Эта проблема происходит когда root= строка в Ваших параметрах загрузки ядра не соответствует аппаратным средствам.

Вероятно, Ваше новое ядро не дает Ваше устройство загрузки /dev/hda узел устройства. Существует несколько возможностей.

  1. Может случиться так, что Ваше устройство теперь /dev/hdb или некоторые такой.

  2. Может случиться так, что Ваше ядро теперь использует более новый драйвер для устройства, и Ваше устройство загрузки теперь /dev/sda или некоторые такой. /dev/hd{a..z} устройства используют более старый драйвер PATA. Это стало распространенным для устройств SATA, но к более старым интерфейсам PATA можно получить доступ этот путь также. (Ubuntu, например, использует это по умолчанию, за исключением оптических дисков PATA.)

Самый легкий способ зафиксировать его состоит в том, чтобы загрузить ядро, ожидать его для отбрасывания Вас к оболочке и проверке /dev/disk/by-uuid или /dev/disk/by-label выяснять правильное устройство. Затем можно смонтировать устройство, исправить root= аргумент в Вашей конфигурации Личинки и перезагрузка.

Рассмотрите использование UUID или маркировки раздела в Вашем root= аргумент вместо определенного устройства; этим путем изменения драйвера ядра, которые переименовывают Ваше устройство, не будут влиять на начальную загрузку. Можно найти UUID и маркировки с tune2fs -l <device>, и можно добавить маркировку с sudo tune2fs -L <label> <device>.

Вот root= аргумент каждый путь (не отмечают кавычек):

root=/dev/sda6
root=UUID=94b1e7d5-9fc5-4f44-b5b1-c776afc808d4
root=LABEL=debian-root-volume-label
3
ответ дан 12.12.2019, 09:24

Первая вещь, которую необходимо проверить, делает ядро, даже распознают аппаратные средства.

  • Во-первых, проверьте тип своего жесткого диска и удостоверьтесь, что он включен в конфигурации ядра. Это наиболее вероятно причина Вашей проблемы.
  • Я не помню, существует ли a dmesg программа включала в значение по умолчанию Debian initramfs, но можно проверить выходной ввод отладки ядра dmesg | less. Затем попытайтесь найти строки, которые связаны с Вашим жестким диском. Кроме того, полезно знать поставщика или по крайней мере интерфейс диска.
  • Наконец, можно удалить quiet параметр загрузки от командной строки ядра, если кто-либо и затем просто прокручивает вывод отладки с ключами Shift+PgUp/PgDn, ищущими ту же информацию как в предыдущем абзаце.

Также это будет, вероятно, хорошая идея предоставить некоторую информацию о жестком диске в связанном с HD вопросе.

1
ответ дан 12.12.2019, 09:24

Теги

Похожие вопросы