Date: Thu, 26 May 2011 23:35:41 +0200 From: William Palfreman <william@palfreman.com> To: freebsd-stable@freebsd.org Subject: mountlate not late enough for nfe0 with dhcp Message-ID: <BANLkTik06mc6adjAeviEGa-4tvcVP_3TUA@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
I find my nfe0 interface on my media server (an Acer Revo Atom) has not finished dhcp by the time /etc/rc.d/mountlate is run, or /etc/rc.d/mountcritremote. So the two NFS filesystems I want to mount cause booting to halt in the most inconvenient manner possible for a machine with no keyboard. I originally had this problem with mountcritremote, so I added the late option to /ett/fstab: nfshost:/share /nfs nfs rw,late 0 0 nfshost:/data /data nfs ro,late 0 0 But the network was still not up by the time /etc/rc.d/mountlate ran. So I slowed things down with the patch you can see below. I am not saying that you should add something so crude to the base system, but I do think that it would be better if failure to mount an NFS share due to DHCP not being finished did not cause the boot to halt. Non-root filesystem NFS mounts are rarely so critical that is it necessary to drop into single user mode instead - especially as these days many machines do not have a console continuously attached. It would be better just to retry mounting NFS in the background. Here's how I slow it down, anyway. Ten seconds seems to be plenty: $ diff -u /usr/src/etc/rc.d/mountlate /etc/rc.d/mountlate --- /usr/src/etc/rc.d/mountlate 2009-08-03 10:13:06.000000000 +0200 +++ /etc/rc.d/mountlate 2011-05-26 22:34:49.000000000 +0200 @@ -14,6 +14,13 @@ start_cmd="mountlate_start" stop_cmd=":" +ping -c1 -t1 8.8.8.8 > /dev/null +if [ $? -ne 0 ]; then + echo "Sleeping 10 waiting for network to come up" + sleep 10 + ping -c1 -t1 8.8.8.8 > /dev/null || echo "Network might still be down, pressing on" +fi + mountlate_start() { local err latefs @@ -40,8 +47,8 @@ ;; *) echo 'Mounting /etc/fstab filesystems failed,' \ - ' startup aborted' - stop_boot true + ' startup continuing' + stop_boot false ;; esac $ uname -a FreeBSD host.domain.com 8.2-STABLE FreeBSD 8.2-STABLE #0: Thu May 26 18:53:04 CEST 2011 root@host.domain.com:/usr/obj/usr/src/sys/TV amd64 [built from RELENG_8 as of a few days ago]
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTik06mc6adjAeviEGa-4tvcVP_3TUA>