File: nfsroot.sh

package info (click to toggle)
dracut 106-6
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 4,708 kB
  • sloc: sh: 24,384; ansic: 4,704; makefile: 315; perl: 186; python: 28; javascript: 19
file content (30 lines) | stat: -rwxr-xr-x 807 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/sh

command -v getarg > /dev/null || . /lib/dracut-lib.sh
command -v nfs_to_var > /dev/null || . /lib/nfs-lib.sh

[ "$#" = 3 ] || exit 1

# root is in the form root=nfs[4]:[server:]path[:options], either from
# cmdline or dhcp root-path
netif="$1"
root="$2"
NEWROOT="$3"

nfs_to_var "$root" "$netif"
[ -z "$server" ] && die "Required parameter 'server' is missing"

mount_nfs "$root" "$NEWROOT" "$netif" && {
    [ -e /dev/root ] || ln -s null /dev/root
    [ -e /dev/nfs ] || ln -s null /dev/nfs
}

[ -f "$NEWROOT"/etc/fstab ] && cat "$NEWROOT"/etc/fstab > /dev/null

# inject new exit_if_exists
# shellcheck disable=SC2016
echo 'settle_exit_if_exists="--exit-if-exists=/dev/root"; rm -- "$job"' > "$hookdir"/initqueue/nfs.sh
# force udevsettle to break
: > "$hookdir"/initqueue/work

need_shutdown