summaryrefslogtreecommitdiffstats
path: root/modules.d/40network/netroot.sh
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 14:01:35 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 14:01:35 +0000
commite6f2eaf47a177a8eca054d1d70a1b6287e8c3521 (patch)
treec5719e819a9e37df4b54affd61438f382ec38a8f /modules.d/40network/netroot.sh
parentAdding upstream version 060+5. (diff)
downloaddracut-upstream/102.tar.xz
dracut-upstream/102.zip
Adding upstream version 102.upstream/102
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'modules.d/40network/netroot.sh')
-rwxr-xr-xmodules.d/40network/netroot.sh92
1 files changed, 0 insertions, 92 deletions
diff --git a/modules.d/40network/netroot.sh b/modules.d/40network/netroot.sh
deleted file mode 100755
index 8f97774..0000000
--- a/modules.d/40network/netroot.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-
-PATH=/usr/sbin:/usr/bin:/sbin:/bin
-command -v getarg > /dev/null || . /lib/dracut-lib.sh
-command -v setup_net > /dev/null || . /lib/net-lib.sh
-
-# Huh? Empty $1?
-[ -z "$1" ] && exit 1
-
-# [ ! -z $2 ] means this is for manually bringing up network
-# instead of real netroot; If It's called without $2, then there's
-# no sense in doing something if no (net)root info is available
-# or root is already there
-[ -d "$NEWROOT"/proc ] && exit 0
-
-if [ -z "$netroot" ]; then
- netroot=$(getarg netroot=)
-fi
-
-[ -z "$netroot" ] && exit 1
-
-# Set or override primary interface
-netif=$1
-[ -e "/tmp/net.bootdev" ] && read -r netif < /tmp/net.bootdev
-
-case "$netif" in
- ??:??:??:??:??:??) # MAC address
- for i in /sys/class/net/*/address; do
- read -r mac < "$i"
- if [ "$mac" = "$netif" ]; then
- i=${i%/address}
- netif=${i##*/}
- break
- fi
- done ;;
-esac
-
-# Figure out the handler for root=dhcp by recalling all netroot cmdline
-# handlers when this is not called from manually network bringing up.
-if [ -z "$2" ]; then
- if getarg "root=dhcp" || getarg "netroot=dhcp" || getarg "root=dhcp6" || getarg "netroot=dhcp6"; then
- # Load dhcp options
- # shellcheck disable=SC1090
- [ -e /tmp/dhclient."$netif".dhcpopts ] && . /tmp/dhclient."$netif".dhcpopts
-
- # If we have a specific bootdev with no dhcpoptions or empty root-path,
- # we die. Otherwise we just warn
- if [ -z "$new_root_path" ]; then
- [ -n "$BOOTDEV" ] && die "No dhcp root-path received for '$BOOTDEV'"
- warn "No dhcp root-path received for '$netif' trying other interfaces if available"
- exit 1
- fi
-
- rm -f -- "$hookdir"/initqueue/finished/dhcp.sh
-
- # Set netroot to new_root_path, so cmdline parsers don't call
- netroot=$new_root_path
-
- # FIXME!
- unset rootok
- for f in "$hookdir"/cmdline/90*.sh; do
- # shellcheck disable=SC1090
- [ -f "$f" ] && . "$f"
- done
- else
- rootok="1"
- fi
-
- # Check: do we really know how to handle (net)root?
- if [ -z "$root" ]; then
- root=$(getarg root=)
- fi
- [ -z "$root" ] && die "No or empty root= argument"
- [ -z "$rootok" ] && die "Don't know how to handle 'root=$root'"
-
- handler=${netroot%%:*}
- handler=${handler%%4}
- handler=$(command -v "${handler}"root)
- if [ -z "$netroot" ] || [ ! -e "$handler" ]; then
- die "No handler for netroot type '$netroot'"
- fi
-fi
-
-# Source netroot hooks before we start the handler
-source_hook netroot "$netif"
-
-# Run the handler; don't store the root, it may change from device to device
-# XXX other variables to export?
-[ -n "$handler" ] && "$handler" "$netif" "$netroot" "$NEWROOT"
-save_netinfo "$netif"
-
-exit 0