Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:Update
dracut
0160-nfs-Add-ip-.-and-root-nfs.-parameters-to-i...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0160-nfs-Add-ip-.-and-root-nfs.-parameters-to-internal-dr.patch of Package dracut
From 25e7640c04a687f7bbd3ac2416ea2f1fef122c48 Mon Sep 17 00:00:00 2001 From: Thomas Renninger <trenn@suse.de> Date: Wed, 24 Sep 2014 17:23:32 +0200 Subject: nfs: Add ip=... and root=nfs... parameters to internal dracut cmdline If the rootfs is an nfs mount, also know as nfsroot, add the correct parameter to the dracut cmdline. Signed-off-by: Thomas Renninger <trenn@suse.de> --- modules.d/95nfs/module-setup.sh | 39 ++++++++++++++++++++++++++++++++++++++- 1 files changed, 38 insertions(+), 1 deletions(-) diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh index c126efc..b6ddb21 100755 --- a/modules.d/95nfs/module-setup.sh +++ b/modules.d/95nfs/module-setup.sh @@ -31,14 +31,51 @@ installkernel() { hostonly='' instmods nfs sunrpc ipv6 nfsv2 nfsv3 nfsv4 nfs_acl nfs_layout_nfsv41_files lockd rpcsec_gss_krb5 auth_rpcgss } +cmdline() { + local nfs_device + local nfs_options + local nfs_root + local nfs_address + local lookup + local ifname + + ### nfsroot= ### + nfs_device=$(findmnt -t nfs4 -n -o SOURCE /) + if [ -n "$nfs_device" ];then + nfs_root="root=nfs4:$nfs_device" + else + nfs_device=$(findmnt -t nfs -n -o SOURCE /) + [ -z "$nfs_device" ] && return + nfs_root="root=nfs:$nfs_device" + fi + nfs_options=$(findmnt -t nfs4,nfs -n -o OPTIONS /) + [ -n "$nfs_options" ] && nfs_root="$nfs_root:$nfs_options" + echo "$nfs_root" + + ### ip= ### + if [[ $nfs_device = [0-9]*\.[0-9]*\.[0-9]*.[0-9]* ]] || [[ $nfs_device = \[.*\] ]]; then + nfs_address="$nfs_device" + else + lookup=$(host $(echo ${nfs_device%%:*})| head -n1) + nfs_address=${lookup##* } + fi + ifname=$(ip -o route get to $nfs_address | sed -n 's/.*dev \([^ ]*\).*/\1/p') + printf 'ip=%s:static\n' ${ifname} +} + # called by dracut install() { local _i local _nsslibs inst_multiple -o portmap rpcbind rpc.statd mount.nfs \ - mount.nfs4 umount rpc.idmapd sed /etc/netconfig + mount.nfs4 umount rpc.idmapd sed /etc/netconfig host sed inst_multiple /etc/services /etc/nsswitch.conf /etc/rpc /etc/protocols /etc/idmapd.conf + if [[ $hostonly_cmdline == "yes" ]]; then + local _netconf="$(cmdline)" + [[ $_netconf ]] && printf "%s\n" "$_netconf" >> "${initdir}/etc/cmdline.d/95nfs.conf" + fi + if [ -f /lib/modprobe.d/nfs.conf ]; then inst_multiple /lib/modprobe.d/nfs.conf else -- 1.7.6.1
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor