Jul/075
USB-Drive mit NTFS und Truecrypt unter openSuSE 10.2
Ich habe mir vor ein paar Tagen eine interessante Aufgabe gestellt: Schreibender Zugriff auf NTFS Dateisysteme unter Linux.
Okay, im Nachhinein betrachtet war das ganze unspektakulärer, als ich erwartet hatte. Aber fangen wir am Anfang an…
Ich habe eine USB-Festplatte (WD ), die mir unterwegs treue Dienste leistet. Die USB-Festplatte ist mit NTFS formatiert. Auf der Festplatte liegt ein Truecrypt-Container, der diverse vertrauliche Daten enthält. Mit einem kleinen Autoit-Skript versehen wird der Container beim Automount der Festplatte auch gleich via Truecrypt gemountet.
Jetzt soll der Zugriff auch – ohne auf FAT32 umzusteigen – unter Linux möglich sein. Gut, das Automount-Feature ist ein nice-to-have, was ich bis heute unter Linux nicht eingebaut habe. Der Rest ist aber auch interessant genug
.
Also, generell wird für den schreibenden NTFS-Zugriff NTFS-3g benötigt. Ein Howto für openSuSE 10.2 gibts hier.
Ich hänge meine USB-Festplatte an, mein openSuSE 10.2 hängt die automatisch erkannte Festplatte (/dev/sda1) per Automount auch gleich unter /media/
Ich hatte während meinen Tests des öfteren das Problem, dass ntfs-3g den Datenträger nicht mounten wollte, wenn das Volume nicht ordentlich von Windows getrennt wurde. Da schafft das Tool ntfsfix Abhilfe.
Selbst, wenn ntfsfix ausgeführt wurde, empfiehlt ntfs-3g oft den Datenträger unter Windows mit chkdsk zu prüfen. Diese Meldung lässt sich mit der Option “force” umgehen. Hier aber jetzt das Mount-Script:
[quickcode:mount-usbdrive.sh]
#!/bin/bash
DRIVE=/dev/sda1
VOLUME_MNT=/media/usbdrive
CONTAINER_PATH=/Mein-Container
CONTAINER_MNT=/data3
# dismount automount
umount ${DRIVE}
# fix drive to prevent errors
ntfsfix ${DRIVE}
# Create mountpoint if not exists
if [ ! -e ${VOLUME_MNT} ]; then
mkdir ${VOLUME_MNT}
fi
# mount with ntfs-3g
mount.ntfs-3g ${DRIVE} ${VOLUME_MNT} -o force,user,users,gid=users,umask=0002
# Create mountpoint if not exists
if [ ! -e ${CONTAINER_MNT} ]; then
mkdir ${CONTAINER_MNT}
fi
# mount container
truecrypt –filesystem ntfs-3g -M force,user,users,gid=users,umask=0002 ${VOLUME_MNT}${CONTAINER_PATH} ${CONTAINER_MNT}[/quickcode]
Auf die einzelnen Befehle möchte ich jetzt nicht noch im einzelnen eingehen. Die Mount-Optionen werden in den entsprechenden man-Pages ausreichen erklärt.
Ein unmount-Script ist verhältnismäßig einfach aufgebaut. Wobei man beachten muss, dass Truecrypt erst den Container freigeben muss, bevor man die Festplatte sauber Aushängen kann:
[quickcode:umount-usbdrive.sh]
#!/bin/bash
VOLUME_MNT=/media/usbdrive
CONTAINER_MNT=/data3
#!/bin/bash
# dismount container
umount ${CONTAINER_MNT}
# close container
truecrypt -d
# dismount drive
umount ${VOLUME_MNT}[/quickcode]
Vielleicht hilfts ja jemandem…








10:58 on July 23rd, 2007
braucht man für das Laufwerk überhaupt Schreibzugriff, wenn ich nur auf den Container schreiben will?
18:19 on July 23rd, 2007
Klar. Wenn die Daten im Container verändert werden, wird das ja auch nur in verschlüsselter Form auf dem ursprünglichen Datenträger gespeichert.
21:46 on July 23rd, 2007
Der ntfs-3g Treiber unter OpenSuse ist mit altem Kernel ja eher mit Vorsicht zu geniessen….
Das wäre eine Alternative:
Hier wird der Container mit EFS (ext2 oder ext3) formatiert und dann lieber unter Windows der EFS Treiber benutzt. http://www.linux-club.de/faq/F.....ows_nutzen
Danke aber für Deine Anleitung!
23:39 on July 23rd, 2007
Das Problem ist bei mir, dass ich die Festplatte öfter mal zum Datentransfer mit Windows-Rechnern nutze, wo ich nicht mal eben was installieren kann/darf. Aber sieht trotzdem interessant aus, werde ich mir mal genauer anschauen, danke!