LINUX.ORG.RU

[gentoo][ведро] kernel panic: no init found

 ,


0

1

Собирал тут себе новую машинку, и после первого ребута получил сабж.
grub.conf: http://pastie.org/2066961
fstab: http://pastie.org/2066964
blkid: http://pastie.org/2066967
Всё страшное либо закомментировано, либо не относится к /. Пробовал указывать real_root=/dev/sda2, дописывать к ядру init=/sbin/init (наличествует) - ноль эмоций. При настройке ядра заметил, что из раздела File Systems пропали все обычные FS, такие как ext2/3/4, jfs, xfs, zfs, hfs. Похоже, как если бы у ядра действительно не было драйвера к ext4, но оно на это не жалуется.

Deleted

>При настройке ядра заметил, что из раздела File Systems пропали все обычные FS

«При сексе с девушкой обнаружил что-то торчащее из моего паха»

Хоть-бы конфиг ядра выложил, для приличия.

uzbl
()
Ответ на: комментарий от uzbl

При сексе с девушкой обнаружил что-то торчащее из моего паха


Такая же фигня.

amorpher ★★★★★
()

real_root судя по /usr/src/linux/Documentation/kernel-parameters.txt не существует. подозреваю, что это параметр для инита в initramfs, которого у вас нету. тащемта монтировать по uuid просто так не выйдет.

x0r ★★★★★
()

>Похоже, как если бы у ядра действительно не было драйвера к ext4, но оно на это не жалуется.

Правильно, потому что он будет жаловаться на отсутствие init. Или initrd? А что будет если init=/bin/sh?

skyline
()
Ответ на: комментарий от uzbl

Конфуций сказал: «Скажи мне, какие опции тебя интересуют, и я их погрепаю».
Но завтра, сегодня доступа к машинке уже нет.

Deleted
()
Ответ на: комментарий от HTaeD

> Зачем real_root, когда нет initrd?
Затем что в опциях к ядру root= нужно только для initrd. У меня нетбук работает без initrd и там real_root и всё работает.

Deleted
()
Ответ на: комментарий от x0r

>подозреваю, что это параметр для инита в initramfs, которого у вас нету.
см. выше.

тащемта монтировать по uuid просто так не выйдет.

На вышеупомянутом нетбуке монтируется как раз по real_root=UUID=…

Deleted
()
Ответ на: комментарий от Deleted

>Затем что в опциях к ядру root= нужно только для initrd.

4.2!

$ grep root /usr/src/linux/Documentation/kernel-parameters.txt

   root=      [KNL] Root filesystem


Выдыхай уже!

uzbl
()
Ответ на: комментарий от Deleted

Я вот всегда говорил, каждого первого попавшегося гентушника нужно гасить чем потяжелее, для очистки генофонда.

anonymous
()
Ответ на: комментарий от skyline

Фигня будет. До меня, кажется, дошло. За наличие файловых систем в конфигураторе отвечает BLOCK=Y, в 2.6.38-r1, за которым я сижу сейчас, оно стоит железно и выключить нельзя. А в r6 на той машине, block layer мне что-то вообще не попадался. Странно. Завтра проверю, если так, отмечу, как решённую.

Deleted
()
Ответ на: комментарий от uzbl

Но в генте, собранной для нетбука у меня не стоит этой опции, и всё работает. Торсионные поля?

Полетели уже!

Deleted
()

Да, много советов, но ни одного дельного походу, хотя во все не вчитывался.

При указании корневого раздела по метке раздела (метка фс) или идентификатору ФС нужен initrd.

Для генераии initrd проще всего воспользоваться genkernel

# genkernel initramfs --disklabel --no-ramdisk-modules

Данная команда соберет только initrd для текущего ядра, ядро указывается символической ссылкой /usr/src/linux -> linux-2.6.*.

Данные о UUID или LABEL берутся из devfs, а она должна быть куда-то смонтирована, поэтому нужен минимальный корень (мини система), что и предоставляет initrd.

Информация берется отсюда:

/dev/disk/by-uuid

/dev/disk/by-label

В данном случае будет собран минимальный initrd со стартовым скриптом init, набором приложений busybox, с поддержкой UUID и LABEL фс.

kostik87 ★★★★★
()
Ответ на: комментарий от uzbl

> Просто там нет отдельного раздела для /boot
Таки есть.

real_root это вообще не параметр ядра.

А я где-то утверждал обратное?

Deleted
()
Ответ на: комментарий от Deleted

Сейчас проверил, очевидно, ядро считает по-умолчанию за rootfs то устр-во, кот-е было корнем при его (ядра) сборке. Это очень большое колдунство, не сработает если ядро собрано на другой машине и тп, но формально ты прав (хотя так и не смог объяснить в чём дело).

uzbl
()
Ответ на: комментарий от Deleted

ну хоть бы документацию читали, прежде, чем спорить...

x0r ★★★★★
()
Ответ на: комментарий от Lumi

Спасибо, но проблема была не в этом.

1. В 2.6.38-r6 поддержку блочных устройств (BLOCK) внезапно(!) можно отключать, у меня она оказалась отключена, соответственно поддержка ext2/3/4, ATA/PATA/SATA и SCSI устройств — тоже. Это и вызывало ошибку

Kernel panic - not syncing: No init found. Try passing init= option to kernel.
Если кто будет ставить на USB, проверьте USB_STORAGE. Без поддержки SCSI в ядре для SATA винта загрузка была невозможна в принципе. На root=/dev/sda2 выдавало
VFS: Cannot open root device "sda2" or unknown-block(8,2) 
ls -l /dev/sda2 в livecd кстати, показывало, что действительно /dev/sda — это блочное устройство номер 8.
brw-rw---- 1 root disk 8, 2 Jun 15 10:44 /dev/sda2
Спрашивается, как? В grub/device.map это hd(0).

2. Кроме того, в 2.6.38-r6 необходимо включать DEVTMPFS и DEVTMPFS_MOUNT, иначе выползет

init-early.sh used greatest stack depth: 4488 bytes left
Опции DEVTMPFS см. в Device drivers --> Generic options.

Раз набралась пара странностей между двумя ревизиями, и в топике уже достаточно ключевых слов для гугла, решил выложить всё, авось кому при обновлении пригодится.

Deleted
()
Ответ на: комментарий от tensai_cirno

Без initrd можно монтировать root fs по real_root с UUID? Можно.
С initrd нужно использовать и root и real_root? Нужно.

Вот и получается, что если тоже хотите монтировать root fs по UUID, а именно этот случай мы рассматриваем в данном топике, извольте указывать real_root. А параметр root не нужен за ненадобностью.

Deleted
()
Ответ на: комментарий от Deleted

WUT. Всегда передавалось ядру без initrd root=

С инитрд можно вообще ничего не использовать, у меня пустые опции на дженту были, только fastboot и quiet. Initrd был самосборный.

tensai_cirno ★★★★★
()
Ответ на: комментарий от uzbl

> не сработает если ядро собрано на другой машине
4.2
Я первый раз собирал нетбук, подцепив жестак к другой машине, то бишь десктопу, и всё работает. Не получится наверно, в случае кросс-компиляции через distcc.

Deleted
()
Ответ на: комментарий от Deleted

> В 2.6.38-r6 поддержку блочных устройств (BLOCK) внезапно(!) можно отключать...

Понятно. Обычные проблемы конфигурации.

Lumi ★★★★★
()
Ответ на: комментарий от Deleted

Ничего подобного, если номер рутового раздела будет другой — оно не загрузится

uzbl
()
Ответ на: комментарий от uzbl

Обсуждение сабжа закончилось

Можно. Если вы так и не научились этого делать, нечего тыкать правилами где попало.

Deleted
()
Ответ на: комментарий от uzbl

И что? Не всякий костыль попадает в документацию. Или вы по-прежнему считаете, что у меня ядро монтирует корневую ФС торсионными полями?

Deleted
()
Ответ на: комментарий от uzbl

>Не всякий костыль попадает в документацию

Ну нагрепай мне в сорцах ядра обработку параметра real_root, время пошло.

Если ты не понял - можно убрать вообще все параметры, но с учётом того, что блочное устр-во корня осталось тем же, например, у меня 8:1.

uzbl
()
Ответ на: комментарий от Deleted

Я даже не представляю, какая женская логика нужна, чтобы связать эти посты взаимоотрицанием.

Если ты не понял - это не монтирование по uuid, а твой параметр real_root «уходит вникуда».

uzbl
()
Ответ на: комментарий от uzbl

> Ну нагрепай
Зачем, если ты в следующем посте мне всё доходчиво и услужливо объяснишь?

можно убрать вообще все параметры, но с учётом того, что блочное устр-во корня осталось тем же, например, у меня 8:1.

Не факт. Блочное устройство может сохранить номер, но это не гарантирует, что на него можно смонтировать корневую.

Deleted
()
Ответ на: комментарий от Deleted

>Блочное устройство может сохранить номер, но это не гарантирует, что на него можно смонтировать корневую.

Blabla, к предмету обсуждения это отношения не имеет.

>Зачем, если ты в следующем посте мне всё доходчиво и услужливо объяснишь?

Об этом написали ещё здесь, но вот тебе нужно разжевать на уровне ясельной группы ;)

uzbl
()
Ответ на: комментарий от Deleted

Не распарсил, советую завязывать с в-вами, они разрушают твой моск :3

uzbl
()

выдержка из genkernel::linuxrc

Дабы всякие неумные личности не захламляли выдачу гугла:

CMDLINE=`cat /proc/cmdline`
# Scan CMDLINE for any specified real_root= or cdroot arguments
FAKE_ROOT=''
REAL_ROOTFLAGS=''
ROOTFSTYPE='auto'
CRYPT_SILENT=0
for x in ${CMDLINE}
do
        case "${x}" in
                real_root\=*)      # Вот оно, блеать!
                        REAL_ROOT=`parse_opt "${x}"`
                ;;
                root\=*)
                        FAKE_ROOT=`parse_opt "${x}"`
                ;;

uzbl
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.