dracut-027-17.git20130409
- only include needed /etc/crypttab entries Resolves:rhbz#919752 - add support for bridge over team and vlan - support multiple bonding interfaces - add "action_on_fail=" kernel command line parameter - add support for bridge over a vlan tagged interface
This commit is contained in:
parent
38a2ddf58a
commit
ab11ed5290
@ -0,0 +1,29 @@
|
|||||||
|
From 41bfa5dad1d0a1ccdef70bd74068e5d4d67d5e27 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Fri, 5 Apr 2013 16:34:36 +0200
|
||||||
|
Subject: [PATCH] nfs/module-setup.sh: combine egreps for /etc/passwd and
|
||||||
|
/etc/group
|
||||||
|
|
||||||
|
---
|
||||||
|
modules.d/95nfs/module-setup.sh | 8 ++------
|
||||||
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/95nfs/module-setup.sh b/modules.d/95nfs/module-setup.sh
|
||||||
|
index 7c3a64d..6d4d412 100755
|
||||||
|
--- a/modules.d/95nfs/module-setup.sh
|
||||||
|
+++ b/modules.d/95nfs/module-setup.sh
|
||||||
|
@@ -62,12 +62,8 @@ install() {
|
||||||
|
|
||||||
|
# Rather than copy the passwd file in, just set a user for rpcbind
|
||||||
|
# We'll save the state and restart the daemon from the root anyway
|
||||||
|
- egrep '^nfsnobody:' /etc/passwd >> "$initdir/etc/passwd"
|
||||||
|
- egrep '^rpc:' /etc/passwd >> "$initdir/etc/passwd"
|
||||||
|
- egrep '^rpcuser:' /etc/passwd >> "$initdir/etc/passwd"
|
||||||
|
- #type -P nologin >/dev/null && dracut_install nologin
|
||||||
|
- egrep '^nobody:' /etc/group >> "$initdir/etc/group"
|
||||||
|
- egrep '^rpc:' /etc/group >> "$initdir/etc/group"
|
||||||
|
+ egrep '^nfsnobody:|^rpc:|^rpcuser:' /etc/passwd >> "$initdir/etc/passwd"
|
||||||
|
+ egrep '^nogroup:|^rpc:|^nobody:' /etc/group >> "$initdir/etc/group"
|
||||||
|
|
||||||
|
# rpc user needs to be able to write to this directory to save the warmstart
|
||||||
|
# file
|
209
0011-dracut-functions.sh-make-use-of-findmnt.patch
Normal file
209
0011-dracut-functions.sh-make-use-of-findmnt.patch
Normal file
@ -0,0 +1,209 @@
|
|||||||
|
From 9d36d4fb1d0774d9ef0597abb79390e88771bf1e Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Tue, 9 Apr 2013 10:47:39 +0200
|
||||||
|
Subject: [PATCH] dracut-functions.sh: make use of findmnt
|
||||||
|
|
||||||
|
---
|
||||||
|
dracut-functions.sh | 163 +++++++++++++++++++++-------------------------------
|
||||||
|
1 file changed, 64 insertions(+), 99 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
||||||
|
index eba7412..96d3c6e 100755
|
||||||
|
--- a/dracut-functions.sh
|
||||||
|
+++ b/dracut-functions.sh
|
||||||
|
@@ -319,131 +319,96 @@ get_maj_min() {
|
||||||
|
# $ find_block_device /usr
|
||||||
|
# 8:4
|
||||||
|
find_block_device() {
|
||||||
|
- local _x _mpt _majmin _dev _fs _maj _min _find_mpt
|
||||||
|
+ local _majmin _dev _majmin _find_mpt
|
||||||
|
_find_mpt="$1"
|
||||||
|
if [[ $use_fstab != yes ]]; then
|
||||||
|
- while read _x; do
|
||||||
|
- set -- $_x
|
||||||
|
- _majmin="$3"
|
||||||
|
- _mpt="$5"
|
||||||
|
- [[ $8 = "-" ]] && shift
|
||||||
|
- _fs="$8"
|
||||||
|
- _dev="$9"
|
||||||
|
- [[ $_mpt = $_find_mpt ]] || continue
|
||||||
|
- [[ $_fs = nfs ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_fs = btrfs ]] && {
|
||||||
|
- get_maj_min $_dev
|
||||||
|
- return 0;
|
||||||
|
- }
|
||||||
|
- if [[ ${_majmin#0:} = $_majmin ]]; then
|
||||||
|
- echo $_majmin
|
||||||
|
- return 0 # we have a winner!
|
||||||
|
+ [[ -d $_find_mpt/. ]]
|
||||||
|
+ while read _majmin _dev; do
|
||||||
|
+ if [[ -b $_dev ]]; then
|
||||||
|
+ if ! [[ $_majmin ]] || [[ $_majmin == 0:* ]]; then
|
||||||
|
+ read _majmin < <(get_maj_min $_dev)
|
||||||
|
+ fi
|
||||||
|
+ if [[ $_majmin ]]; then
|
||||||
|
+ echo $_majmin
|
||||||
|
+ else
|
||||||
|
+ echo $_dev
|
||||||
|
+ fi
|
||||||
|
+ return 0
|
||||||
|
+ fi
|
||||||
|
+ if [[ $_dev = *:* ]]; then
|
||||||
|
+ echo $_dev
|
||||||
|
+ return 0
|
||||||
|
fi
|
||||||
|
- done < /proc/self/mountinfo
|
||||||
|
+ done < <(findmnt -e -v -n -o 'MAJ:MIN,SOURCE' "$_find_mpt")
|
||||||
|
fi
|
||||||
|
# fall back to /etc/fstab
|
||||||
|
- while read _dev _mpt _fs _x; do
|
||||||
|
- [ "${_dev%%#*}" != "$_dev" ] && continue
|
||||||
|
-
|
||||||
|
- if [[ $_mpt = $_find_mpt ]]; then
|
||||||
|
- [[ $_fs = nfs ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_fs = nfs3 ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_fs = nfs4 ]] && { echo $_dev; return 0;}
|
||||||
|
- [[ $_dev != ${_dev#UUID=} ]] && _dev=/dev/disk/by-uuid/${_dev#UUID=}
|
||||||
|
- [[ $_dev != ${_dev#LABEL=} ]] && _dev=/dev/disk/by-label/${_dev#LABEL=}
|
||||||
|
- [[ -b $_dev ]] || return 1 # oops, not a block device.
|
||||||
|
- get_maj_min "$_dev" && return 0
|
||||||
|
+
|
||||||
|
+ while read _majmin _dev; do
|
||||||
|
+ if ! [[ $_dev ]]; then
|
||||||
|
+ _dev="$_majmin"
|
||||||
|
+ unset _majmin
|
||||||
|
+ fi
|
||||||
|
+ if [[ -b $_dev ]]; then
|
||||||
|
+ [[ $_majmin ]] || read _majmin < <(get_maj_min $_dev)
|
||||||
|
+ if [[ $_majmin ]]; then
|
||||||
|
+ echo $_majmin
|
||||||
|
+ else
|
||||||
|
+ echo $_dev
|
||||||
|
+ fi
|
||||||
|
+ return 0
|
||||||
|
+ fi
|
||||||
|
+ if [[ $_dev = *:* ]]; then
|
||||||
|
+ echo $_dev
|
||||||
|
+ return 0
|
||||||
|
fi
|
||||||
|
- done < /etc/fstab
|
||||||
|
+ done < <(findmnt -e --fstab -v -n -o 'MAJ:MIN,SOURCE' "$_find_mpt")
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
-# find_dev_fstype <device>
|
||||||
|
-# Echo the filesystem type for a given device.
|
||||||
|
+# find_mp_fstype <mountpoint>
|
||||||
|
+# Echo the filesystem type for a given mountpoint.
|
||||||
|
# /proc/self/mountinfo is taken as the primary source of information
|
||||||
|
# and /etc/fstab is used as a fallback.
|
||||||
|
# No newline is appended!
|
||||||
|
# Example:
|
||||||
|
-# $ find_dev_fstype /dev/sda2;echo
|
||||||
|
+# $ find_mp_fstype /;echo
|
||||||
|
# ext4
|
||||||
|
-find_dev_fstype() {
|
||||||
|
- local _x _mpt _majmin _dev _fs _maj _min _find_dev
|
||||||
|
- _find_dev="$1"
|
||||||
|
- strstr "$_find_dev" "/dev" || _find_dev="/dev/block/$_find_dev"
|
||||||
|
- while read _x; do
|
||||||
|
- set -- $_x
|
||||||
|
- _majmin="$3"
|
||||||
|
- _mpt="$5"
|
||||||
|
- [[ $8 = "-" ]] && shift
|
||||||
|
- _fs="$8"
|
||||||
|
- _dev="$9"
|
||||||
|
- strstr "$_dev" "/dev" || continue
|
||||||
|
- [[ $_dev -ef $_find_dev ]] || continue
|
||||||
|
- [[ $_fs = "autofs" ]] && continue
|
||||||
|
- echo -n $_fs;
|
||||||
|
- return 0;
|
||||||
|
- done < /proc/self/mountinfo
|
||||||
|
+find_mp_fstype() {
|
||||||
|
+ local _fs
|
||||||
|
|
||||||
|
- # fall back to /etc/fstab
|
||||||
|
- while read _dev _mpt _fs _x; do
|
||||||
|
- [ "${_dev%%#*}" != "$_dev" ] && continue
|
||||||
|
- case "$_dev" in
|
||||||
|
- LABEL=*)
|
||||||
|
- _dev="$(echo $_dev | sed 's,/,\\x2f,g')"
|
||||||
|
- _dev="/dev/disk/by-label/${_dev#LABEL=}"
|
||||||
|
- ;;
|
||||||
|
- UUID=*)
|
||||||
|
- _dev="/dev/disk/by-uuid/${_dev#UUID=}"
|
||||||
|
- ;;
|
||||||
|
- PARTUUID=*)
|
||||||
|
- _dev="/dev/disk/by-partuuid/${_dev#PARTUUID=}"
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
+ if [[ $use_fstab != yes ]]; then
|
||||||
|
+ while read _fs; do
|
||||||
|
+ [[ $_fs ]] || continue
|
||||||
|
+ [[ $_fs = "autofs" ]] && continue
|
||||||
|
+ echo -n $_fs
|
||||||
|
+ return 0
|
||||||
|
+ done < <(findmnt -e -v -n -o 'FSTYPE' "$1")
|
||||||
|
+ fi
|
||||||
|
|
||||||
|
- [[ $_dev -ef $_find_dev ]] || continue
|
||||||
|
- echo -n $_fs;
|
||||||
|
- return 0;
|
||||||
|
- done < /etc/fstab
|
||||||
|
+ while read _fs; do
|
||||||
|
+ [[ $_fs ]] || continue
|
||||||
|
+ [[ $_fs = "autofs" ]] && continue
|
||||||
|
+ echo -n $_fs
|
||||||
|
+ return 0
|
||||||
|
+ done < <(findmnt --fstab -e -v -n -o 'FSTYPE' "$1")
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
-# find_mp_fstype <mountpoint>
|
||||||
|
-# Echo the filesystem type for a given mountpoint.
|
||||||
|
+# find_dev_fstype <device>
|
||||||
|
+# Echo the filesystem type for a given device.
|
||||||
|
# /proc/self/mountinfo is taken as the primary source of information
|
||||||
|
# and /etc/fstab is used as a fallback.
|
||||||
|
# No newline is appended!
|
||||||
|
# Example:
|
||||||
|
-# $ find_mp_fstype /;echo
|
||||||
|
+# $ find_dev_fstype /dev/sda2;echo
|
||||||
|
# ext4
|
||||||
|
-find_mp_fstype() {
|
||||||
|
- local _x _mpt _majmin _dev _fs _maj _min _find_mpt
|
||||||
|
- _find_mpt="$1"
|
||||||
|
- while read _x; do
|
||||||
|
- set -- $_x
|
||||||
|
- _majmin="$3"
|
||||||
|
- _mpt="$5"
|
||||||
|
- [[ $8 = "-" ]] && shift
|
||||||
|
- _fs="$8"
|
||||||
|
- _dev="$9"
|
||||||
|
- [[ $_mpt = $_find_mpt ]] || continue
|
||||||
|
- [[ $_fs = "autofs" ]] && continue
|
||||||
|
- echo -n $_fs;
|
||||||
|
- return 0;
|
||||||
|
- done < /proc/self/mountinfo
|
||||||
|
-
|
||||||
|
- # fall back to /etc/fstab
|
||||||
|
- while read _dev _mpt _fs _x; do
|
||||||
|
- [ "${_dev%%#*}" != "$_dev" ] && continue
|
||||||
|
- [[ $_mpt = $_find_mpt ]] || continue
|
||||||
|
- echo -n $_fs;
|
||||||
|
- return 0;
|
||||||
|
- done < /etc/fstab
|
||||||
|
-
|
||||||
|
- return 1
|
||||||
|
+find_dev_fstype() {
|
||||||
|
+ local _x _mpt _majmin _dev _fs _maj _min _find_dev
|
||||||
|
+ _find_dev="$1"
|
||||||
|
+ [[ "$_find_dev" = /dev* ]] || _find_dev="/dev/block/$_find_dev"
|
||||||
|
+ find_mp_fstype "$_find_dev"
|
||||||
|
}
|
||||||
|
|
||||||
|
# finds the major:minor of the block device backing the root filesystem.
|
@ -0,0 +1,38 @@
|
|||||||
|
From 96efbc51acd7f65f0f254b17d87da7d0465032c1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Tue, 9 Apr 2013 10:48:26 +0200
|
||||||
|
Subject: [PATCH] crypt/module-setup.sh: filter /etc/crypttab in host-only mode
|
||||||
|
|
||||||
|
only take those /etc/crypttab entries, which we need to boot the system
|
||||||
|
---
|
||||||
|
modules.d/90crypt/module-setup.sh | 17 ++++++++++++++++-
|
||||||
|
1 file changed, 16 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/90crypt/module-setup.sh b/modules.d/90crypt/module-setup.sh
|
||||||
|
index b76f6ae..3c9a1f1 100755
|
||||||
|
--- a/modules.d/90crypt/module-setup.sh
|
||||||
|
+++ b/modules.d/90crypt/module-setup.sh
|
||||||
|
@@ -56,7 +56,22 @@ install() {
|
||||||
|
if ! dracut_module_included "systemd"; then
|
||||||
|
inst_hook cleanup 30 "$moddir/crypt-cleanup.sh"
|
||||||
|
fi
|
||||||
|
- [[ $hostonly ]] && inst_simple /etc/crypttab
|
||||||
|
+
|
||||||
|
+ if [[ $hostonly ]]; then
|
||||||
|
+ # filter /etc/crypttab for the devices we need
|
||||||
|
+ while read _mapper _dev _rest; do
|
||||||
|
+ [[ $_mapper = \#* ]] && continue
|
||||||
|
+ [[ $_dev ]] || continue
|
||||||
|
+ for _hdev in "${!host_fs_types[@]}"; do
|
||||||
|
+ [[ ${host_fs_types[$_hdev]} == "crypto_LUKS" ]] || continue
|
||||||
|
+ if [[ $_hdev -ef $_dev ]] || [[ /dev/block/$_hdev -ef $_dev ]]; then
|
||||||
|
+ echo "$_mapper $_dev $_rest"
|
||||||
|
+ break
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
+ done < /etc/crypttab > $initdir/etc/crypttab
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
inst_simple "$moddir/crypt-lib.sh" "/lib/dracut-crypt-lib.sh"
|
||||||
|
|
||||||
|
dracut_install -o \
|
@ -0,0 +1,54 @@
|
|||||||
|
From a55f910cf6f13e1a6d9d5be769297ee3ecc64bb9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: WANG Chao <chaowang@redhat.com>
|
||||||
|
Date: Mon, 1 Apr 2013 20:34:40 +0800
|
||||||
|
Subject: [PATCH] ifup.sh: Add support for bridge over team and vlan tagged
|
||||||
|
team
|
||||||
|
|
||||||
|
Team is the same network stack as bonding. Therefore give ifup the ability to
|
||||||
|
handle bridge over team and vlan tagged team as bonding too.
|
||||||
|
|
||||||
|
Signed-off-by: WANG Chao <chaowang@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/40network/ifup.sh | 8 ++++++++
|
||||||
|
1 file changed, 8 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
|
||||||
|
index 582278f..815ab64 100755
|
||||||
|
--- a/modules.d/40network/ifup.sh
|
||||||
|
+++ b/modules.d/40network/ifup.sh
|
||||||
|
@@ -46,6 +46,8 @@ if [ -e /tmp/bridge.info ]; then
|
||||||
|
if [ "$netif" = "$ethname" ]; then
|
||||||
|
if [ "$netif" = "$bondname" ] && [ -n "$DO_BOND_SETUP" ] ; then
|
||||||
|
: # We need to really setup bond (recursive call)
|
||||||
|
+ elif [ "$netif" = "$teammaster" ] && [ -n "$DO_TEAM_SETUP" ] ; then
|
||||||
|
+ : # We need to really setup team (recursive call)
|
||||||
|
else
|
||||||
|
netif="$bridgename"
|
||||||
|
use_bridge='true'
|
||||||
|
@@ -59,6 +61,8 @@ if [ -e /tmp/vlan.info ]; then
|
||||||
|
if [ "$netif" = "$phydevice" ]; then
|
||||||
|
if [ "$netif" = "$bondname" ] && [ -n "$DO_BOND_SETUP" ] ; then
|
||||||
|
: # We need to really setup bond (recursive call)
|
||||||
|
+ elif [ "$netif" = "$teammaster" ] && [ -n "$DO_TEAM_SETUP" ] ; then
|
||||||
|
+ : # We need to really setup team (recursive call)
|
||||||
|
else
|
||||||
|
netif="$vlanname"
|
||||||
|
use_vlan='true'
|
||||||
|
@@ -212,6 +216,8 @@ if [ -e /tmp/bridge.info ]; then
|
||||||
|
for ethname in $ethnames ; do
|
||||||
|
if [ "$ethname" = "$bondname" ] ; then
|
||||||
|
DO_BOND_SETUP=yes ifup $bondname -m
|
||||||
|
+ elif [ "$ethname" = "$teammaster" ] ; then
|
||||||
|
+ DO_TEAM_SETUP=yes ifup $teammaster -m
|
||||||
|
else
|
||||||
|
linkup $ethname
|
||||||
|
fi
|
||||||
|
@@ -235,6 +241,8 @@ if [ "$netif" = "$vlanname" ] && [ ! -e /tmp/net.$vlanname.up ]; then
|
||||||
|
modprobe 8021q
|
||||||
|
if [ "$phydevice" = "$bondname" ] ; then
|
||||||
|
DO_BOND_SETUP=yes ifup $phydevice -m
|
||||||
|
+ elif [ "$phydevice" = "$teammaster" ] ; then
|
||||||
|
+ DO_TEAM_SETUP=yes ifup $phydevice -m
|
||||||
|
else
|
||||||
|
linkup "$phydevice"
|
||||||
|
fi
|
145
0014-network-support-multiple-bonding-interfaces.patch
Normal file
145
0014-network-support-multiple-bonding-interfaces.patch
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
From d136ca4eeb3d7be2beef210dcf51a18210900844 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Harald Hoyer <harald@redhat.com>
|
||||||
|
Date: Mon, 8 Apr 2013 17:47:49 +0800
|
||||||
|
Subject: [PATCH] network: support multiple bonding interfaces
|
||||||
|
|
||||||
|
Currently dracut only support 1 bond, namyly bond0 by default. However multiple
|
||||||
|
bonds configuration may be needed. For example in kdump, in 1st kernel, more
|
||||||
|
than one bonds may be configured, and bondX other than bond0 is used as output
|
||||||
|
interface to remote host which will store dump core. This patch can solve this
|
||||||
|
problem, to write real bond information to initramfs, 2nd kdump kernel will
|
||||||
|
use it to create the relevant bondX interface.
|
||||||
|
|
||||||
|
Tested-by: Baoquan He <bhe@redhat.com>
|
||||||
|
Signed-off-by: Baoquan He <bhe@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/40network/ifup.sh | 15 ++++++++++-----
|
||||||
|
modules.d/40network/net-genrules.sh | 9 ++++++---
|
||||||
|
modules.d/40network/parse-bond.sh | 6 +++---
|
||||||
|
modules.d/40network/parse-bridge.sh | 6 ------
|
||||||
|
modules.d/45ifcfg/write-ifcfg.sh | 9 +++++----
|
||||||
|
5 files changed, 24 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
|
||||||
|
index 815ab64..593f387 100755
|
||||||
|
--- a/modules.d/40network/ifup.sh
|
||||||
|
+++ b/modules.d/40network/ifup.sh
|
||||||
|
@@ -21,14 +21,18 @@ use_bridge='false'
|
||||||
|
use_vlan='false'
|
||||||
|
|
||||||
|
# enslave this interface to bond?
|
||||||
|
-if [ -e /tmp/bond.info ]; then
|
||||||
|
- . /tmp/bond.info
|
||||||
|
+for i in /tmp/bond.*.info; do
|
||||||
|
+ [ -e "$i" ] || continue
|
||||||
|
+ unset bondslaves
|
||||||
|
+ unset bondname
|
||||||
|
+ . "$i"
|
||||||
|
for slave in $bondslaves ; do
|
||||||
|
if [ "$netif" = "$slave" ] ; then
|
||||||
|
netif=$bondname
|
||||||
|
+ break 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
-fi
|
||||||
|
+done
|
||||||
|
|
||||||
|
if [ -e /tmp/team.info ]; then
|
||||||
|
. /tmp/team.info
|
||||||
|
@@ -138,11 +142,12 @@ if [ "$netif" = "lo" ] ; then
|
||||||
|
fi
|
||||||
|
|
||||||
|
# start bond if needed
|
||||||
|
-if [ -e /tmp/bond.info ]; then
|
||||||
|
- . /tmp/bond.info
|
||||||
|
+if [ -e /tmp/bond.${netif}.info ]; then
|
||||||
|
+ . /tmp/bond.${netif}.info
|
||||||
|
|
||||||
|
if [ "$netif" = "$bondname" ] && [ ! -e /tmp/net.$bondname.up ] ; then # We are master bond device
|
||||||
|
modprobe bonding
|
||||||
|
+ echo "+$netif" > /sys/class/net/bonding_masters
|
||||||
|
ip link set $netif down
|
||||||
|
|
||||||
|
# Stolen from ifup-eth
|
||||||
|
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
|
||||||
|
index f4652b9..05fa5f3 100755
|
||||||
|
--- a/modules.d/40network/net-genrules.sh
|
||||||
|
+++ b/modules.d/40network/net-genrules.sh
|
||||||
|
@@ -28,11 +28,14 @@ fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bond: attempt only the defined interface (override bridge defines)
|
||||||
|
- if [ -e /tmp/bond.info ]; then
|
||||||
|
- . /tmp/bond.info
|
||||||
|
+ for i in /tmp/bond.*.info; do
|
||||||
|
+ [ -e "$i" ] || continue
|
||||||
|
+ unset bondslaves
|
||||||
|
+ unset bondname
|
||||||
|
+ . "$i"
|
||||||
|
# It is enough to fire up only one
|
||||||
|
IFACES="$IFACES ${bondslaves%% *}"
|
||||||
|
- fi
|
||||||
|
+ done
|
||||||
|
|
||||||
|
if [ -e /tmp/team.info ]; then
|
||||||
|
. /tmp/team.info
|
||||||
|
diff --git a/modules.d/40network/parse-bond.sh b/modules.d/40network/parse-bond.sh
|
||||||
|
index 983eb3a..25c51b8 100755
|
||||||
|
--- a/modules.d/40network/parse-bond.sh
|
||||||
|
+++ b/modules.d/40network/parse-bond.sh
|
||||||
|
@@ -54,8 +54,8 @@ if getarg bond >/dev/null; then
|
||||||
|
fi
|
||||||
|
# Make it suitable for initscripts export
|
||||||
|
bondoptions=$(str_replace "$bondoptions" ";" ",")
|
||||||
|
- echo "bondname=$bondname" > /tmp/bond.info
|
||||||
|
- echo "bondslaves=\"$bondslaves\"" >> /tmp/bond.info
|
||||||
|
- echo "bondoptions=\"$bondoptions\"" >> /tmp/bond.info
|
||||||
|
+ echo "bondname=$bondname" > /tmp/bond.${bondname}.info
|
||||||
|
+ echo "bondslaves=\"$bondslaves\"" >> /tmp/bond.${bondname}.info
|
||||||
|
+ echo "bondoptions=\"$bondoptions\"" >> /tmp/bond.${bondname}.info
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
diff --git a/modules.d/40network/parse-bridge.sh b/modules.d/40network/parse-bridge.sh
|
||||||
|
index 1f027bb..8c305c0 100755
|
||||||
|
--- a/modules.d/40network/parse-bridge.sh
|
||||||
|
+++ b/modules.d/40network/parse-bridge.sh
|
||||||
|
@@ -37,12 +37,6 @@ parsebridge() {
|
||||||
|
unset bridgename ethnames
|
||||||
|
|
||||||
|
iface=eth0
|
||||||
|
-if [ -e /tmp/bond.info ]; then
|
||||||
|
- . /tmp/bond.info
|
||||||
|
- if [ -n "$bondname" ] ; then
|
||||||
|
- iface=$bondname
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
|
||||||
|
# Parse bridge for bridgename and ethnames
|
||||||
|
if bridge="$(getarg bridge)"; then
|
||||||
|
diff --git a/modules.d/45ifcfg/write-ifcfg.sh b/modules.d/45ifcfg/write-ifcfg.sh
|
||||||
|
index f7a476c..16da5e4 100755
|
||||||
|
--- a/modules.d/45ifcfg/write-ifcfg.sh
|
||||||
|
+++ b/modules.d/45ifcfg/write-ifcfg.sh
|
||||||
|
@@ -9,10 +9,6 @@ udevadm settle --timeout=30
|
||||||
|
|
||||||
|
read IFACES < /tmp/net.ifaces
|
||||||
|
|
||||||
|
-if [ -e /tmp/bond.info ]; then
|
||||||
|
- . /tmp/bond.info
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
if [ -e /tmp/bridge.info ]; then
|
||||||
|
. /tmp/bridge.info
|
||||||
|
fi
|
||||||
|
@@ -89,6 +85,11 @@ for netif in $IFACES ; do
|
||||||
|
# bridge?
|
||||||
|
unset bridge
|
||||||
|
unset bond
|
||||||
|
+ unset bondslaves
|
||||||
|
+ unset bondname
|
||||||
|
+ unset bondoptions
|
||||||
|
+ [ -e /tmp/bond.${netif}.info ] && . /tmp/bond.${netif}.info
|
||||||
|
+
|
||||||
|
uuid=$(cat /proc/sys/kernel/random/uuid)
|
||||||
|
if [ "$netif" = "$bridgename" ]; then
|
||||||
|
bridge=yes
|
57
0015-Wait-for-logical-interface-to-be-up.patch
Normal file
57
0015-Wait-for-logical-interface-to-be-up.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From 0290e98271af41423e16801b959779c945ee4d59 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Baoquan He <bhe@redhat.com>
|
||||||
|
Date: Mon, 8 Apr 2013 17:47:50 +0800
|
||||||
|
Subject: [PATCH] Wait for logical interface to be up
|
||||||
|
|
||||||
|
If bootdev is logical interface like bond, bridge or vlan, we need
|
||||||
|
wait them up.
|
||||||
|
|
||||||
|
Signed-off-by: Baoquan He <bhe@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/40network/net-genrules.sh | 9 +++++++++
|
||||||
|
1 file changed, 9 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/modules.d/40network/net-genrules.sh b/modules.d/40network/net-genrules.sh
|
||||||
|
index 05fa5f3..8bf6a89 100755
|
||||||
|
--- a/modules.d/40network/net-genrules.sh
|
||||||
|
+++ b/modules.d/40network/net-genrules.sh
|
||||||
|
@@ -25,6 +25,7 @@ fi
|
||||||
|
if [ -e /tmp/bridge.info ]; then
|
||||||
|
. /tmp/bridge.info
|
||||||
|
IFACES="$IFACES ${ethnames%% *}"
|
||||||
|
+ MASTER_IFACES="$MASTER_IFACES $bridgename"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# bond: attempt only the defined interface (override bridge defines)
|
||||||
|
@@ -35,16 +36,19 @@ fi
|
||||||
|
. "$i"
|
||||||
|
# It is enough to fire up only one
|
||||||
|
IFACES="$IFACES ${bondslaves%% *}"
|
||||||
|
+ MASTER_IFACES="$MASTER_IFACES ${bondname}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -e /tmp/team.info ]; then
|
||||||
|
. /tmp/team.info
|
||||||
|
IFACES="$IFACES ${teamslaves}"
|
||||||
|
+ MASTER_IFACES="$MASTER_IFACES ${teammaster}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e /tmp/vlan.info ]; then
|
||||||
|
. /tmp/vlan.info
|
||||||
|
IFACES="$IFACES $phydevice"
|
||||||
|
+ MASTER_IFACES="$MASTER_IFACES ${vlanname}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$IFACES" ]; then
|
||||||
|
@@ -74,6 +78,11 @@ fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
+ for iface in $MASTER_IFACES; do
|
||||||
|
+ if [ "$bootdev" = "$iface" ]; then
|
||||||
|
+ echo "[ -f /tmp/setup_net_${iface}.ok ]" >$hookdir/initqueue/finished/wait-$iface.sh
|
||||||
|
+ fi
|
||||||
|
+ done
|
||||||
|
# Default: We don't know the interface to use, handle all
|
||||||
|
# Fixme: waiting for the interface as well.
|
||||||
|
else
|
222
0016-Let-user-specify-the-action-after-fail.patch
Normal file
222
0016-Let-user-specify-the-action-after-fail.patch
Normal file
@ -0,0 +1,222 @@
|
|||||||
|
From 9d787df19674937e8c07bd295b5d282a63829209 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Baoquan He <bhe@redhat.com>
|
||||||
|
Date: Fri, 29 Mar 2013 18:36:16 +0800
|
||||||
|
Subject: [PATCH] Let user specify the action after fail
|
||||||
|
|
||||||
|
Currently the default action is emergency_shell when failure happened
|
||||||
|
during system boot. In kdump, this default may not be expected. E.g,
|
||||||
|
if dump target is not rootfs, it does not matter if mount root failed.
|
||||||
|
Adding an action which allow dracut always go ahead though failure
|
||||||
|
happens is needed by kdump.
|
||||||
|
|
||||||
|
So here add a function action_on_fail() and cmdline parameter
|
||||||
|
action_on_fail=<shell | continue>. Use action_to_fail() to replace
|
||||||
|
emergency_shell which was called after failure. By $(getarg action_on_fail=),
|
||||||
|
decide to drop into shell, or to leave away the failure and go ahead.
|
||||||
|
|
||||||
|
v3->v4:
|
||||||
|
add handling of selinux policy loaded failure, and change code format to
|
||||||
|
be consitent
|
||||||
|
|
||||||
|
Signed-off-by: Baoquan He <bhe@redhat.com>
|
||||||
|
|
||||||
|
[Edited by harald@redhat.com]
|
||||||
|
---
|
||||||
|
dracut.cmdline.7.asc | 4 ++++
|
||||||
|
modules.d/95rootfs-block/mount-root.sh | 2 +-
|
||||||
|
modules.d/98selinux/selinux-loadpolicy.sh | 6 ++----
|
||||||
|
modules.d/98systemd/dracut-initqueue.sh | 2 +-
|
||||||
|
modules.d/98systemd/dracut-mount.sh | 2 +-
|
||||||
|
modules.d/98usrmount/mount-usr.sh | 4 ++--
|
||||||
|
modules.d/99base/dracut-lib.sh | 22 ++++++++++++++++++++++
|
||||||
|
modules.d/99base/init.sh | 12 ++++++------
|
||||||
|
8 files changed, 39 insertions(+), 15 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/dracut.cmdline.7.asc b/dracut.cmdline.7.asc
|
||||||
|
index f1457d5..4626279 100644
|
||||||
|
--- a/dracut.cmdline.7.asc
|
||||||
|
+++ b/dracut.cmdline.7.asc
|
||||||
|
@@ -121,6 +121,10 @@ Misc
|
||||||
|
specify the controlling terminal for the console.
|
||||||
|
This is useful, if you have multiple "console=" arguments.
|
||||||
|
|
||||||
|
+**action_on_fail=**_{shell|continue}_::
|
||||||
|
+ Specify the action after failure. By default it's emergency_shell.
|
||||||
|
+ 'continue' means: ignore the current failure and go ahead.
|
||||||
|
+
|
||||||
|
[[dracutkerneldebug]]
|
||||||
|
Debug
|
||||||
|
~~~~~
|
||||||
|
diff --git a/modules.d/95rootfs-block/mount-root.sh b/modules.d/95rootfs-block/mount-root.sh
|
||||||
|
index c7626c3..6ed35c1 100755
|
||||||
|
--- a/modules.d/95rootfs-block/mount-root.sh
|
||||||
|
+++ b/modules.d/95rootfs-block/mount-root.sh
|
||||||
|
@@ -68,7 +68,7 @@ mount_root() {
|
||||||
|
warn "*** Warning -- the system did not shut down cleanly. "
|
||||||
|
warn "*** Dropping you to a shell; the system will continue"
|
||||||
|
warn "*** when you leave the shell."
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
fi
|
||||||
|
fsckoptions="$AUTOFSCK_OPT $fsckoptions"
|
||||||
|
fi
|
||||||
|
diff --git a/modules.d/98selinux/selinux-loadpolicy.sh b/modules.d/98selinux/selinux-loadpolicy.sh
|
||||||
|
index d6e24d6..7526265 100755
|
||||||
|
--- a/modules.d/98selinux/selinux-loadpolicy.sh
|
||||||
|
+++ b/modules.d/98selinux/selinux-loadpolicy.sh
|
||||||
|
@@ -52,16 +52,14 @@ rd_load_policy()
|
||||||
|
if [ $ret -eq 3 -o $permissive -eq 0 ]; then
|
||||||
|
warn "Machine in enforcing mode."
|
||||||
|
warn "Not continuing"
|
||||||
|
- emergency_shell -n selinux
|
||||||
|
- exit 1
|
||||||
|
+ action_on_fail -n selinux || exit 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
elif [ $permissive -eq 0 -a "$SELINUX" != "disabled" ]; then
|
||||||
|
warn "Machine in enforcing mode and cannot execute load_policy."
|
||||||
|
warn "To disable selinux, add selinux=0 to the kernel command line."
|
||||||
|
warn "Not continuing"
|
||||||
|
- emergency_shell -n selinux
|
||||||
|
- exit 1
|
||||||
|
+ action_on_fail -n selinux || exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/modules.d/98systemd/dracut-initqueue.sh b/modules.d/98systemd/dracut-initqueue.sh
|
||||||
|
index c6fab30..2c71bf4 100755
|
||||||
|
--- a/modules.d/98systemd/dracut-initqueue.sh
|
||||||
|
+++ b/modules.d/98systemd/dracut-initqueue.sh
|
||||||
|
@@ -62,7 +62,7 @@ while :; do
|
||||||
|
fi
|
||||||
|
|
||||||
|
main_loop=$(($main_loop+1))
|
||||||
|
- [ $main_loop -gt $RDRETRY ] && emergency_shell "Could not boot."
|
||||||
|
+ [ $main_loop -gt $RDRETRY ] && action_on_fail "Could not boot." && break
|
||||||
|
done
|
||||||
|
|
||||||
|
unset job
|
||||||
|
diff --git a/modules.d/98systemd/dracut-mount.sh b/modules.d/98systemd/dracut-mount.sh
|
||||||
|
index 5f3d9f0..ae01512 100755
|
||||||
|
--- a/modules.d/98systemd/dracut-mount.sh
|
||||||
|
+++ b/modules.d/98systemd/dracut-mount.sh
|
||||||
|
@@ -31,7 +31,7 @@ while :; do
|
||||||
|
done
|
||||||
|
|
||||||
|
i=$(($i+1))
|
||||||
|
- [ $i -gt 20 ] && emergency_shell "Can't mount root filesystem"
|
||||||
|
+ [ $i -gt 20 ] && action_on_fail "Can't mount root filesystem" && break
|
||||||
|
done
|
||||||
|
|
||||||
|
export -p > /dracut-state.sh
|
||||||
|
diff --git a/modules.d/98usrmount/mount-usr.sh b/modules.d/98usrmount/mount-usr.sh
|
||||||
|
index 5aaefbc..a4a66ae 100755
|
||||||
|
--- a/modules.d/98usrmount/mount-usr.sh
|
||||||
|
+++ b/modules.d/98usrmount/mount-usr.sh
|
||||||
|
@@ -42,7 +42,7 @@ fsck_usr()
|
||||||
|
warn "*** Warning -- the system did not shut down cleanly. "
|
||||||
|
warn "*** Dropping you to a shell; the system will continue"
|
||||||
|
warn "*** when you leave the shell."
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
fi
|
||||||
|
_fsckoptions="$AUTOFSCK_OPT $_fsckoptions"
|
||||||
|
fi
|
||||||
|
@@ -105,7 +105,7 @@ mount_usr()
|
||||||
|
warn "Mounting /usr to $NEWROOT/usr failed"
|
||||||
|
warn "*** Dropping you to a shell; the system will continue"
|
||||||
|
warn "*** when you leave the shell."
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
diff --git a/modules.d/99base/dracut-lib.sh b/modules.d/99base/dracut-lib.sh
|
||||||
|
index f2b16d3..1defb6f 100755
|
||||||
|
--- a/modules.d/99base/dracut-lib.sh
|
||||||
|
+++ b/modules.d/99base/dracut-lib.sh
|
||||||
|
@@ -994,6 +994,28 @@ emergency_shell()
|
||||||
|
[ -e /run/initramfs/.die ] && exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
+action_on_fail()
|
||||||
|
+{
|
||||||
|
+ local _action=$(getarg action_on_fail=)
|
||||||
|
+ case "$_action" in
|
||||||
|
+ continue)
|
||||||
|
+ [ "$1" = "-n" ] && shift 2
|
||||||
|
+ [ "$1" = "--shutdown" ] && shift 2
|
||||||
|
+ warn "$*"
|
||||||
|
+ warn "Not dropping to emergency shell, because 'action_on_fail=continue' was set on the kernel command line."
|
||||||
|
+ return 0
|
||||||
|
+ ;;
|
||||||
|
+ shell)
|
||||||
|
+ emergency_shell $@
|
||||||
|
+ return 1
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ emergency_shell $@
|
||||||
|
+ return 1
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
# Retain the values of these variables but ensure that they are unexported
|
||||||
|
# This is a POSIX-compliant equivalent of bash's "export -n"
|
||||||
|
export_n()
|
||||||
|
diff --git a/modules.d/99base/init.sh b/modules.d/99base/init.sh
|
||||||
|
index 410201a..880a2c0 100755
|
||||||
|
--- a/modules.d/99base/init.sh
|
||||||
|
+++ b/modules.d/99base/init.sh
|
||||||
|
@@ -79,7 +79,7 @@ if ! ismounted /run; then
|
||||||
|
rm -fr /newrun
|
||||||
|
fi
|
||||||
|
|
||||||
|
-trap "emergency_shell Signal caught!" 0
|
||||||
|
+trap "action_on_fail Signal caught!" 0
|
||||||
|
|
||||||
|
[ -d /run/initramfs ] || mkdir -p -m 0755 /run/initramfs
|
||||||
|
[ -d /run/log ] || mkdir -p -m 0755 /run/log
|
||||||
|
@@ -199,7 +199,7 @@ while :; do
|
||||||
|
|
||||||
|
main_loop=$(($main_loop+1))
|
||||||
|
[ $main_loop -gt $RDRETRY ] \
|
||||||
|
- && { flock -s 9 ; emergency_shell "Could not boot."; } 9>/.console_lock
|
||||||
|
+ && { flock -s 9 ; action_on_fail "Could not boot." && break; } 9>/.console_lock
|
||||||
|
done
|
||||||
|
unset job
|
||||||
|
unset queuetriggered
|
||||||
|
@@ -234,7 +234,7 @@ while :; do
|
||||||
|
|
||||||
|
i=$(($i+1))
|
||||||
|
[ $i -gt 20 ] \
|
||||||
|
- && { flock -s 9 ; emergency_shell "Can't mount root filesystem"; } 9>/.console_lock
|
||||||
|
+ && { flock -s 9 ; action_on_fail "Can't mount root filesystem" && break; } 9>/.console_lock
|
||||||
|
done
|
||||||
|
|
||||||
|
{
|
||||||
|
@@ -268,7 +268,7 @@ done
|
||||||
|
[ "$INIT" ] || {
|
||||||
|
echo "Cannot find init!"
|
||||||
|
echo "Please check to make sure you passed a valid root filesystem!"
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ $UDEVVERSION -lt 168 ]; then
|
||||||
|
@@ -370,13 +370,13 @@ if [ -f /etc/capsdrop ]; then
|
||||||
|
warn "Command:"
|
||||||
|
warn capsh --drop=$CAPS_INIT_DROP -- -c exec switch_root "$NEWROOT" "$INIT" $initargs
|
||||||
|
warn "failed."
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
}
|
||||||
|
else
|
||||||
|
unset RD_DEBUG
|
||||||
|
exec $SWITCH_ROOT "$NEWROOT" "$INIT" $initargs || {
|
||||||
|
warn "Something went very badly wrong in the initramfs. Please "
|
||||||
|
warn "file a bug against dracut."
|
||||||
|
- emergency_shell
|
||||||
|
+ action_on_fail
|
||||||
|
}
|
||||||
|
fi
|
@ -0,0 +1,85 @@
|
|||||||
|
From 0c5ccb35c7db77caf6317e1946387504b44132e5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: WANG Chao <chaowang@redhat.com>
|
||||||
|
Date: Tue, 9 Apr 2013 18:56:40 +0800
|
||||||
|
Subject: [PATCH] ifup.sh: Add support for bridge over a vlan tagged interface
|
||||||
|
|
||||||
|
This patch add support for bridge a vlan tagged interface, like
|
||||||
|
br0 -> bond0.7 -> bond0 -> eth0
|
||||||
|
|
||||||
|
Signed-off-by: WANG Chao <chaowang@redhat.com>
|
||||||
|
---
|
||||||
|
modules.d/40network/ifup.sh | 33 +++++++++++++++++++--------------
|
||||||
|
1 file changed, 19 insertions(+), 14 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/modules.d/40network/ifup.sh b/modules.d/40network/ifup.sh
|
||||||
|
index 593f387..526251f 100755
|
||||||
|
--- a/modules.d/40network/ifup.sh
|
||||||
|
+++ b/modules.d/40network/ifup.sh
|
||||||
|
@@ -43,6 +43,20 @@ if [ -e /tmp/team.info ]; then
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
+if [ -e /tmp/vlan.info ]; then
|
||||||
|
+ . /tmp/vlan.info
|
||||||
|
+ if [ "$netif" = "$phydevice" ]; then
|
||||||
|
+ if [ "$netif" = "$bondname" ] && [ -n "$DO_BOND_SETUP" ] ; then
|
||||||
|
+ : # We need to really setup bond (recursive call)
|
||||||
|
+ elif [ "$netif" = "$teammaster" ] && [ -n "$DO_TEAM_SETUP" ] ; then
|
||||||
|
+ : # We need to really setup team (recursive call)
|
||||||
|
+ else
|
||||||
|
+ netif="$vlanname"
|
||||||
|
+ use_vlan='true'
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+fi
|
||||||
|
+
|
||||||
|
# bridge this interface?
|
||||||
|
if [ -e /tmp/bridge.info ]; then
|
||||||
|
. /tmp/bridge.info
|
||||||
|
@@ -52,6 +66,8 @@ if [ -e /tmp/bridge.info ]; then
|
||||||
|
: # We need to really setup bond (recursive call)
|
||||||
|
elif [ "$netif" = "$teammaster" ] && [ -n "$DO_TEAM_SETUP" ] ; then
|
||||||
|
: # We need to really setup team (recursive call)
|
||||||
|
+ elif [ "$netif" = "$vlanname" ] && [ -n "$DO_VLAN_SETUP" ]; then
|
||||||
|
+ : # We need to really setup vlan (recursive call)
|
||||||
|
else
|
||||||
|
netif="$bridgename"
|
||||||
|
use_bridge='true'
|
||||||
|
@@ -60,20 +76,6 @@ if [ -e /tmp/bridge.info ]; then
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
-if [ -e /tmp/vlan.info ]; then
|
||||||
|
- . /tmp/vlan.info
|
||||||
|
- if [ "$netif" = "$phydevice" ]; then
|
||||||
|
- if [ "$netif" = "$bondname" ] && [ -n "$DO_BOND_SETUP" ] ; then
|
||||||
|
- : # We need to really setup bond (recursive call)
|
||||||
|
- elif [ "$netif" = "$teammaster" ] && [ -n "$DO_TEAM_SETUP" ] ; then
|
||||||
|
- : # We need to really setup team (recursive call)
|
||||||
|
- else
|
||||||
|
- netif="$vlanname"
|
||||||
|
- use_vlan='true'
|
||||||
|
- fi
|
||||||
|
- fi
|
||||||
|
-fi
|
||||||
|
-
|
||||||
|
# disable manual ifup while netroot is set for simplifying our logic
|
||||||
|
# in netroot case we prefer netroot to bringup $netif automaticlly
|
||||||
|
[ -n "$2" -a "$2" = "-m" ] && [ -z "$netroot" ] && manualup="$2"
|
||||||
|
@@ -223,6 +225,8 @@ if [ -e /tmp/bridge.info ]; then
|
||||||
|
DO_BOND_SETUP=yes ifup $bondname -m
|
||||||
|
elif [ "$ethname" = "$teammaster" ] ; then
|
||||||
|
DO_TEAM_SETUP=yes ifup $teammaster -m
|
||||||
|
+ elif [ "$ethname" = "$vlanname" ]; then
|
||||||
|
+ DO_VLAN_SETUP=yes ifup $vlanname -m
|
||||||
|
else
|
||||||
|
linkup $ethname
|
||||||
|
fi
|
||||||
|
@@ -252,6 +256,7 @@ if [ "$netif" = "$vlanname" ] && [ ! -e /tmp/net.$vlanname.up ]; then
|
||||||
|
linkup "$phydevice"
|
||||||
|
fi
|
||||||
|
ip link add dev "$vlanname" link "$phydevice" type vlan id "$(get_vid $vlanname)"
|
||||||
|
+ ip link set "$vlanname" up
|
||||||
|
fi
|
||||||
|
|
||||||
|
# setup nameserver
|
18
dracut.spec
18
dracut.spec
@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
Name: dracut
|
Name: dracut
|
||||||
Version: 027
|
Version: 027
|
||||||
Release: 10.git20130405%{?dist}
|
Release: 18.git20130409%{?dist}
|
||||||
|
|
||||||
Summary: Initramfs generator using udev
|
Summary: Initramfs generator using udev
|
||||||
%if 0%{?fedora} || 0%{?rhel}
|
%if 0%{?fedora} || 0%{?rhel}
|
||||||
@ -38,6 +38,14 @@ Patch6: 0006-Add-missing-options-to-manpage-and-help-output.patch
|
|||||||
Patch7: 0007-TEST-50-MULTINIC-fixup-test-suite.patch
|
Patch7: 0007-TEST-50-MULTINIC-fixup-test-suite.patch
|
||||||
Patch8: 0008-TESTSUITE-s-i6300esbwdt-i6300esb-ib700wdt-g.patch
|
Patch8: 0008-TESTSUITE-s-i6300esbwdt-i6300esb-ib700wdt-g.patch
|
||||||
Patch9: 0009-TEST-99-RPM-ignore-rescue-images.patch
|
Patch9: 0009-TEST-99-RPM-ignore-rescue-images.patch
|
||||||
|
Patch10: 0010-nfs-module-setup.sh-combine-egreps-for-etc-passwd-an.patch
|
||||||
|
Patch11: 0011-dracut-functions.sh-make-use-of-findmnt.patch
|
||||||
|
Patch12: 0012-crypt-module-setup.sh-filter-etc-crypttab-in-host-on.patch
|
||||||
|
Patch13: 0013-ifup.sh-Add-support-for-bridge-over-team-and-vlan-ta.patch
|
||||||
|
Patch14: 0014-network-support-multiple-bonding-interfaces.patch
|
||||||
|
Patch15: 0015-Wait-for-logical-interface-to-be-up.patch
|
||||||
|
Patch16: 0016-Let-user-specify-the-action-after-fail.patch
|
||||||
|
Patch17: 0017-ifup.sh-Add-support-for-bridge-over-a-vlan-tagged-in.patch
|
||||||
|
|
||||||
|
|
||||||
BuildRequires: dash bash git
|
BuildRequires: dash bash git
|
||||||
@ -447,6 +455,14 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{dracutlibdir}/dracut.conf.d/02-norescue.conf
|
%{dracutlibdir}/dracut.conf.d/02-norescue.conf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 09 2013 Harald Hoyer <harald@redhat.com> 027-17.git20130409
|
||||||
|
- only include needed /etc/crypttab entries
|
||||||
|
Resolves:rhbz#919752
|
||||||
|
- add support for bridge over team and vlan
|
||||||
|
- support multiple bonding interfaces
|
||||||
|
- add "action_on_fail=" kernel command line parameter
|
||||||
|
- add support for bridge over a vlan tagged interface
|
||||||
|
|
||||||
* Fri Apr 05 2013 Harald Hoyer <harald@redhat.com> 027-10.git20130405
|
* Fri Apr 05 2013 Harald Hoyer <harald@redhat.com> 027-10.git20130405
|
||||||
- fix crypto password timeout on the dracut side
|
- fix crypto password timeout on the dracut side
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user