- Update to lateste git HEAD 48b7ab1b35adf1f3f09f883ef14ea0a3fba1e468 Added: dracut_v37_to_HEAD.patch Modified: 0013-Correct-paths-for-openSUSE.patch Modified: mdraid-setup.patch Modified: replace_dhclient_with_wickedd_dhcp_supplicants.patch Deleted: 0018-fstab-do-not-mount-and-fsck-from-fstab-if-using-syst.patch Deleted: 0019-dracut-initqueue-service-runs-before-remote-fs-pre.t.patch - Fix lvm and other possible not working thing due to new parameter: hostonly-cmdline which has to be active by default bnc#874000 bnc#874905 bnc#874363 Added: mkinird_differ_host_and_cmdline_only_properly.patch - Make write-ifcfg-suse.sh more update robust Avoid rebasing of diff with every update touching this file by adding write-ifcfg-suse.sh as source file and copy/link in .spec file. Modified: change_write_ifcfg_to_suse.patch OBS-URL: https://build.opensuse.org/request/show/232233 OBS-URL: https://build.opensuse.org/package/show/Base:System/dracut?expand=0&rev=138
184 lines
5.1 KiB
Bash
184 lines
5.1 KiB
Bash
#!/bin/sh
|
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
|
|
# ex: ts=8 sw=4 sts=4 et filetype=sh
|
|
|
|
# NFS root might have reached here before /tmp/net.ifaces was written
|
|
udevadm settle --timeout=30
|
|
|
|
if [ -e /tmp/bridge.info ]; then
|
|
. /tmp/bridge.info
|
|
fi
|
|
|
|
if [ -e /tmp/vlan.info ]; then
|
|
. /tmp/vlan.info
|
|
fi
|
|
|
|
mkdir -m 0755 -p /tmp/ifcfg/
|
|
mkdir -m 0755 -p /tmp/ifcfg-leases/
|
|
|
|
get_vid() {
|
|
case "$1" in
|
|
vlan*)
|
|
echo ${1#vlan}
|
|
;;
|
|
*.*)
|
|
echo ${1##*.}
|
|
;;
|
|
esac
|
|
}
|
|
|
|
for netup in /tmp/net.*.did-setup ; do
|
|
[ -f $netup ] || continue
|
|
|
|
netif=${netup%%.did-setup}
|
|
netif=${netif##*/net.}
|
|
[ -e /tmp/ifcfg/ifcfg-$netif ] && continue
|
|
unset bridge
|
|
unset bond
|
|
unset bondslaves
|
|
unset bondname
|
|
unset bondoptions
|
|
unset uuid
|
|
unset ip
|
|
unset gw
|
|
unset mtu
|
|
unset mask
|
|
unset macaddr
|
|
unset slave
|
|
unset ethname
|
|
[ -e /tmp/bond.${netif}.info ] && . /tmp/bond.${netif}.info
|
|
|
|
uuid=$(cat /proc/sys/kernel/random/uuid)
|
|
if [ "$netif" = "$bridgename" ]; then
|
|
bridge=yes
|
|
elif [ "$netif" = "$bondname" ]; then
|
|
# $netif can't be bridge and bond at the same time
|
|
bond=yes
|
|
fi
|
|
if [ "$netif" = "$vlanname" ]; then
|
|
vlan=yes
|
|
fi
|
|
cat /sys/class/net/$netif/address > /tmp/net.$netif.hwaddr
|
|
{
|
|
echo "# Generated by dracut initrd"
|
|
echo "NAME='$netif'"
|
|
if [ -f /tmp/net.$netif.has_ibft_config ]; then
|
|
echo "STARTMODE='nfsroot'"
|
|
else
|
|
echo "STARTMODE='auto'"
|
|
fi
|
|
|
|
local bootproto="static"
|
|
if [ -f /tmp/leaseinfo.${netif}.dhcp.ipv6 ]; then
|
|
bootproto="dhcp6"
|
|
fi
|
|
if [ -f /tmp/leaseinfo.${netif}.dhcp.ipv4 ]; then
|
|
if [ "$bootproto" = "dhcp6" ]; then
|
|
bootproto="dhcp"
|
|
else
|
|
bootproto="dhcp4"
|
|
fi
|
|
fi
|
|
|
|
echo "BOOTPROTO='$bootproto'"
|
|
|
|
if [ "$bootproto" = "static" ]; then
|
|
# If we've booted with static ip= lines, the override file is there
|
|
[ -e /tmp/net.$netif.override ] && . /tmp/net.$netif.override
|
|
echo "IPADDR='$ip'"
|
|
if [ -n "$mask" ]; then
|
|
if strstr "$mask" "."; then
|
|
echo "NETMASK='$mask'"
|
|
else
|
|
echo "PREFIXLEN='$mask'"
|
|
fi
|
|
fi
|
|
if [ -n "$gw" ]; then
|
|
echo "GATEWAY='$gw'"
|
|
fi
|
|
fi
|
|
[ -n "$mtu" ] && echo "MTU='$mtu'"
|
|
} > /tmp/ifcfg/ifcfg-$netif
|
|
|
|
# bridge needs different things written to ifcfg
|
|
if [ -z "$bridge" ] && [ -z "$bond" ] && [ -z "$vlan" ]; then
|
|
# standard interface
|
|
{
|
|
if [ -n "$macaddr" ]; then
|
|
echo "LLADDR='$macaddr'"
|
|
else
|
|
echo "LLADDR='$(cat /sys/class/net/$netif/address)'"
|
|
fi
|
|
echo "INTERFACETYPE='Ethernet'"
|
|
} >> /tmp/ifcfg/ifcfg-$netif
|
|
fi
|
|
|
|
if [ -n "$vlan" ]; then
|
|
{
|
|
echo "INTERFACETYPE='Vlan'"
|
|
echo "VLAN_ID='$(get_vid $vlanname)'"
|
|
echo "ETHERDEVICE='$phydevice'"
|
|
} >> /tmp/ifcfg/ifcfg-$netif
|
|
fi
|
|
|
|
if [ -n "$bond" ] ; then
|
|
# bond interface
|
|
{
|
|
# This variable is an indicator of a bond interface for initscripts
|
|
echo "BONDING_MASTER='yes'"
|
|
echo "BONDING_MODULE_OPTS='$bondoptions'"
|
|
echo "INTERFACETYPE='Bond'"
|
|
} >> /tmp/ifcfg/ifcfg-$netif
|
|
|
|
local i=0
|
|
for slave in $bondslaves ; do
|
|
echo "BONDING_SLAVE_$i='$slave'" >> /tmp/ifcfg/ifcfg-$netif
|
|
i=$((i+1))
|
|
# write separate ifcfg file for the raw eth interface
|
|
{
|
|
echo "# Generated by dracut initrd"
|
|
echo "NAME='$slave'"
|
|
echo "INTERFACETYPE='Ethernet'"
|
|
echo "STARTMODE='hotplug'"
|
|
echo "BOOTPROTO='none'"
|
|
echo "# ETHTOOL=''"
|
|
} >> /tmp/ifcfg/ifcfg-$slave
|
|
done
|
|
fi
|
|
|
|
if [ -n "$bridge" ] ; then
|
|
# bridge
|
|
{
|
|
echo "INTERFACETYPE='Bridge'"
|
|
echo "BRIDGE='yes'"
|
|
echo "BRIDGE_STP='off'"
|
|
echo "BRIDGE_FORWARDDELAY='0'"
|
|
echo -n "BRIDGE_PORTS='"
|
|
|
|
} >> /tmp/ifcfg/ifcfg-$netif
|
|
|
|
if [ "$ethname" = "$bondname" ] ; then
|
|
{
|
|
for slave in $bondslaves ; do
|
|
echo -n "$bondname "
|
|
done
|
|
echo "'"
|
|
} >> /tmp/ifcfg/ifcfg-$netif
|
|
else
|
|
echo "$ethname'" >> /tmp/ifcfg/ifcfg-$netif
|
|
fi
|
|
fi
|
|
done
|
|
|
|
# Pass network opts
|
|
mkdir -m 0755 -p /run/initramfs/state/etc/sysconfig/network
|
|
mkdir -m 0755 -p /run/initramfs/state/var/run/wicked
|
|
echo "files /etc/sysconfig/network" >> /run/initramfs/rwtab
|
|
echo "files /var/run/wicked" >> /run/initramfs/rwtab
|
|
{
|
|
cp /tmp/net.* /run/initramfs/
|
|
cp /tmp/net.$netif.resolv.conf /run/initramfs/state/etc/resolv.conf
|
|
copytree /tmp/ifcfg /run/initramfs/state/etc/sysconfig/network
|
|
cp /tmp/leaseinfo.* /run/initramfs/state/var/run/wicked/
|
|
} > /dev/null 2>&1
|