Hi,
Zur sicherheit weil du /opt/bin/bash als shell Benutzt solltest du den Telnet Dienst aktiviert haben.
Du kannst auch noch ein Terminal Fenster wärend du die Änderungen machst offen lassen und nach den Änderungen ein zweites Terminal Fenster öffnen, um zu schauen ob alles hingehauen hat.
Falls nicht hasst du ja immernoch das erste Terminal Fenster offen um eventuell entstandene Fehler zu berichtigen.
Also ich habe das bei mir so gelöst:
Als erstes habe ich den symlink /opt entfernt.
Danach habe ich meine optware.sh die bei mir unter /volume1/@optware/etc/optware.sh liegt wie folgt geändert:
Rich (BBCode):
[ ! -h /opt -a ! -d /opt ] && ln -s /volume1/@optware /opt
ersetzt mit:
Rich (BBCode):
[ ! -d /opt ] && mkdir /opt
for FOLDER in $(ls /volume1/@optware); do
[ ! -h /opt/$FOLDER -a ! -d /opt/$FOLDER ] && ln -s /volume1/@optware/$FOLDER /opt/$FOLDER
done
Das komplette script sieht bei mir dann so aus:
Rich (BBCode):
#!/bin/sh
#
# Optware setup
# Alternatives Optware Startup und Shutdown Script
#
PATH="/opt/sbin:/opt/bin:$PATH"
log(){ echo "[$(date +%d-%m-%Y) $(date +%H:%M:%S)] - $@"; }
#[ ! -h /opt -a ! -d /opt ] && ln -s /volume1/@optware /opt && log "symlink /opt not found! Creating it!"
[ ! -d /opt ] && mkdir /opt && log "dir /opt not found! Creating it!" >> /var/log/optware.log
for FOLDER in $(ls /volume1/@optware); do
[ ! -h /opt/$FOLDER -a ! -d /opt/$FOLDER ] && ln -s /volume1/@optware/$FOLDER /opt/$FOLDER && log "symlink /opt/$FOLDER not found! Creating it!" >> /var/log/optware.log
done
case $1 in
start)
for i in /opt/etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
log "Optware Startscript $i > Startbefehl wurde ausgefuehrt!" >> /var/log/optware.log
done
;;
stop)
for i in /opt/etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set stop
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i stop
;;
esac
log "Optware Startscript $i > Stopbefehl wurde ausgefuehrt!" >> /var/log/optware.log
done
;;
autostart)
if [ ! -f /usr/local/etc/rc.d/optware.sh ]; then
ln -s /opt/etc/optware.sh /usr/local/etc/rc.d/optware.sh
log "/opt/etc/optware.sh linked to /usr/local/etc/rc.d/optware.sh!" >> /var/log/optware.log
fi
;;
autostart_del)
if [ -f /usr/local/etc/rc.d/optware.sh ]; then
rm -f /usr/local/etc/rc.d/optware.sh
log "Deleted /usr/local/etc/rc.d/optware.sh!" >> /var/log/optware.log
fi
;;
*)
echo "Usage: $0 [start|stop|autostart|autostart_del]"
;;
esac
Das ergebniss ist das /opt ein ganz normales dir ist womit VirtualBox dann keine Probleme mehr hat.
Von allen Verzeichnissen die in /volume1/@optware liegen wird ein symlink unter /opt erstellt
Bei mir läuft so das optware ohne Einschränkungen.
Kleine abschließende Bemerkung:
Du solltest die bash aus dem optware nicht verwenden da sie noch ungepatchte sicherheitslücken hat.
Auch bekannt unter shellshock!
mfg Diablo