Еще раз о набившем оскомину: 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 ядром и генкернеловской конфигурацией по умолчанию все работало.
Заранее благодарю за участие.
Раз с ходу найти в чём трабл
Раз с ходу найти в чём трабл не получается, я бы действительно попробовал
а потом бы сравнивал с тем конфигом, что используется... но сначала нужно чтобы он хоть просто с генкернеловским конфигом ядра загрузился, а то может окажется что косяк и не в ядре вовсе.
Я несу пингвина во имя луны! *WALL*
Ant90 написал(а): Еще раз
А файловая система на /dev/sda3 какая? Не ext4? Не? К параметрам ядра в конфиг граба нужно добавить rootfstype=ext4 в таком случае.
Червон00кий.
Необязательно. Гружусь
Необязательно. Гружусь спокойно на ext4 и без этого писания в конфиг.
Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"
Грузишся с initramfs? Без
Грузишся с initramfs? Без него вроде нужно. ТС ведь без initramfs пытался ядро загружать.
Червон00кий.
mihalych написал(а):Без него
нет. не нужно