Habe mir heute eine mobile USB Festplatte zugelegt. Angebot bei Expert Klein. Alu Gehäuse, 300GB Kapazität, 2-fach USB Hub, 15-fach Cardreader. Preis 149Euro. Soweit so gut. Hier meine kleine Odysee:
Unter Windows XP Prof. wurde die Festplatte sofort erkannt. Auch der Hub und der Cardreader liefen umgehend. Wie erwartet. Dateisystem sollte FAT32 sein, da ich wusste, dass auf FAT32 sowohl unter Windows als auch unter FreeBSD und Linux schreibend und lesend zugegriffen werden kann.
Also habe ich versucht unter Windows XP 300GB mit FAT32 zu formatieren. Fehlanzeige. Bei 32GB ist Schluss. Kurz gegoogelt. Dann den Laptop mit Knoppix 5.0 gebootet und mit dem Befehl mkdosfs -F 32 /dev/sda1 die Platte mit FAT32 formatiert. Anschließend habe ich wieder Windows XP gebootet und konnte ohne Schwierigkeiten auf eine 279GB große Platte mit FAT32 Dateisystem zugreifen.
Jetzt kam der nächste Schritt: Festplatte an den Rechner mit FreeBSD 5.4 als Betriebssystem angeschlossen. Ein kurzer Blick in /var/log/messages und mir viel ein Stein vom Herzen. USB Hub, CardReader und Platte wurden einwandfrei erkannt und entspr. Gerätedateien zugewiesen. Jetzt wollte ich natürlich mounten. Folgender Befehl kam zum Einsatz (als root): mount_msdosfs /dev/da4s1 /mnt. Ausgabe: mountmsdosfs(): disk too big, sorry. Na Danke hab ich mir da doch gedacht. Also wieder Mr. Google zu rate gezogen und gleichzeitig bei BSDForen.de gesucht. Letzteres brachte dann auch die Lösung. Folgende Zeile muss in der Kernelkonfiguration ergänzt werden: options MSDOSFS_LARGE anschließend folgender Befehl als root: cd /usr/src && make buildkernel KERNCONF=[NAME] && make installkernel KERNCONF=[NAME] Anstatt [Name] jeweils den Namen der Kernelkonfiguration angeben. Der letzte Schritt war nun nur noch ein Neustart und die Platte konnte gemountet werden.
UPDATE: Die “Lösung” die ich gestern Abend gefunden habe ist wohl doch nicht sooo toll:
# Experimental support for large MS-DOS filesystems.
#
# WARNING: This uses at least 32 bytes of kernel memory (which is not
# reclaimed until the FS is unmounted) for each file on disk to map
# between the 32-bit inode numbers used by VFS and the 64-bit pseudo-inode
# numbers used internally by msdosfs. This is only safe to use in certain
# controlled situations (e.g. read-only FS with less than 1 million files).
# Since the mappings do not persist across unmounts (or reboots), these
# filesystems are not suitable for exporting through NFS, or any other
# application that requires fixed inode numbers. options MSDOSFS_LARGE
Danke für den Hinweis an Marius und andere. Ich werde die Platte jetzt wohl doch partitionieren, so dass sie ohne die Option MSDOSFS_LARGE gemountet werden kann. Vielleicht teste ich bei Gelegenheit auch nochmal Gentoo ;)