X-Git-Url: https://git.saurik.com/apple/launchd.git/blobdiff_plain/ed34e3c3e5fb80e0702ac7fb92f189862089d820..ddbbfbc16a73ae4ed2ebe2c11ac6fb84b944c0dd:/launchd/src/rc.netboot diff --git a/launchd/src/rc.netboot b/launchd/src/rc.netboot index 6eab9ab..654ce49 100644 --- a/launchd/src/rc.netboot +++ b/launchd/src/rc.netboot @@ -1,6 +1,6 @@ #!/bin/sh ## -# Copyright 2002 Apple Computer, Inc. +# Copyright 2002-2009 Apple Inc. # # This script configures NetBoot ## @@ -27,6 +27,8 @@ NETBOOT_SHADOW=${NETBOOT_SHADOW:-NETWORK-} Failed() { echo rc.netboot: $1 + echo rc.netboot: $1 > /dev/console + sleep 5 exit 1 } @@ -74,11 +76,24 @@ common_start() local_mount() { - volinfo=`autodiskmount -F 2>/dev/null` - if [ $? -ne 0 ]; then - echo "autodiskmount -F found no local drives" - return 1 - fi + tries=0 + limit=11 + while [ $tries -lt $limit ]; do + tries=$(( tries + 1 )) + volinfo=`autodiskmount -F 2>/dev/null` + if [ $? -ne 0 ]; then + if [ $tries -lt $limit ]; then + echo "Waiting for local drives..." + echo "Waiting for local drives (retry ${tries}/$(( limit - 1 )))..." > /dev/console + sleep 5 + else + echo "autodiskmount -F found no local drives" + return 1 + fi + else + tries=$limit + fi + done set ${volinfo} devname=$1 fstype=$2 @@ -105,15 +120,19 @@ network_mount() return 1 fi case "${mount_from}" in - afp:*) fstype=afp;; + afp:*) + fstype=afp + kextutil -v 0 /System/Library/Filesystems/AppleShare/asp_tcp.kext + kextutil -v 0 /System/Library/Filesystems/AppleShare/afpfs.kext + ;; nfs:*) fstype=nfs;; *) echo "unknown network filesystem mount from ${mount_from}" return 1 ;; esac - mount -t "${fstype}" "${mount_from}" "${NETBOOT_MOUNT}" + mount -t "${fstype}" -o nobrowse "${mount_from}" "${NETBOOT_MOUNT}" if [ $? -ne 0 ]; then - echo "mount -t ${fstype} ${mount_from} ${NETBOOT_MOUNT} failed" + echo "mount -t ${fstype} -o nobrowse ${mount_from} ${NETBOOT_MOUNT} failed" return 1 fi common_start "${NETBOOT_MOUNT}" "${shadow_path}"