Созданный ядро с поддержкой NFS, но не получением/dev/nfs

Можно выполнить эту команду, чтобы диагностировать, как модем обнаруживается:

udevadm trigger --verbose

Это не решит, почти может быть полезный первый шаг в Вашем расследовании.

5
21.08.2014, 03:18
1 ответ

Как указано в документации ядра , / dev / nfs не является реальным устройством, а только подсказкой ядру использовать NFS в качестве rootfs . Вы также должны указать ядру, где найти этот корень, с помощью параметра nfsroot или правильно настроенного демона DHCP. Чтобы последний работал, вам также необходимо либо настроить ядро ​​для автоматической настройки сетевых интерфейсов, либо иметь initramfs , который позаботится об этом.

Также убедитесь, что поддержка NFS встроена в ваш двоичный файл ядра, а не в качестве модуля (или имейте initramfs , который позаботится об этом). То же самое и с сетевыми драйверами: вы, скорее всего, захотите, чтобы драйвер для вашей сетевой карты Ethernet был встроен в образ ядра, иначе вам придется загружать его из initramfs .

Короче говоря, есть несколько возможностей:

  1. Сделайте, как указано выше, ссылка говорит вам: установите root = / dev / nfs , укажите правильный параметр nfsroot и сообщите своему ядро вашей сетевой конфигурации с помощью параметра ip (это был бы лучший способ убедиться, что он вообще работает, т.е. исключить неправильно настроенный DHCP-сервер).
  2. Включите CONFIG_IP_PNP и CONFIG_IP_PNP_DHCP и настройте демон DHCP, чтобы сообщить клиенту, какой IP-адрес использовать и где найти его корень NFS.
  3. Создайте initramfs , который выполняет правильную настройку и монтирование по NFS.

Редактировать: Я думаю, что если вы используете initrd / initramfs , как предлагает ваше редактирование, вам придется выполнить монтирование NFS в ] initrd (соответственно ваш initrd должен знать о том, что он должен это делать). Автоматическое монтирование через ядро ​​(как автоконфигурация IP, IIRC) работает, только если нет initrd .

4
27.01.2020, 20:40

Теги

Похожие вопросы