ifcfg config style is redhat specific, this should be in its own module. --- modules.d/40network/install | 4 -- modules.d/40network/write-ifcfg.sh | 52 ------------------------------- modules.d/45ifcfg/check | 6 +++ modules.d/45ifcfg/install | 2 + modules.d/45ifcfg/write-ifcfg.sh | 60 ++++++++++++++++++++++++++++++++++++ modules.d/99base/init | 10 ------ 6 files changed, 68 insertions(+), 66 deletions(-) delete mode 100755 modules.d/40network/write-ifcfg.sh create mode 100755 modules.d/45ifcfg/check create mode 100755 modules.d/45ifcfg/install create mode 100755 modules.d/45ifcfg/write-ifcfg.sh diff --git a/modules.d/40network/install b/modules.d/40network/install index c440cc3..197be22 100755 --- a/modules.d/40network/install +++ b/modules.d/40network/install @@ -12,8 +12,4 @@ inst_hook cmdline 98 "$moddir/parse-bridge.sh" inst_hook cmdline 99 "$moddir/parse-ifname.sh" inst_hook pre-pivot 10 "$moddir/kill-dhclient.sh" -# TODO ifcfg config style is redhat specific, this should probably -# go into its own module at one time -inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh" - mkdir -p "${initdir}/var/run" diff --git a/modules.d/40network/write-ifcfg.sh b/modules.d/40network/write-ifcfg.sh deleted file mode 100755 index 3d9b3b1..0000000 --- a/modules.d/40network/write-ifcfg.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/sh - -# NFS root might have reached here before /tmp/net.ifaces was written -udevadm settle --timeout=30 -# Don't write anything if we don't know our bootdev -[ -f /tmp/net.ifaces ] || return 1 - -read IFACES < /tmp/net.ifaces - -for netif in $IFACES ; do - mkdir -p /tmp/ifcfg/ - # bridge? - unset bridge - if [ "$netif" = "$bridgename" ]; then - bridge=yes - fi - cat /sys/class/net/$netif/address > /tmp/net.$netif.hwaddr - echo "# Generated by dracut initrd" > /tmp/ifcfg/ifcfg-$netif - echo "DEVICE=$netif" >> /tmp/ifcfg/ifcfg-$netif - echo "ONBOOT=yes" >> /tmp/ifcfg/ifcfg-$netif - echo "NETBOOT=yes" >> /tmp/ifcfg/ifcfg-$netif - if [ -f /tmp/net.$netif.lease ]; then - echo "BOOTPROTO=dhcp" >> /tmp/ifcfg/ifcfg-$netif - else - echo "BOOTPROTO=none" >> /tmp/ifcfg/ifcfg-$netif - # If we've booted with static ip= lines, the override file is there - . /tmp/net.$netif.override - echo "IPADDR=$ip" >> /tmp/ifcfg/ifcfg-$netif - echo "NETMASK=$mask" >> /tmp/ifcfg/ifcfg-$netif - [ -n "$gw" ] && echo "GATEWAY=$gw" >> /tmp/ifcfg/ifcfg-$netif - fi - - # bridge needs differente things written to ifcfg - if [ -z "$bridge" ]; then - # standard interface - echo "HWADDR=$(cat /sys/class/net/$netif/address)" >> /tmp/ifcfg/ifcfg-$netif - echo "TYPE=Ethernet" >> /tmp/ifcfg/ifcfg-$netif - echo "NAME=\"Boot Disk\"" >> /tmp/ifcfg/ifcfg-$netif - else - # bridge - echo "TYPE=Bridge" >> /tmp/ifcfg/ifcfg-$netif - echo "NAME=\"Boot Disk\"" >> /tmp/ifcfg/ifcfg-$netif - # write separate ifcfg file for the raw eth interface - echo "DEVICE=$ethname" >> /tmp/ifcfg/ifcfg-$ethname - echo "TYPE=Ethernet" >> /tmp/ifcfg/ifcfg-$ethname - echo "ONBOOT=yes" >> /tmp/ifcfg/ifcfg-$ethname - echo "NETBOOT=yes" >> /tmp/ifcfg/ifcfg-$ethname - echo "HWADDR=$(cat /sys/class/net/$ethname/address)" >> /tmp/ifcfg/ifcfg-$ethname - echo "BRIDGE=$netif" >> /tmp/ifcfg/ifcfg-$ethname - echo "NAME=$ethname" >> /tmp/ifcfg/ifcfg-$ethname - fi -done diff --git a/modules.d/45ifcfg/check b/modules.d/45ifcfg/check new file mode 100755 index 0000000..0f6e457 --- /dev/null +++ b/modules.d/45ifcfg/check @@ -0,0 +1,6 @@ +#!/bin/sh +[ -f /etc/redhat-release ] || exit 1 + +[[ $1 = -d ]] && echo network + +exit 255 diff --git a/modules.d/45ifcfg/install b/modules.d/45ifcfg/install new file mode 100755 index 0000000..2d0edd0 --- /dev/null +++ b/modules.d/45ifcfg/install @@ -0,0 +1,2 @@ +#!/bin/bash +inst_hook pre-pivot 85 "$moddir/write-ifcfg.sh" diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh new file mode 100755 index 0000000..fc8965c --- /dev/null +++ b/modules.d/45ifcfg/write-ifcfg.sh @@ -0,0 +1,60 @@ +#!/bin/sh + +# NFS root might have reached here before /tmp/net.ifaces was written +udevadm settle --timeout=30 +# Don't write anything if we don't know our bootdev +[ -f /tmp/net.ifaces ] || return 1 + +read IFACES < /tmp/net.ifaces + +for netif in $IFACES ; do + mkdir -p /tmp/ifcfg/ + # bridge? + unset bridge + if [ "$netif" = "$bridgename" ]; then + bridge=yes + fi + cat /sys/class/net/$netif/address > /tmp/net.$netif.hwaddr + echo "# Generated by dracut initrd" > /tmp/ifcfg/ifcfg-$netif + echo "DEVICE=$netif" >> /tmp/ifcfg/ifcfg-$netif + echo "ONBOOT=yes" >> /tmp/ifcfg/ifcfg-$netif + echo "NETBOOT=yes" >> /tmp/ifcfg/ifcfg-$netif + if [ -f /tmp/net.$netif.lease ]; then + echo "BOOTPROTO=dhcp" >> /tmp/ifcfg/ifcfg-$netif + else + echo "BOOTPROTO=none" >> /tmp/ifcfg/ifcfg-$netif + # If we've booted with static ip= lines, the override file is there + . /tmp/net.$netif.override + echo "IPADDR=$ip" >> /tmp/ifcfg/ifcfg-$netif + echo "NETMASK=$mask" >> /tmp/ifcfg/ifcfg-$netif + [ -n "$gw" ] && echo "GATEWAY=$gw" >> /tmp/ifcfg/ifcfg-$netif + fi + + # bridge needs differente things written to ifcfg + if [ -z "$bridge" ]; then + # standard interface + echo "HWADDR=$(cat /sys/class/net/$netif/address)" >> /tmp/ifcfg/ifcfg-$netif + echo "TYPE=Ethernet" >> /tmp/ifcfg/ifcfg-$netif + echo "NAME=\"Boot Disk\"" >> /tmp/ifcfg/ifcfg-$netif + else + # bridge + echo "TYPE=Bridge" >> /tmp/ifcfg/ifcfg-$netif + echo "NAME=\"Boot Disk\"" >> /tmp/ifcfg/ifcfg-$netif + # write separate ifcfg file for the raw eth interface + echo "DEVICE=$ethname" >> /tmp/ifcfg/ifcfg-$ethname + echo "TYPE=Ethernet" >> /tmp/ifcfg/ifcfg-$ethname + echo "ONBOOT=yes" >> /tmp/ifcfg/ifcfg-$ethname + echo "NETBOOT=yes" >> /tmp/ifcfg/ifcfg-$ethname + echo "HWADDR=$(cat /sys/class/net/$ethname/address)" >> /tmp/ifcfg/ifcfg-$ethname + echo "BRIDGE=$netif" >> /tmp/ifcfg/ifcfg-$ethname + echo "NAME=$ethname" >> /tmp/ifcfg/ifcfg-$ethname + fi +done + +# Pass network opts +mkdir /dev/.initramfs/ +cp /tmp/net.* /dev/.initramfs/ >/dev/null 2>&1 +mkdir -p /dev/.initramfs/state/etc/sysconfig/network-scripts/ +cp /tmp/resolv.conf /dev/.initramfs/state/etc/ >/dev/null 2>&1 +echo "files /etc/sysconfig/network-scripts" > /dev/.initramfs/rwtab +cp -a /tmp/ifcfg/* /dev/.initramfs/state/etc/sysconfig/network-scripts/ >/dev/null 2>&1 diff --git a/modules.d/99base/init b/modules.d/99base/init index 116d8b8..d34092b 100755 --- a/modules.d/99base/init +++ b/modules.d/99base/init @@ -224,16 +224,6 @@ if getarg init= >/dev/null ; then unset CLINE fi -# Prepare network opts for passing -if [ -e /tmp/net.ifaces ]; then - mkdir /dev/.initramfs/ - cp /tmp/net.* /dev/.initramfs/ >/dev/null 2>&1 - mkdir -p /dev/.initramfs/state/etc/sysconfig/network-scripts/ - cp /tmp/resolv.conf /dev/.initramfs/state/etc/ >/dev/null 2>&1 - echo "files /etc/sysconfig/network-scripts" > /dev/.initramfs/rwtab - cp -a /tmp/ifcfg/* /dev/.initramfs/state/etc/sysconfig/network-scripts/ >/dev/null 2>&1 -fi - # Debug: Copy state if getarg rdcopystate; then mkdir /dev/.initramfs/ -- 1.6.0.4 -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html