LINUX.ORG.RU

[initrd] [Debian] Не загружается пересобранное ядро

 ,


0

0

Использую Debian squeeze, ядро 2.6.30, файловая система ReiserFS

Решил обновится и попутно пересобрать ядро, скачал тарбол с 2.6.32 из репов сида. скопировал конфиг от старого, сделал make oldconfig, ответил на пару новых вопросов, скомпилировал, поставил. при загрузке начались проблемы, сначало выдал это

Kernel panic - not syncing:VFS:Unable to mount root fs on unknown-block(0,0)

в fstab монтирование идет по UUID, менял на просто /dev/sda3 (/ установлена на 3 разделе), не помогает.

насчет поддержки ФС в ядре, думал, но если использовался конфиг от старого ядра на котором все работает и сейчас, значит поддержка есть и в новом

в грабе ядро грузится через root=/dev/sda3, менял на UUID, не помогало

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

от безвыходности указал в грабе, чтоб грузился initrd от старого ядра, на что мне при загрузке сказали что не существует папки /lib/modules/2.6.32newkernel, что было вполне логично, хоть и папка существует, однако при этом Unable to mount root fs пропала.

я пришел к выводу что надо создать этот initrd для самосборного ядра, но как? mkinitrd отсутсвует, yaird не создает

ЧЯДНТ?

>но как?

mkinitramfs -o /boot/initrd.img-2.6.32.3 2.6.32.3

где 2.6.32.3 - версия ядра, такая же, как и в /lib/modules

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

t184256

сначала заругался на уже существующий конфиг старого ядра, удалил, запустил, создал заново конфиг старого, а вот новое нет, как будто его нет

способ ttnl2 помог, все заработало, создался initrd, загрузилось все без ошибок, правда слетели драйвера nvidia, но это не проблема, уже поставил заново

спасибо всем за помощь

Fatalist
() автор топика
Ответ на: комментарий от t184256

>Мой способ же правильнее?

update-initramfs сработает только если ядро собрано in debian-way
т.е. с помощью make-kpkg. А если через make modules_install и т.д,
то нет.

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

Спасибо, буду знать. Ни разу не ставил «неправильным способом» (не считая embedded).

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

нет, может --append-to-version= из за этого, я добавил newkernel

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

Все понятно. Это бага Дебиана. Я у себя правил.

Закомментируй в /etc/kernel/postinst.d.initramfs-tools:

#!/bin/sh

# passing the kernel version is required
[ -z «$1» ] && exit 0

# kernel-package passes an extra arg; hack to not run under kernel-package
# [ -z «$2» ] || exit 0

# we're good - create initramfs. update runs do_bootloader
update-initramfs -c -t -k «$1»

И все будет тип-топ.

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

Т.е. в /etc/kernel/postinst.d/initramfs-tools вот эта строка:

# [ -z «$2» ] || exit 0

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

>update-initramfs сработает только если ядро собрано in debian-way т.е. с помощью make-kpkg. А если через make modules_install и т.д, то нет.

4.2

scaldov ★★
()

не так давно то-же самое словил.
сменил фс на ext4.. а в ядре нужно было : enable the block layer > [*] Support for large (2TB+) block devices and files
сверься

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