VFS: Cannot Open Root Device
Модераторы: Trinity admin`s, Free-lance moderator`s
VFS: Cannot Open Root Device
Система:
система x86 Gentoo, загрузчик Grub, ядро 2.6xx
имеется LSI-150-6 с одним RAID разделом, который представляется системе как SDA.
В ядро собран драйвер для Qlogic qla23xx, которое успешно определяется. В этом виде все работает.
Проблема:
если на этапе загрузки Qlogic'у доступны LUN на дисковом массиве, то ядро грузится, но не может смонтировать /
Ругается так:
VFS: Cannot Open Root Device
Очевидно, проблема в том, что изменился порядок устройств.
Вопрос:
как определить название диска с /,
и как вообще линукс ядро переименовывает новые scsi устройства?
___
Под FreeBSD, если / не найден, kernel panic не будет, можно руками подбирать устройства для монтирования. Нет ли такого приема и тут, чтобы не перегружаться по 10 раз?
система x86 Gentoo, загрузчик Grub, ядро 2.6xx
имеется LSI-150-6 с одним RAID разделом, который представляется системе как SDA.
В ядро собран драйвер для Qlogic qla23xx, которое успешно определяется. В этом виде все работает.
Проблема:
если на этапе загрузки Qlogic'у доступны LUN на дисковом массиве, то ядро грузится, но не может смонтировать /
Ругается так:
VFS: Cannot Open Root Device
Очевидно, проблема в том, что изменился порядок устройств.
Вопрос:
как определить название диска с /,
и как вообще линукс ядро переименовывает новые scsi устройства?
___
Под FreeBSD, если / не найден, kernel panic не будет, можно руками подбирать устройства для монтирования. Нет ли такого приема и тут, чтобы не перегружаться по 10 раз?
Re: VFS: Cannot Open Root Device
Выкиньте упоминание о Qlogic из драйверного набора в Initrd и будетart писал(а):Система:
система x86 Gentoo, загрузчик Grub, ядро 2.6xx
имеется LSI-150-6 с одним RAID разделом, который представляется системе как SDA.
В ядро собран драйвер для Qlogic qla23xx, которое успешно определяется. В этом виде все работает.
Проблема:
если на этапе загрузки Qlogic'у доступны LUN на дисковом массиве, то ядро грузится, но не может смонтировать /
Ругается так:
VFS: Cannot Open Root Device
Очевидно, проблема в том, что изменился порядок устройств.
Вопрос:
как определить название диска с /,
и как вообще линукс ядро переименовывает новые scsi устройства?
___
Под FreeBSD, если / не найден, kernel panic не будет, можно руками подбирать устройства для монтирования. Нет ли такого приема и тут, чтобы не перегружаться по 10 раз?
Вам счастье. Бороться с перенумерацией PCI устройств дело неблагодарное.
сделал копию системного раздела на SAN,
физичеcки отключил LSI-150-6 и попытаться грузиться с копии с Qlogic - получил ту же проблему.
Загрузился с live-cd, sda виден и монтируется.
физичеcки отключил LSI-150-6 и попытаться грузиться с копии с Qlogic - получил ту же проблему.
Загрузился с live-cd, sda виден и монтируется.
Последний раз редактировалось art 28 сен 2007, 14:52, всего редактировалось 1 раз.
Re: VFS: Cannot Open Root Device
я, если честно, уже и не помню, что такое initrd -(Oleg2 писал(а): Выкиньте упоминание о Qlogic из драйверного набора в Initrd и будет
Вам счастье. Бороться с перенумерацией PCI устройств дело неблагодарное.
Если драйвер собран в ядро, а не модулем, то вывернуться нельзя, нужно вспоминать, что такое initrd?
Re: VFS: Cannot Open Root Device
Initrd - загрузочный Ramdisk Linux. При старте ядро грузит его в память, и, после начальной инициализации оборудования, монтирует его и начинает загружать с него драйверы устройств, которы могут понадобиться при загрузке ОС (например драйвер контроллера диска, на котором стоит система).art писал(а):я, если честно, уже и не помню, что такое initrd -(Oleg2 писал(а): Выкиньте упоминание о Qlogic из драйверного набора в Initrd и будет
Вам счастье. Бороться с перенумерацией PCI устройств дело неблагодарное.
Если драйвер собран в ядро, а не модулем, то вывернуться нельзя, нужно вспоминать, что такое initrd?
После окончания загрузки драйверов делается попытка смонтировать корневую файловую систему с устройства, которое в параметрах ядра объявлено как загрузочное.
Справиться с Initrd просто.
-В файле конфигурации загрузчика системы ищем ссылку на
загрузочный Ramdisk нужного нам ядра.
-Копируем этот файл в свободную папку.
-переименовываем его в файл с расширением gz.
-gzip`ом распаковываем.
-монтируем его через loop device (mount filename /mountpoint -o loop)
-идём в каталог, куда смонтировали файл
-удаляем ненужные модули (qlogic)
-повторяем все шаги в обратном порядке.
Ну и естественно ненужного драйвера не должно быть в ядре.
Удачи.
Re: VFS: Cannot Open Root Device
Большое спасибо за детальное объяснение.Oleg2 писал(а): Ну и естественно ненужного драйвера не должно быть в ядре.
Удачи.
Не понял одного, как я буду использовать свой массив без модуля Qlogic?
Грузить модуль скриптом после загрузки?
Re: VFS: Cannot Open Root Device
После монтирования root file system запускается rc скрипт.art писал(а):Большое спасибо за детальное объяснение.Oleg2 писал(а): Ну и естественно ненужного драйвера не должно быть в ядре.
Удачи.
Не понял одного, как я буду использовать свой массив без модуля Qlogic?
Грузить модуль скриптом после загрузки?
Из него запускается много всякой всячины, в том чиле и повторное сканирование оборудования и подгрузка драйверов, но уже не из initrd,
а из /lib/modules/%kernel_version%/kernel/drivers/...
Вот в это время и будет подгружен драйвер qlogic и, при необходимости, смонтированы файловые системы на дисковом массиве, подключенном к этому контроллеру.
Если же дистрибутив совсем косенький или самопальный, тогда действительно придётся подгружать модуль ручками или из скрипта.
После монтирования корневой ФС модуль загрузится udev'ом или (в винтажных системах) - hotplug'ом.
btw, если кому интересно почитать про ограниченных красноглазых жертв gentoo, архив замечательно-смешного сайта доступен на http://web.archive.org/web/200610040225 ... loops.org/
btw, если кому интересно почитать про ограниченных красноглазых жертв gentoo, архив замечательно-смешного сайта доступен на http://web.archive.org/web/200610040225 ... loops.org/
- Alexxy
- Junior member
- Сообщения: 12
- Зарегистрирован: 13 фев 2007, 16:08
- Откуда: Санкт-Петербург
- Контактная информация:
Для начала ответь на следующие вопросы
тогда не надо заботится о именах девайсов фс можно будет монтировать по лейблам
пример
правим
там надо включить следующие опции
потом выбираем нужное нам ядро
потом собираем и конфигурим ядро
теперь остается только с ливсд создать лейблы разделов
это можно сделать только с отмонтированными фс
как читать здесь
- 1 какая фс на корне?
2 она собрана статично в ядро?
3 контроллер жд статично собран?
4 используются ли лейблы фс ?
5 как собирал ядро?
6 приведи версию ядра и вывод lspci
тогда не надо заботится о именах девайсов фс можно будет монтировать по лейблам
пример
правим
Код: Выделить всё
/etc/genkernel.conf
Код: Выделить всё
MENUCONFIG="yes"
BOOTLOADER="grub"
CLEAR_CACHE_DIR="yes"
MAKEOPTS="-j16"
Код: Выделить всё
eselect kernel list
eselect kernel set N <n это номер нужного ядра>
Код: Выделить всё
genkernel --disklabel all
это можно сделать только с отмонтированными фс
как читать здесь
Код: Выделить всё
http://ru.gentoo-wiki.com/Fstab
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 17 гостей