diff --git a/cryptobox.conf.d/usr/lib/cryptobox/cbox-manage.sh b/cryptobox.conf.d/usr/lib/cryptobox/cbox-manage.sh
index db39e81..b78624f 100755
--- a/cryptobox.conf.d/usr/lib/cryptobox/cbox-manage.sh
+++ b/cryptobox.conf.d/usr/lib/cryptobox/cbox-manage.sh
@@ -177,7 +177,7 @@ function find_harddisk()
do grep -q " `basename $a`$" /proc/partitions && echo "$a" && break
done
fi )
- [ -z "$dev" ] && error_msg 4 "no valid partition for initialisation found!"
+ [ -z "$dev" ] && echo "no valid partition for initialisation found!" >>"$ERROR_LOG"
echo -n "$dev"
}
@@ -202,8 +202,9 @@ function mount_config()
function mount_crypto()
{
- is_crypto_mounted && echo "Das Crypto-Dateisystem ist bereits aktiv!"
+ is_crypto_mounted && echo "Das Crypto-Dateisystem ist bereits aktiv!" && return
local device=`find_harddisk`
+ [ -z "$device" ] && error_msg 4 'no valid harddisk found!'
# passphrase is read from stdin
$CRYPTSETUP -h "$HASH" -c "$ALGO" create "`basename $CRYPTMAPPER_DEV`" "${device}2"
if mount "$CRYPTMAPPER_DEV" "$CRYPTO_DIR"
@@ -235,6 +236,7 @@ function init_cryptobox_part1()
umount_crypto || true
umount "$CONFIG_DIR" || true
local device=`find_harddisk`
+ [ -z "$device" ] && error_msg 4 'no valid harddisk found!'
initial_checks "$device" || error_msg 5 "Failure during initialisation - bye, bye"
create_partitions "$device"
create_config "$device"
@@ -359,6 +361,10 @@ case "$ACTION" in
get_current_ip )
get_current_ip
;;
+ is_harddisk_available )
+ [ -z "$(find_harddisk)" ] && exit 1
+ exit 0
+ ;;
* )
# TODO: update this!
echo "Syntax: `basename $0` { mount_config | umount_config | init }"
diff --git a/cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf b/cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf
index ec53c8a..02498a6 100644
--- a/cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf
+++ b/cryptobox.conf.d/usr/share/cryptobox/lang/de.hdf
@@ -16,15 +16,15 @@ Lang {
EnterNewPassword = Das neue Passwort eingeben:
EnterSamePassword = Das neue Passwort wiederholen:
InitWarning = Bei der Initialisierung werden ALLE DATEN auf der Festplatte GELÖSCHT!
- InitDescription = Schritt ist nur einmalig vor der ersten Nutzung notwendig.
Für den täglichen Gebrauch musst du das verschlüsselte Dateisystem lediglich aktivieren und deaktivieren
- ConfirmInitHint = Um zu bestätigen, dass du weisst, was du tust, tippe hier bitte exakt Folgendes ein:
+ InitDescription = Dieser Schritt ist nur einmalig vor der ersten Nutzung notwendig.
Für den täglichen Gebrauch muessen sie das verschlüsselte Dateisystem lediglich aktivieren und deaktivieren
+ ConfirmInitHint = Um zu bestätigen, dass sie wissen, was sie tun, tippen sie hier bitte exakt Folgendes ein:
ConfirmInit = ja, loesche alle Daten!
PartitionInfo = Derzeitige Partitionierung der Festplatte:
IPAddress = Netwerk-Adresse (IP) der CryptoBox:
TimeOut = Zeitabschaltung des Crypto-Dateisystems (in Minuten):
EmptyLog = Das Logbuch der CryptoBox ist leer.
SelectLanguage = Spracheinstellung:
- RedirectNote = Klicke hier, falls dein Browser die automatische Weiterleitung nicht unterstützt.
+ RedirectNote = Klicken sie hier, falls ihr Browser die automatische Weiterleitung nicht unterstützt.
}
@@ -62,7 +62,7 @@ Lang {
UmountFailed {
Title = Deaktivierung schlug fehl
- Text = Das verschlüsselte Dateisystem konnte nicht abgeschaltet werden. Wahrscheinlich sind noch Dateien geöffnet. Also schließe alle potentiell unsauberen Programme (beispielsweise die weitverbreitete Textverarbeitung). Notfalls ziehe einfach den Stromstecker!
+ Text = Das verschlüsselte Dateisystem konnte nicht abgeschaltet werden. Wahrscheinlich sind noch Dateien geöffnet. Also schließen sie alle potentiell unsauberen Programme (beispielsweise die weitverbreitete Textverarbeitung). Notfalls einfach die CryptoBox herunterfahren!
}
NotConfigured {
@@ -100,7 +100,7 @@ Lang {
ConfigSaved {
Title = Konfiguration gespeichert
- Text = Falls du die Netzwerkadresse der CryptoBox geändert hast, wird diese erst beim nächsten Neustart gesetzt.
+ Text = Falls Sie die Netzwerkadresse der CryptoBox geändert haben, dann wird diese erst beim nächsten Neustart gesetzt.
}
MountDone {
@@ -129,19 +129,23 @@ Lang {
UnknownAction {
Title = Unbekannte Aktion
- Text = Du hast eine undefinierte Aktion angefordert. Falls du dies nicht bewusst getan hast, solltest du es deinem Administrator mitteilen, damit er das Problem an die Entwickler der CryptoBox weiterleiten kann.
+ Text = Sie haben eine undefinierte Aktion angefordert.
}
NoSSL {
Title = Unverschlüsselte Verbindung
- Text = Die CryptoBox akzeptiert nur verschlüsselte Verbindungen (https). So bleibt dein Passwort vor neugierigen Augen geschützt.
+ Text = Die CryptoBox akzeptiert nur verschlüsselte Verbindungen (https). So bleibt das Passwort vor neugierigen Augen geschützt.
}
InitFailed {
Title = Initialisierung fehlgeschlagen
- Text = Sende bitte den Inhalt des Protokolls (siehe oben) an die Entwickler der CryptoBox.
+ Text = Senden sie bitte den Inhalt des Protokolls (siehe oben) an die Entwickler der CryptoBox.
}
+ NoHardDisk {
+ Title = Keine Festplatte
+ Text = Es wurde kein Datenträger gefunden, der zur Speicherung der verschlüsselten Daten geeignet ist. Prüfen sie bitte, ob beim Anschalten des Computers eine Festplatte vom BIOS erkannt wurde.
+ }
}
}
diff --git a/cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl b/cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl
index eb0a283..2e92154 100755
--- a/cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl
+++ b/cryptobox.conf.d/var/www/cgi-bin/cryptobox.pl
@@ -112,6 +112,12 @@ sub check_init_running
}
+sub is_harddisk_available
+{
+ return (system("$CB_SCRIPT","is_harddisk_available") == 0);
+}
+
+
sub get_current_ip
# the IP of eth0 - not the configured value of the box (only for validation)
{
@@ -209,9 +215,10 @@ if ( ! &check_ssl()) {
$pagedata->setValue('Data.Error', 'NoSSL');
$pagedata->setValue('Data.Redirect.URL', "https://" . $ENV{'HTTP_HOST'} . $ENV{'SCRIPT_NAME'});
$pagedata->setValue('Data.Redirect.Delay', "3");
+} elsif ( ! &is_harddisk_available()) {
+ $pagedata->setValue('Data.Error', 'NoHardDisk');
} elsif ($query->param) {
my $action = $query->param('action');
-
################ umount_do #######################
if ($action eq 'umount_do') {
if ( ! &check_config()) {