LINUX.ORG.RU

Пересобрал ядро, удалив старое


0

0

Всем привет

Пересобрал ядро, а оно выдёт кернел паник. В /usr/src, по ходу, лежит только вновь собранное ядрышко. Я вставил установочный диск, примонтировал винт, попробовал собрать с config.old, но вот на команду make он пишет: "make: not found"

Как можно восстановить работоспособность системы???

★★

удалить .config

make menuconfig, создастся дефолтный конфиг, и с ним скомпилить, мен помогло, с тех пор правда не удаляю старое

Freek
()

Если за последние пару часов ты ничего (в смысле Ось) в этой жизни не поменял, то попробуй загрузиться с установочного диска. Затем подмонтируй корень скажем в /mnt и сделай туда chroot. Потом любимым текстовым редактором перепиши /etc/lilo.conf. Вернее сказать допиши чё-нить вроде:

image = /boot/vmlinuz.old
root = /dev/hda1 (или как там у тебя корень зовут?)
label = Slackware (или как хочешь)

Затем сделай lilo и перезагружай систему на старом ядре.

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

Не помогло По-прежнему пишет: No filesystem could mount root, tried: romfs Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(3,2)

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

Однако... Позволь уточнить несколько деталей: ты указал именно тот пас к ядру (/boot/vmlinuz.old), что у меня или свой? За одно покажи свой lilo.conf и ls /boot/

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

Да, указал именно .old, в boot vmlinuz.old присутствует. У меня получилось запустить старую систему. Я сделал так:

Воткнул установочный диск и при выборе ядра (какой-то там huges) указал /dev/hda2 - загрузилось от туда. Сейчас пересобираю ядро со старым конфигом )) Надеюсь, что поможет

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

lilo.conf:

LILO configuration file # generated by 'liloconfig' # # Start LILO global section # Append any additional kernel parameters: append=" vt.default_utf8=1" boot="/dev/hda" # Boot BMP Image. # Bitmap in BMP format: 640x480x8 bitmap = /boot/slack.bmp # Menu colors (foreground, background, shadow, highlighted # foreground, highlighted background, highlighted shadow): bmp-colors = 255,0,255,0,255,0 # Location of the option table: location x, location y, number of # columns, lines per column (max 15), "spill" (this is how many # entries must be in the first column before the next begins to # be used. We don't specify it here, as there's just one column. bmp-table = 60,6,1,16 # Timer location x, timer location y, foreground color, # background color, shadow color. bmp-timer = 65,27,0,255 # Standard menu. # Or, you can comment out the bitmap menu above and # use a boot message with the standard menu: #message = /boot/boot_message.txt # Wait until the timeout to boot (if commented out, boot the # first entry immediately): prompt # Timeout before the first entry boots. # This is given in tenths of a second, so 600 for every minute: timeout="10" # Override dangerous defaults that rewrite the partition table: change-rules reset #VESA framebuffer console @ 1280x800x256 vga="773" # Normal VGA console # vga = normal # VESA framebuffer console @ 1024x768x64k # vga=791 # VESA framebuffer console @ 1024x768x32k # vga=790 # VESA framebuffer console @ 1024x768x256 # vga=773 # VESA framebuffer console @ 800x600x64k # vga=788 # VESA framebuffer console @ 800x600x32k # vga=787 # VESA framebuffer console @ 800x600x256 # vga=771 # VESA framebuffer console @ 640x480x64k # vga=785 # VESA framebuffer console @ 640x480x32k # vga=784 # VESA framebuffer console @ 640x480x256 # vga=769 # End LILO global section # Linux bootable partition config begins

image="/boot/vmlinuz.old" root="/dev/hda2" label="Linux" read-only # Linux bootable partition config ends

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

root@sabo-mobile:/boot# ls -al
итого 23912
drwxr-xr-x 2 root root 4096 2008-08-08 03:10 .
drwxr-xr-x 20 root root 4096 2008-08-08 03:00 ..
-rw-r--r-- 1 root root 512 2008-07-14 08:28 boot.0300
-rw-r--r-- 1 root root 168 2008-07-14 08:28 boot_message.txt
lrwxrwxrwx 1 root root 28 2008-07-14 08:25 config -> config-huge-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 82369 2008-04-30 23:02 config-generic-2.6.24.5
-rw-r--r-- 1 root root 82657 2008-04-30 22:19 config-generic-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 82208 2008-04-30 23:15 config-huge-2.6.24.5
-rw-r--r-- 1 root root 82536 2008-04-30 22:39 config-huge-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 5040 2008-04-01 11:39 diag1.img
-rw------- 1 root root 54784 2008-08-08 03:10 map
lrwxrwxrwx 1 root root 37 2008-08-01 00:47 README.initrd -> /usr/doc/mkinitrd-1.3.2/README.initrd
-rw-r--r-- 1 root root 15754 2008-02-22 03:08 slack.bmp
-rw-r--r-- 1 root root 983673 2008-08-08 03:10 System.map
-rw-r--r-- 1 root root 844024 2008-04-30 23:02 System.map-generic-2.6.24.5
-rw-r--r-- 1 root root 880187 2008-04-30 22:19 System.map-generic-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 1282875 2008-04-30 23:15 System.map-huge-2.6.24.5
-rw-r--r-- 1 root root 1320655 2008-04-30 22:42 System.map-huge-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 983673 2008-08-08 00:17 System.old
-rw-r--r-- 1 root root 2422776 2008-08-08 03:10 vmlinuz
-rw-r--r-- 1 root root 2055544 2008-04-30 23:02 vmlinuz-generic-2.6.24.5
-rw-r--r-- 1 root root 2167384 2008-04-30 22:19 vmlinuz-generic-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 4205208 2008-04-30 23:15 vmlinuz-huge-2.6.24.5
-rw-r--r-- 1 root root 4369880 2008-04-30 22:42 vmlinuz-huge-smp-2.6.24.5-smp
-rw-r--r-- 1 root root 2422776 2008-08-08 00:17 vmlinuz.old

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

Старое ядро можно просто установить с диска. А собранное тобой ядро не загрузилось по всей видимости потому что в нём нет драйвера fs или устройства. А нет его там по всей видимости потому, что ты собрал их как модуль. Выход - сделай initrd. Почему не загрузилось старое я не понял, поелику не видел ни ls /boot/ не lilo.conf.

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

На инсталяционном dvd в в папке slackware/a/ имеется пакет kernel-*-2.6.*.tgz. Его собственно и надо поставить. Но тебе этого делать не надо. Просто пропиши в lilo.conf в качестве ядра скажем образ /boot/vmlinuz-huge-smp-2.6.24.5-smp и будет всё хорошо (если не забудешь после этого сделать lilo). Если будешь ещё эксперементировать с ядром прочти /boot/README.initrd.

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

> Просто пропиши в lilo.conf в качестве ядра скажем образ /boot/vmlinuz-huge-smp-2.6.24.5-smp и будет всё хорошо

Переписал - тот же кернел паник

> если не забудешь после этого сделать lilo

т.е.?

Вот, кстати, как я работоспособную систему загружаю:
Вставляю установочный диск и при выборе ядра я пишу:

boot: hugesmp.s root=/dev/hda2 rdinit=ro

Вот мой lilo.conf (ещё раз в нормальном виде):

# LILO configuration file
# generated by 'liloconfig'
#
# Start LILO global section
# Append any additional kernel parameters:
append=" vt.default_utf8=1"
boot="/dev/hda"
# Boot BMP Image.
# Bitmap in BMP format: 640x480x8
bitmap = /boot/slack.bmp
# Menu colors (foreground, background, shadow, highlighted
# foreground, highlighted background, highlighted shadow):
bmp-colors = 255,0,255,0,255,0
# Location of the option table: location x, location y, number of
# columns, lines per column (max 15), "spill" (this is how many
# entries must be in the first column before the next begins to
# be used. We don't specify it here, as there's just one column.
bmp-table = 60,6,1,16
# Timer location x, timer location y, foreground color,
# background color, shadow color.
bmp-timer = 65,27,0,255
# Standard menu.
# Or, you can comment out the bitmap menu above and
# use a boot message with the standard menu:
#message = /boot/boot_message.txt
# Wait until the timeout to boot (if commented out, boot the
# first entry immediately):
prompt
# Timeout before the first entry boots.
# This is given in tenths of a second, so 600 for every minute:
timeout="10"
# Override dangerous defaults that rewrite the partition table:
change-rules
reset
#VESA framebuffer console @ 1280x800x256
vga="773"
# Normal VGA console
# vga = normal
# VESA framebuffer console @ 1024x768x64k
# vga=791
# VESA framebuffer console @ 1024x768x32k
# vga=790
# VESA framebuffer console @ 1024x768x256
# vga=773
# VESA framebuffer console @ 800x600x64k
# vga=788
# VESA framebuffer console @ 800x600x32k
# vga=787
# VESA framebuffer console @ 800x600x256
# vga=771
# VESA framebuffer console @ 640x480x64k
# vga=785
# VESA framebuffer console @ 640x480x32k
# vga=784
# VESA framebuffer console @ 640x480x256
# vga=769
# End LILO global section
# Linux bootable partition config begins

image="/boot/vmlinuz-huge-smp-2.6.24.5-smp"
root="/dev/hda2"
label="Linux"
read-only
# Linux bootable partition config ends

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

lilo не читает конфиги из lilo.conf. Это вполне логично, ведь не может же он парсить файл на диске который ещё не монтирован? Так что после изменения конфигов их надо записать в lilo. Делается это вызовом команды - lilo. Если ты этого ещё не разу не делал значит ты сильно был не прав.

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

Вот это я тормоз! =))

только вот теперь следующая проблема:

# lilo
Warning: LBA32 addressing assumed
Warning: Unable to determine video adapter in use in the present system.
Warning: Video adapter does not support VESA BIOS extensions needed for
display of 256 colors. Boot loader will fall back to TEXT only operation.
Added Linux *
3 warnings were issued.

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

Для начала попробуй понизить разрешение во фреймбуфере. Всё же 1280x800 - как-то круто.

KblCb ★★★★★
()

Если у тебя ядро Ю=2.6.25 с чем-то, то lilo с ним попросту не работает(там initrd слишком большой оказывается). Сам на это недавно напоролся, пришлось на grub менять

gaa ★★
()

> Для начала попробуй понизить разрешение во фреймбуфере. Всё же 1280x800 - как-то круто.

Вообщето смотря каким фреймбуффером пользоваться. Если vesa то он не поддерживает 1280x800, самое ближайшее 1024х768
Но это все фигня,,, меня смущает другое.

Почему диск hda а не sda? Судя по расширению 1280x800 что Вы запрашивали, Вы как я догадываюсь на лаптопе, причем лаптоп этот не старый, а следовательно имеет SATA

Теперь с начала и по порядку:)

(предполагаю что Вы уже загрузились либо с загрузочного диска и дали chroot или же Вы уже на старом ядре)

1. Идите в /usr/src/ и убедитесь что символьная ссылка linux указывает на сырцы нового ядра. Далее cd linux и make menuconfig
2. еще раз пройдите все, но в первую очередь обратите внимание на раздел Device Drivers > Serial ATA (prod) and Parallel AT Убедитесь что AHCI SATA support включен в ядро и поддержка Вашего чипа также включена в ядро (lspci |grep IDE).
3. Проверьте в разделе File systems файловая система какую Вы используете для корня включена в ядро.
4. Сохраняем изменения и далее make bzImage modules modules_install install
5. в lilo.conf добавте lba32 чтоб не ругался, просто впишите отдельной строчкой, и снова команда lilo под рутом
6. в /etc/rc.d/rc.modules добавте modprobe dm-mod (если Вы включили
его модулем)
7. идите в /etc/fstab и поменяйте все свои hda на sda
8. перезагружайтесь
9. после старта lilo жмем F2 и пишем root=/dev/sda2 (т.к. вы писали что корень у Вас на hda2)
10. Загрузившись идем в lilo.conf и все hda меняем на sda. И снова команда lilo под рутом. Если без ошибок, то ребутимся живем счастливо.

Успехов!

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

>> Если у тебя ядро Ю=2.6.25 с чем-то, то lilo с ним попросту не работает(там initrd слишком большой оказывается). Сам на это недавно напоролся, пришлось на grub менять

Странно, с лило никада проблем не имел %|

dima@dmitry:~/tmp$ uname -r
2.6.25.15
dima@dmitry:~/tmp$ /sbin/lilo -v|grep -i lilo
LILO version 22.8, Copyright (C) 1992-1998 Werner Almesberger
dima@dmitry:~/tmp$

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

Правильно ли я понял, не найден make? Возможно достаточно после монтирования винта с компакт-диска, сделать chroot. Чтобы корнем был не компакт, а твой винт.

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

>>> Если у тебя ядро >=2.6.25 с чем-то, то lilo с ним попросту не работает(там initrd слишком большой оказывается). Сам на это недавно напоролся, пришлось на grub менять

> Странно, с лило никада проблем не имел %|

Я тоже без проблем с ней работал, а неделю назад проагрейдился -- и получил

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

>> Я вот на этот баг напоролся: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=479101

Дык насколько я вижу там баг с дебиановым ядром и с ихним же initrd, а тут Слака и ванильное ядро. Да и по ходу дела человек initrd то не пользует. ИМНО - должно работать:)

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

> Если у тебя ядро Ю=2.6.25 с чем-то, то lilo с ним попросту не работает(там initrd слишком большой оказывается). Сам на это недавно напоролся, пришлось на grub менять

Да вот, еще раз прочел Вашу ссылку и сравнивая размер initrd с которым Debian пользователи имели проблемы при использовании 2.6.25.x и лило (примерно 6МБ) с размером initrd идущего со Слакой 12.1 (примерно 14Мб) где все работает.

Делаю вывод что проблема с Дебианом а не с линукс, initrd и лило ;)

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

> Судя по расширению 1280x800 что Вы запрашивали, Вы как я догадываюсь на лаптопе, причем лаптоп этот не старый, а следовательно имеет SATA

Да, я работаю действительно на лэптопе (Acer Aspire 3650), но винт у меня ATA. Вот подробные характеристики:
http://www.acer3650.info/features.html

(Жесткий диск: ATA/100, Дисплей: 15.4" WXGA TFT LCD, разрешение 1280 x 800 точек)

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

Короче восстановил я работоспособность системы, тупо скопировав ядро с установочного диска в /boot и запустив систему с ним.

Пробовал ещё собрать собственное ядро из исходников, но оно не захотело загрузится (ни каких ошибок не появилось - зависло при загрузке).

И всё-таки, почему у меня не получается собрать собственное ядро? Я, вроде бы, и в конфиге всё возможное включаю... Есть какой-нибудь толковый ман по сборке ядра? (У мну в FreeBSD всегда всё норм собиралось, а в Слаке чего-то не хочет)

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

> Да, я работаю действительно на лэптопе (Acer Aspire 3650), но винт у меня ATA. Вот подробные характеристики: http://www.acer3650.info/features.html

Ну тогда наверное Вам нужно Include IDE/ATA-2 DISK вместо Serial ATA, но все равно в системе он будет sda а не hda и в этом то как я подозреваю у Вас и проблема. Как Вы писали, после установки Слаки разделы жесткого диска hda. Потом Вы пересобираете ядро и пытаетесь с него загрузиться. Но новое ядро уже задает другие имена для разделов и именно sda. А так как у Вас везде (lilo, fstab) прописаны hda, то понятное дело оно паникует. Пробовали ли Вы загрузиться с опцией root=/dev/sda2 ?

> Есть какой-нибудь толковый ман по сборке ядра?

стопроцентного мана нет, т.к. ядро развивается быстрее чем пишутся маны;) Но приблизительные howto 1-2 летней давности в рунете можно найти. Если хотите, то дайте мыло и я скину Вам свой конфиг, может поможет:)

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

>И всё-таки, почему у меня не получается собрать собственное ядро? Я, вроде бы, и в конфиге всё возможное включаю... Есть какой-нибудь толковый ман по сборке ядра? (У мну в FreeBSD всегда всё норм собиралось, а в Слаке чего-то не хочет)

Полагаю всё по тому же. Ядро Патрика (ты же вряд ли переписывал весь конфиг?) - модульное. Без initrd оно не запуститься. Таким образом для сборки ядра в слаке надовыполнить приблизительно следующую последовательность:

make clean

make menuconfig

make all

make install all

cat /boot/README.initrd | less

mkinitrd с ключами и аргументами про которые прочитал в ридми

vi /etc/lilo.config (где прописываем путь к образу initrd)

lilo

Ты уверен, что ничего не пропустил?

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

> Если хотите, то дайте мыло и я скину Вам свой конфиг, может поможет:)

Давайте - буду благодарен =)) sabo_ собак mail.ru

2KblCb:

Пропустил, спасибо =))

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