FAT32 Stick physikalisch sortieren

M

ma2412

Aktives Mitglied
Thread Starter
Dabei seit
17.03.2013
Beiträge
770
Reaktionspunkte
188
Auf einem USB-Stick oder SD-Karte mit FAT32 kann man zB. Musik in Ordnern speichern, um sie dann auf einfachen Radiogeräten oder Autoradios ev. abspielen zu können.
Das Problem dabei ist, dass die Ordner bzw. die Dateien darin nicht alphabetisch sortiert sind, sondern je nach Dateidatum und/oder Kopierdatum gespeichert werden. Ich weiss, ist Problem des Radios, aber darum eben auch mein Problem :D

Bei kleineren Sticks kann man sich behelfen, indem man alles auf dem Stick löscht und in einem Ruck vom Finder rüberzieht. Bei größeren Sticks dauert das dann immer knapp eine Stunde, was nicht so prickelnd ist.

Es gibt unter Windows so Programme wie Drivesort oder FATsort, etc., die rasch den Stick neu sortieren (dauert aber auch, bis die VM mal geladen ist). Leider gibts für den Mac KEINE Anwendung, die das macht - habe lange gesucht und viele Topics im Netz gefunden, wo das gleiche Problem war.

Nun gibts aber AppleScript und ich hoffe nun, hier bei den Profis einen Hinweis zu bekommen:
- OB es damit möglich ist (also Zugriff auf das Filesystem bzw. den FAT des Sticks)
- mit welchen Befehlen ich das am besten mache (also Dateien und Ordner rekursiv nach dem Alphabet zu sortieren und dies fest in der Zuordnungstabelle zu schreiben, ohne die Dateien selbst umzuschreiben)

Vielen, vielen Dank für eure Tips bzw. Hilfestellung!
 
mit applescript wirst du das nicht machen können.
man kann doch fatsort doch auch für das terminal kompilieren und es damit machen…
 
danke für die rasche Antwort!
"man kann" ist gut ;)

D.h. Applescript geht nicht, sondern via Terminal?
Falls, ja, muss ich dort dann die Befehle einzeln eintippen oder kann ich da auch wo eine Art .sh Skript speichern, dass ich dann nur mehr aufzurufen brauche?

*edit*
https://developer.apple.com/library...rwin/Reference/ManPages/man1/dot_clean.1.html
das wäre doch das, was ich suche, oder sehe ich das falsch?

Hier gibts noch eine Anleitung:
http://www.macwelt.de/tipps/Tipp-Ma...en-von-Speicher-Sticks-entfernen-3229300.html
mit Drag&Drop (fast)
 
script speichern ist so eine sache, du musst ja die /dev/diskX angeben und die ändert sich ständig…
das muss man auch berücksichtigen…

und nein, dot_clean ist nicht das was du suchst.
das merged nur die ._ datei mit der hauptdatei zusammen, falls möglich…
 
Stimmt, eben gesehen, dass das was anderes ist, danke.

---

hmmm, ohne Script ist es ja schwer, die ganzen Dateien zu sortieren... oder hast Du ev. eine Idee?
 
Terminal: man touch
 
hmmm, ohne Script ist es ja schwer, die ganzen Dateien zu sortieren... oder hast Du ev. eine Idee?

was ist denn ohne script schwer?
diskutil unmountDisk /dev/disk3
sudo fatsort -n /dev/disk3s1

ein script zu schreiben, dass das disk3 heraus bekommt ist schwerer ;)
 
  • Gefällt mir
Reaktionen: dg2rbf
Habe eben dieses Skript gefunden:
http://fatsort.sourceforge.net

Jetzt sag bloss, OSX hat fatsort schon mit dabei? Das wäre dann ja super, muss ich gleich gucken.

Danke jedenfalls für Deine Geduld!
 
das ist kein skript, das ist das erwähnte programm zum compilieren als source…

dabei ist das nicht, ich hab es compiliert und in /usr/local/bin ;)
 
Wenn das mit dem TOUCH nicht geht:

"Damals", in grauer Vorzeit, gab es mal die "Norton Utilities" und dabei war eine "DS.EXE" (DirectorySort). vielleicht findest Du das noch irgendwo... muss dann aber in einer Dos-Box laufen.

Aber das es um FAT geht..
 
Gestern hatte ich mir dem kompilieren leider keinen Erfolg, er brach immer mittendrin ab, dann nochmal Xcode runtergeladen und probiert, wieder nichts (ich starte nochmal einen Versuch, dann kann ich posten, welche Fehlermeldung da kam).
Schade, dass es die Datei nicht wo fertig kompiliert zum runterladen gibt...
 
ist normal, dass der bei html2man abbricht, weil man es nicht hat.
das binary von fatsort ist ja trotzdem schon fertig, liegt im src verzeichnis…
 
Ich muss es am Abend nochmals testen, ich bilde mir ein, dass er schon vorher abgebrochen hat. zumindest hatte ich nur 2-3 Zeilen an Ausgabe und die so viel wie in der Anleitung oben.
Aber ich probiere es nochmals - hatte den alten Ordner schon gelöscht :D
 
so sieht es bei mir aus:
Code:
$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src/
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c fatsort.c -o fatsort.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c FAT_fs.c -o FAT_fs.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c fileio.c -o fileio.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c endianness.c -o endianness.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c signal.c -o signal.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c entrylist.c -o entrylist.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c errors.c -o errors.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c options.c -o options.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c clusterchain.c -o clusterchain.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c sort.c -o sort.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c misc.c -o misc.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c natstrcmp.c -o natstrcmp.o
gcc -Wall -Wextra -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c stringlist.c -o stringlist.o
gcc -s -liconv fatsort.o FAT_fs.o fileio.o endianness.o signal.o entrylist.o errors.o options.o clusterchain.o sort.o misc.o natstrcmp.o stringlist.o  -o fatsort
ld: warning: option -s is obsolete and being ignored
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C man/ 
help2man --name "FAT sorting tool" ../src/fatsort -o fatsort.1 -N
/bin/sh: help2man: command not found
make[1]: *** [fatsort.1] Error 127
make: *** [man] Error 2

danach liegt es in src …

du kannst den fehler auch umgehen, indem du einfach
Code:
make src
machst
 
danke, werde ich testen.
 
Es hat mir keine Ruhe gelassen:
Er hat es nun kompiliert *jubel*

Fehler waren natürlich wieder mal die Rechte, da ich das kompilieren mit dem adminuser gemacht hatte, aber die src-Files von normalen Benutzer waren -> bitte daher um eine virtuelle Ohrfeige ;)

Danke für deine Geduld!

Den Sortiertest mache ich dann später.
 
ein script zu schreiben, dass das disk3 heraus bekommt ist schwerer ;)

Zumindest über den Volumenamen oder das Partitionsformat geht es:
Code:
mount | grep 'VolumeName\|msdos' | cut -d' ' -f1
 
Hallo zusammen,

erstmal vielen Dank für eure Mühen. Ich schaffte es einfach nicht, es zum Laufen zu bringen, das Programm lief ohne Fehler durch aber es wurde nicht sortiert, obwohl er hingeschrieben hat "sorting directory..."
Ev. war es doch nicht richtig kompiliert.
Habe nun aber eine kompilierte Version gefunden


Ich habe es nun so gelöst:
1.)
hier das fertig kompilierte Programm "fatsort" runterladen (dort ist auch die englische Anleitung zu finden)
http://atariage.com/forums/topic/196628-fatsort-for-bsd-linux-mac-os-x-and-unix/
entpacken und zB. auf die "Macintosh HD" im Hauptverzeichnis speichern - oder wo auch immer

2.)
SD-Karte einlegen und angezeigten Name der Karte merken

3.)
Terminal öffnen:
Code:
sudo su -
eingeben
danach das Passwort des aktuellen OSX-Benutzers eingeben, nicht vom root (*)

4.)
Code:
[FONT=verdana]diskutil info /Volumes/SD-NAME[/FONT]
("SD-NAME" durch euren Namen der SD-Karte ersetzen)
in der Zeile, wo der SD-Kartenname (sollte am besten ohne Leerzeichen oder Sonderzeichen sein) steht, ist etwas davor in der gleichen Zeile, beginnend mit "/dev/disk..." -> merken!

5.)
Code:
[FONT=verdana]diskutil unmount /Volumes/SD-NAME[/FONT]
eingeben, damit es getrennt wird (aber nicht ausgeworfen!)

6.)
Code:
cd "/Volumes/Macintosh HD"
eingeben, um zu dem Verzeichnis zu wechseln, wo die Datei "fatsort" liegt (ggf. den Pfad anpassen)
Code:
[FONT=verdana]./fatsort /dev/disk...[/FONT]
eingeben (das "disk..." anpassen - siehe 4.), um die Verzeichnisse und Dateien alphabetisch zu sortieren

7.)
Code:
[FONT=verdana]diskutil eject /dev/disk2s1[/FONT]
eingeben, um den Stick oder die SD-Karte auszuwerfen.
die Karte bzw. der Stick kann nun einfach herausgezogen werden -> FERTIG!


(*) klappte bei mir nicht beim normalen User, der kein Passwort definiert hat, musste die ganzen Schritte von meinem anderen Adminuser aus durchführen, da dieser ein Passwort hat

---------------------

Was muss ich tun, damit ich von meinen Nicht-Admin-User aus im Terminal auf root wechseln kann?
Ein leeres Passwort kann ich nicht eingeben (nur Enter geht nicht) und ein Passwort immer extra anlegen möchte ich auch nicht.
Gibts dazu einen Trick?
 
nicht-admin-user können kein sudo nutzen, dazu müssen die in der admin gruppe sein.
oder du bearbeitest halt die sudoers, so dass du fatsort ohne passwort per sudo nutzen kannst.

du musst auch nicht extra root werden für den rest, es reicht, wenn du fatsort mit sudo ausführst.
und kopier doch fatsort einfach in ein verzeichnis welches im PATH ist.
dann kannst es so ausführen.

an sich könnte man auch eine applescript machen, so dass man nur noch das passwort eingeben muss.

Code:
set device to do shell script "mount | grep 'VolumeName\\|msdos' | cut -d' ' -f1"
do shell script "diskutil unmountDisk " & device
do shell script "/usr/local/bin/fatsort -n " & device with administrator privileges
do shell script "diskutil mount " & device

klappt natürlich nur, wenn nur eine fat32 volume da ist…
 
  • Gefällt mir
Reaktionen: dg2rbf
Zurück
Oben Unten