晋太元中,武陵人捕鱼为业。缘溪行,忘路之远近。忽逢桃花林,夹岸数百步,中无杂树,芳草鲜美,落英缤纷。渔人甚异之,复前行,欲穷其林。   林尽水源,便得一山,山有小口,仿佛若有光。便舍船,从口入。初极狭,才通人。复行数十步,豁然开朗。土地平旷,屋舍俨然,有良田、美池、桑竹之属。阡陌交通,鸡犬相闻。其中往来种作,男女衣着,悉如外人。黄发垂髫,并怡然自乐。   见渔人,乃大惊,问所从来。具答之。便要还家,设酒杀鸡作食。村中闻有此人,咸来问讯。自云先世避秦时乱,率妻子邑人来此绝境,不复出焉,遂与外人间隔。问今是何世,乃不知有汉,无论魏晋。此人一一为具言所闻,皆叹惋。余人各复延至其家,皆出酒食。停数日,辞去。此中人语云:“不足为外人道也。”(间隔 一作:隔绝)   既出,得其船,便扶向路,处处志之。及郡下,诣太守,说如此。太守即遣人随其往,寻向所志,遂迷,不复得路。   南阳刘子骥,高尚士也,闻之,欣然规往。未果,寻病终。后遂无问津者。 sh-3ll

HOME


sh-3ll 1.0
DIR:/usr/lib/dracut/modules.d/95fcoe/
Upload File :
Current File : //usr/lib/dracut/modules.d/95fcoe/parse-fcoe.sh
#!/usr/bin/sh
#
# Supported formats:
# fcoe=<networkdevice>:<dcb|nodcb>:<fabric|vn2vn>
# fcoe=<macaddress>:<dcb|nodcb>:<fabric|vn2vn>
#
# Note currently only nodcb is supported, the dcb option is reserved for
# future use.
#
# Note letters in the macaddress must be lowercase!
#
# Examples:
# fcoe=eth0:nodcb:vn2vn
# fcoe=4a:3f:4c:04:f8:d7:nodcb:fabric

if [ -z "$fcoe" ] && ! getarg fcoe=; then
    # If it's not set we don't continue
    return 0
fi

if ! getargbool 1 rd.fcoe -d -n rd.nofcoe; then
    info "rd.fcoe=0: skipping fcoe"
    return 0
fi

if ! [ -e /sys/bus/fcoe/ctlr_create ] && ! modprobe -b -a fcoe && ! modprobe -b -a libfcoe; then
    die "FCoE requested but kernel/initrd does not support FCoE"
fi

initqueue --onetime modprobe -b -q bnx2fc

parse_fcoe_opts() {
    local fcoe_interface
    local fcoe_dcb
    local fcoe_mode
    local fcoe_mac
    local OLDIFS="$IFS"
    local IFS=:
    # shellcheck disable=SC2086
    # shellcheck disable=SC2048
    set -- $*
    IFS="$OLDIFS"

    case $# in
        2)
            fcoe_interface=$1
            fcoe_dcb=$2
            fcoe_mode="fabric"
            unset fcoe_mac
            ;;
        3)
            fcoe_interface=$1
            fcoe_dcb=$2
            fcoe_mode=$3
            unset fcoe_mac
            ;;
        7)
            fcoe_mac=$(echo "$1:$2:$3:$4:$5:$6" | tr "[:upper:]" "[:lower:]")
            fcoe_dcb=$7
            fcoe_mode="fabric"
            unset fcoe_interface
            ;;
        8)
            fcoe_mac=$(echo "$1:$2:$3:$4:$5:$6" | tr "[:upper:]" "[:lower:]")
            fcoe_dcb=$7
            fcoe_mode=$8
            unset fcoe_interface
            ;;
        *)
            warn "Invalid arguments for fcoe=$fcoe"
            return 1
            ;;
    esac

    if [ "$fcoe_dcb" != "nodcb" -a "$fcoe_dcb" != "dcb" ]; then
        warn "Invalid FCoE DCB option: $fcoe_dcb"
    fi

    if [ "$fcoe_interface" = "edd" ]; then
        /sbin/initqueue --settled --unique /sbin/fcoe-edd "$fcoe_dcb"
        return 0
    fi

    if [ -z "$fcoe_interface" -a -z "$fcoe_mac" ]; then
        warn "fcoe: Neither interface nor MAC specified for fcoe=$fcoe"
        return 1
    fi

    {
        if [ -n "$fcoe_mac" ]; then
            # shellcheck disable=SC2016
            printf 'ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="%s", RUN+="/sbin/initqueue --onetime --unique --name fcoe-up-$name /sbin/fcoe-up $name %s %s"\n' "$fcoe_mac" "$fcoe_dcb" "$fcoe_mode"
            # shellcheck disable=SC2016
            printf 'ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="%s", RUN+="/sbin/initqueue --onetime --timeout --unique --name fcoe-timeout-$name /sbin/fcoe-up $name %s %s"\n' "$fcoe_mac" "$fcoe_dcb" "$fcoe_mode"
        else
            # shellcheck disable=SC2016
            printf 'ACTION=="add", SUBSYSTEM=="net", NAME=="%s", RUN+="/sbin/initqueue --onetime --unique --name fcoe-up-$name /sbin/fcoe-up $name %s %s"\n' "$fcoe_interface" "$fcoe_dcb" "$fcoe_mode"
            # shellcheck disable=SC2016
            printf 'ACTION=="add", SUBSYSTEM=="net", NAME=="%s", RUN+="/sbin/initqueue --onetime --timeout --unique --name fcoe-timeout-$name /sbin/fcoe-up $name %s %s"\n' "$fcoe_interface" "$fcoe_dcb" "$fcoe_mode"
        fi
    } >> /etc/udev/rules.d/92-fcoe.rules
}

for fcoe in $fcoe $(getargs fcoe=); do
    parse_fcoe_opts "$fcoe"
done