Я скомпилировал и установил пользовательское использование ядра 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.
Помогите мне парни!
Эта проблема происходит когда root=
строка в Ваших параметрах загрузки ядра не соответствует аппаратным средствам.
Вероятно, Ваше новое ядро не дает Ваше устройство загрузки /dev/hda
узел устройства. Существует несколько возможностей.
Может случиться так, что Ваше устройство теперь /dev/hdb
или некоторые такой.
Может случиться так, что Ваше ядро теперь использует более новый драйвер для устройства, и Ваше устройство загрузки теперь /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
Первая вещь, которую необходимо проверить, делает ядро, даже распознают аппаратные средства.
dmesg
программа включала в значение по умолчанию Debian initramfs, но можно проверить выходной ввод отладки ядра dmesg | less
. Затем попытайтесь найти строки, которые связаны с Вашим жестким диском. Кроме того, полезно знать поставщика или по крайней мере интерфейс диска.quiet
параметр загрузки от командной строки ядра, если кто-либо и затем просто прокручивает вывод отладки с ключами Shift+PgUp/PgDn, ищущими ту же информацию как в предыдущем абзаце.Также это будет, вероятно, хорошая идея предоставить некоторую информацию о жестком диске в связанном с HD вопросе.