Я создал свой собственный скрипт 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.
Любая идея или помощь?
Самое простое решение - использовать 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
.)