Bug#377643: Workaround
Below is a very hacky script that implements the retry loop. The script
should go in /etc/initramfs-tools/scripts/nfs-bottom/retry. It adds a test
in /conf/param.conf and that script is sourced by the main /init. It needs
to do this since mountroot is only available to /init. The real fix should
be to change scripts/nfs::mountroot to retry itself. Enjoy.
#!/bin/sh
# This script repeats /scripts/nfs::mountroot() until $init appears.
# The mechanism used is to add some code into /conf/param.conf which is then
# sourced by the main shell. This is because the code requires access to the
# main shell variables which are not sourced.
[ prereqs = "$1" ] && exec echo ""
sourcedfile=/conf/param.conf
cat >> "$sourcedfile" << "EOF"
until [ -x "$rootmnt$init" ]
do
echo "Couldn't find init program ($rootmnt$init), retrying root mount..."
mountroot
done
EOF
Cheers,
Tim.
Reply to: