Еще раз о набившем оскомину: kernel panic при загрузке системы

Все здравствуйте.

Проблема моя достаточно заурядна и была уже тысячу раз решена как в русскоязычном gentoo-сообществе, так и в зарубежных. Тем не менее, ни одно из решений к моему стыду не подошло.

При попытке загрузиться с жесткого диска происходит kernel panic, сопровождаемое знаменитым сообщением:

VFS: Cannot open root device "sda3" or unknown-block(8,3): error
-6
Please append a correct "root=" boot option; here are the available partitions:
0300		4194302 hda	driver: ide-cdrom
0800		   8192 sda	driver: sd
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,3)
Pid: 1, comm: swapper Not tainted 3.8.6-hardened #12

То же самое наблюдается с ядром 2.6.32-r170-hardened. Проблема не исчезает и при сборке генкернелом с initramfs (initrd, разумеется, соответствующим образом был обозначен в grub.conf), в данном случае пишет что-то вроде: "/dev/sda3 - invalid root device" (могу уточнить в случае надобности). Хотя изначальная цель всего мероприятия - как раз попытка сборки без initramfs: машина довольно старая, посему смею тешить себя наивными иллюзиями насчет того, что такая сборка хоть чуть-чуть ускорит невозможно длинную загрузку.

В ходе разбора проблемы я использовал следующие материалы:
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=1&chap=7#doc_chap2 - соответствующий раздел хендбука
http://www.gentoo.ru/node/3998
http://www.gentoo.ru/node/13579 - хотя у меня и не ReiserFS, а вполне себе ext4 на всех разделах, пытался выудить что-нибудь и из этой темы
http://www.linuxquestions.org/questions/linux-from-scratch-13/another-kernel-panic-please-append-a-correct-root%3D-option-not-syncing-etc-813601/ - искал возможные решения в других дистрибутивах
http://forums.gentoo.org/viewtopic-t-890598-highlight-ronstudio.html - насколько мне стало ясно из этой темы, "unknown-block(8,3)" и последующий список разделов свидетельствует о том, что драйвера на хард установлены какие нужно, а проблема заключается в том, что ядро не видит файловой системы. Тем не менее, все жестко включено в ядро: и поддержка фс, и драйвера.

Ниже прилагается список необходимых файлов, выхлопов и конфигов.

Архитектура: х86; ядро: 3.8.6-hardened

dmesg (выполнен из-под chroot): http://bpaste.net/show/110507/

/usr/src/linux/.config; в порядке истерического эксперимента включил в ядро все драйвера даже на откровенно ненужные устройства, в т.ч. deprecated, до этого возникала надпись unknown-block(0,0): http://bpaste.net/show/110508/

lspci: http://bpaste.net/show/110510/

fstab: http://bpaste.net/show/110529/

fdisk -l:

# fdisk -l

Disk /dev/sda: 60.0 GB, 60011642880 bytes, 117210240 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00009d31

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      526335      262144   83  Linux
/dev/sda2          526336     2623487     1048576   82  Linux swap / Solaris
/dev/sda3         2623488    34080767    15728640   83  Linux
/dev/sda4        34080768   117210239    41564736   83  Linux

grub.conf:

default 0
timeout 30

title Gentoo Linux 3.8.6
root (hd0,0)
kernel /boot/kernel5 root=/dev/sda3

#kernel /boot/kernel-genkernel-x86-3.8.6-hardened root=/dev/ram0 real_root=/dev/sda3
#initrd /boot/initramfs-genkernel-x86-3.8.6-hardened

dmidecode: http://bpaste.net/show/110513/

hdparm -i /dev/sda: http://bpaste.net/show/110528/

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

Заранее благодарю.

https://wiki.gentoo.org/wiki/

https://wiki.gentoo.org/wiki/Knowledge_Base:Unable_to_mount_root_fs

Три причины данной проблемы:
1. Нет поддержки контроллера дисков в ядре
2. Нет поддержки ФС с корнем в ядре
3. Неправильно указан диск корня, либо система ищет его не на том диске.

Из LiveCD запусти lspci -k

Не грусти, товарищ! Всё хорошо, beautiful good!

Нельзя одновременно включать

Нельзя одновременно включать CONFIG_IDE и CONFIG_ATA.

Первая опция является устаревшей, сейчас нужно использовать только вторую.

А из контроллеров SATA вам нужно включить только "CONFIG_SATA_VIA=y'

Спасибо всем за ответы и

Спасибо всем за ответы и помощь.

lspci -k: http://bpaste.net/show/110797/

Как следует из этого, действительно, нужно включить только CONFIG_SATA_VIA=y и CONFIG_PATA_VIA=y. Сперва я так и делал. Однако, с этими параметрами возникала kernel panic с надписью "unknown-block(0,0)", т.е. хард не распознавался вообще. Потому я и поврубал все подряд, включая deprecated, пытаясь определить, чего же ядру не хватает. Сегодня пробовал попеременно отключить CONFIG_IDE и CONFIG_ATA, безрезультатно. Кстати, заметил, что надпись меняется на "unknown-block(8,3)" после включения какого-то из параметров SCSI Transports. Какого именно, увы, пока не определил.

В плане разметок тоже все кажется гладким: CONFIG_MSDOS_PARTITION и CONFIG_EFI_PARTITION включены (помимо их, после ряда неудачных сборок тоже повключал все подряд). ФС тоже включена в ядро, модулем не идет, проверял неоднократно.

Еще раз попробовал собрать при помощи genkernel, получил следующее: block device /dev/sda3 is not valid root device

Может, имеет смысл собрать все с дефолтным конфигом от genkernel? А потом при помощи lspci -k попробовать докопаться до сути проблемы. Потому что полгода назад с 2.6.32-hardened ядром и генкернеловской конфигурацией по умолчанию все работало.

Заранее благодарю за участие.

Раз с ходу найти в чём трабл

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

 genkernel --menuconfig all

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

Я несу пингвина во имя луны! *WALL*

Ant90 написал(а): Еще раз

Ant90 написал(а):
Еще раз попробовал собрать при помощи genkernel, получил следующее: block device /dev/sda3 is not valid root device

А файловая система на /dev/sda3 какая? Не ext4? Не? К параметрам ядра в конфиг граба нужно добавить rootfstype=ext4 в таком случае.

Червон00кий.

Необязательно. Гружусь

Необязательно. Гружусь спокойно на ext4 и без этого писания в конфиг.

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

Грузишся с initramfs? Без

Грузишся с initramfs? Без него вроде нужно. ТС ведь без initramfs пытался ядро загружать.

Червон00кий.

mihalych написал(а):Без него

mihalych написал(а):
Без него вроде нужно.

нет. не нужно

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".