Настройте сетевой интерфейс eth0 с использованием DHCP в initramfs

Я создал свой собственный скрипт initramfs (на основе live-initramfs), и мне нужно настроить сетевое соединение (используя DHCP), чтобы получить удаленный файл. Так что мне нужно добавить в файл ловушки initramfs (ifconfig, dhclient?). А как написать мой скрипт initramfs? Сейчас я пытаюсь что-то вроде этого:

mkdir -p /var/run/network  # needed by ifup
modprobe af_packet         # for DHCP?
udevadm trigger            
udevadm settle  
ifup eth0                  #???            

для ifup мне нужен файл / etc / network / interfaces:

auto eth0
iface eth0 inet dhcp

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

Любая идея или помощь?

3
задан 6 February 2012 в 12:31

1 ответ

Самое простое решение - использовать ipconfig через параметр командной строки ядра ip= в grub.cfg (или pxelinux.cfg, или как вы загружаете свое ядро). Мне не известна справочная страница для него, но в репозитории klibc Git есть файл README.ipconfig, установленный в /usr/share/doc/klibc-utils/README.ipconfig.gz. Таким образом, ваш /etc/default/grub может иметь следующую строку:

GRUB_CMDLINE_LINUX="ip=:::::eth0:dhcp"

Возможно, вам потребуется создать простой скрипт в /etc/initramfs-tools/scripts/local-top, который получает файл functions и затем вызывает функцию configure_networking Примерно так:

#!/bin/sh
. /scripts/functions
configure_networking

(я ошибочно думал, что configure_networking вызывается по умолчанию, но что-то должно явно вызывать его - либо ваш собственный скрипт, либо скрипт из пакета. В моем случае это был вызывается из open-iscsi.)

0
ответ дан 6 February 2012 в 12:31

Другие вопросы по тегам:

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