X-Git-Url: https://git.grml.org/?p=grml-autoconfig.git;a=blobdiff_plain;f=autoconfig.functions;h=3694475f03c6d93b0b21b7cecc1da70a8b1e2bc5;hp=55808124d002de808e841712c044ff8cb044df0d;hb=332eaaed6c4f1598b41408b8d4ade21cfed31374;hpb=6992b6808072f97e3b7870dec51c5fc19e55aa91 diff --git a/autoconfig.functions b/autoconfig.functions index 5580812..3694475 100755 --- a/autoconfig.functions +++ b/autoconfig.functions @@ -1621,7 +1621,7 @@ DCSMP="/mnt/grml" # autoconfig, see issue673 GRMLCFG="$(getbootparam 'autoconfig' 2>>$DEBUG)" [ -n "$GRMLCFG" ] || GRMLCFG="GRMLCFG" -if checkbootparam 'noautoconfig' || checkbootparam 'forensic' ; then +if checkbootparam 'noautoconfig' ; then DCSDIR="${LIVECD_PATH}" # set default so it works for "scripts" boot option as expected ewarn "Skipping running automount of device(s) labeled $GRMLCFG as requested." ; eend 0 else @@ -1737,11 +1737,6 @@ if checkbootparam 'scripts' || [ "$DCSMP" = "/mnt/grmlcfg" ]; then # backwards compatibility: if no path is given get scripts from scripts/ SCRIPTS="scripts/$SCRIPTS" fi - if [ "$DCSMP" = "/mnt/grmlcfg" ]; then - # we are executing from a GRMLCFG labeled fs - # kick everything we have done before and start over - SCRIPTS="$(cd ${DCSDIR}; /bin/ls -1d [Gg][Rr][Mm][Ll].[Ss][Hh] 2>>$DEBUG)" - fi if [ -n "$SCRIPTS" ]; then SCRIPTS="${DCSDIR}/$SCRIPTS" if [ "$DCSMP" = "/mnt/grmlcfg" ]; then @@ -1923,9 +1918,8 @@ fi config_swraid(){ [ -n "$INSTALLED" ] && return 0 - # notice: checkbootparam "forensic" is just for users who don't know how to really use the bootoption if checkbootparam 'noraid' || checkbootparam 'noswraid' || \ - checkbootparam 'forensic' || checkbootparam 'raid=noautodetect' ; then + checkbootparam 'raid=noautodetect' ; then ewarn "Skipping SW-RAID code as requested on boot commandline." ; eend 0 else [ -e /proc/mdstat ] || modprobe md_mod @@ -2268,33 +2262,58 @@ if $VIRTUALBOX ; then VBoxService >/dev/null eend $? - local vbox_automation='/media/sf_automation' + local vbautomation='automation' if checkbootparam 'vbautomation'; then - vbox_automation="$(getbootparam 'vbautomation' 2>>$DEBUG)" + vbautomation="$(getbootparam 'vbautomation' 2>>$DEBUG)" fi - local distri="$(getbootparam 'distri' 2>>$DEBUG)" - [ -n "$distri" ] || distri='grml' - - if [ -d "${vbox_automation}" ] ; then - einfo "Found shared folders automation directory $vbox_automation" + if ! VBoxControl sharedfolder list | egrep -q "^[0-9]+ - ${vbautomation}$" ; then + ewarn "No automount shared folder '$vbautomation' available" eend 0 + else + einfo "Found automount shared folder '$vbautomation'" + eend 0 + + local distri="$(getbootparam 'distri' 2>>$DEBUG)" + [ -n "$distri" ] || distri='grml' + local vbox_auto_sf="/media/sf_${vbautomation}" + + sleep 1 # ugly but necessary + + counter=10 eindent - if checkbootparam 'novbautomation' ; then - einfo "Bootoption novbautomation found. Disabling automation script execution." + while ! [ -d "${vbox_auto_sf}" ] && [[ "$counter" != 0 ]]; do + einfo "Waiting another second to retry access to ${vbox_auto_sf}" + sleep 1 + counter=$(( counter-1 )) eend 0 + done + eoutdent + + if ! [ -d "${vbox_auto_sf}" ] ; then + eerror "Giving up trying to access folder ${vbox_auto_sf} which doesn't seem to exist" + eend 1 else - if ! [ -x "${vbox_automation}/${distri}" ] ; then - ewarn "Couldn't find an automation script named ${vbox_automation}/${distri}" - eend 1 + einfo "Found shared folders automation directory $vbox_auto_sf" + eend 0 + + eindent + if checkbootparam 'novbautomation' ; then + einfo "Bootoption novbautomation found. Disabling automation script execution." + eend 0 else - einfo "Executing '${vbox_automation}/${distri}' now:" - "${vbox_automation}/${distri}" - eend $? + if ! [ -x "${vbox_auto_sf}/${distri}" ] ; then + ewarn "Couldn't find an automation script named ${vbox_auto_sf}/${distri}" + eend 1 + else + einfo "Executing '${vbox_auto_sf}/${distri}' now:" + "${vbox_auto_sf}/${distri}" + eend $? + fi fi + eoutdent fi - eoutdent fi eoutdent