Forum: Mikrocontroller und Digitale Elektronik low-level FAT file system Browser (SD-Karte)?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Info (Gast)


Lesenswert?

Gibt es für PC (Windows, Linux) die Möglichkeit und entsprechende 
Software, Dateisysteme (FAT32) auf unterster Ebene zu lesen und evtl. zu 
manipulieren?
Es gibt MP3-Player-Module, die Dateien in der Reihenfolge, wie sie im 
Dateisystem abgelegt sind, abspielen - die Dateinamen werden vermutlich 
gar nicht gelesen.
Ich möchte prüfen, ob das Kopieren nummerierter Dateien die 
entsprechende Reihenfolge im Dateisystem zur Folge hatte.

Ich habe vor längerem mal mit irgendeiner "Arduino" Bibliothek für 
SD-Karten experimentiert, und ich glaube, dort wurden die Dateien auch 
in der low-level Reihenfolge eingelesen...

von Info (Gast)


Lesenswert?

Heisst wohl "disk editor".

"WinHex" scheint das zu können, was ich suche: Tools > Open Disk.

Kombiniert Dateibrowser und Hex-Editor. Zu jeder Datei/Verzeichnis 
werden die Sektoren angezeigt und auch die Rohdaten in Hex.

von c-hater (Gast)


Lesenswert?

Info schrieb:

> Gibt es für PC (Windows, Linux) die Möglichkeit und entsprechende
> Software, Dateisysteme (FAT32) auf unterster Ebene zu lesen und evtl. zu
> manipulieren?

Ja. Allerdings nur für root/Admin und natürlich darf das Volume nicht 
(auto-) gemounted sein, wenn man am OS vorbei am FS manipulieren will.

> Es gibt MP3-Player-Module, die Dateien in der Reihenfolge, wie sie im
> Dateisystem abgelegt sind, abspielen - die Dateinamen werden vermutlich
> gar nicht gelesen.
> Ich möchte prüfen, ob das Kopieren nummerierter Dateien die
> entsprechende Reihenfolge im Dateisystem zur Folge hatte.

Nicht notwendigerweise. Das hängt davon ab, was zuvor im Directory-File 
stand. Nur bei einem "frischen" FAT-Filesystem kannst du davon ausgehen, 
dass die Einträge in der Reihenfolge in den Directory-Files landen, in 
der sie geschrieben werden.

Allerdings: d.h. nicht, dass das notwendigerweise auch die alphabetische 
Sortierreihenfolge wäre. Sondern es hängt natürlich dann davon ab, wer 
da schreibt. Wenn der nicht alphabetisch sortiert, bevor er schreibt, 
wird's auch bei einem frischen FS nicht in der "richtigen" Reihenfolge 
im FS landen.

von oszi40 (Gast)


Lesenswert?

Wichtig ist, dassss schon beim Kopieren die Reihenfolge stimmt! Es ist 
ein großer Unterschied ob Du nach Datum Dateinamen auswählst zum 
Kopieren!!!
Man könnte auch ein Image 1:1 machen wenn man Durchblick hat.

Info schrieb:
> Ich möchte prüfen, ob das Kopieren nummerierter Dateien die
> entsprechende Reihenfolge im Dateisystem zur Folge hatte.

dir /s > dir1.txt
dir /s > dir2.txt   schafft Deine Einträge in jeweils eine Datei, die Du 
ansehen und vergleichen könntest.

von oszi40 (Gast)


Lesenswert?

oszi40 schrieb:
Unterschied ob Du nach Datum ODER Dateinamen auswählst!

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Info schrieb:
> Ich möchte prüfen, ob das Kopieren nummerierter Dateien die
> entsprechende Reihenfolge im Dateisystem zur Folge hatte.

ls -f gibt sie dir in "unsortierter" Reihenfolge aus, was wohl die sein 
sollte, wie die Einträge im Verzeichnis selbst stehen. Die Option ist 
von Posix in dieser Form standardisiert, sodass sie auf allen 
zeitgemäßen Unixen verfügbar ist.

Wenn ich mir das mal so für eine Karte ansehe, die mal in einer Kamera 
und danach in einem Mac war:
1
% ls -lf /mnt
2
total 521
3
drwxr-xr-x   1 root  wheel  32768 Jan  1  1980 ./
4
drwxr-xr-x  29 root  wheel     35 Sep  1 21:10 ../
5
drwxr-xr-x   1 root  wheel  32768 Sep 17  2013 AVF_INFO/
6
drwxr-xr-x   1 root  wheel  32768 Sep 17  2013 PRIVATE/
7
drwxr-xr-x   1 root  wheel  32768 Sep 17  2013 DCIM/
8
drwxr-xr-x   1 root  wheel  32768 Sep 17  2013 MP_ROOT/
9
drwxr-xr-x   1 root  wheel  32768 Sep 17  2013 MISC/
10
-rwxr-xr-x   1 root  wheel   4096 Sep 23  2013 ._.Trashes*
11
drwxr-xr-x   1 root  wheel  32768 Jul  2  2017 LOST.DIR/
12
drwxr-xr-x   1 root  wheel  32768 Mar 14  2017 .Trashes/
13
drwxr-xr-x   1 root  wheel  32768 Apr  9  2014 .LOST.DIR/
14
drwxr-xr-x   1 root  wheel  32768 Nov  2  2016 .TemporaryItems/
15
-rwxr-xr-x   1 root  wheel   4096 Sep 23  2013 ._.TemporaryItems*
16
-rwxr-xr-x   1 root  wheel    293 Sep 23  2013 .apdisk*
17
-rwxr-xr-x   1 root  wheel   4096 Sep 23  2013 ._.apdisk*
18
drwxr-xr-x   1 root  wheel  32768 Mar 13  2014 .Trash-1000/
19
drwxr-xr-x   1 root  wheel  32768 Jun 30  2017 .fseventsd/

… und dann den Hexdump dazu:
1
00400000  41 56 46 5f 49 4e 46 4f  20 20 20 13 00 64 25 47  |AVF_INFO   ..d%G|
2
00400010  31 43 31 43 00 00 25 47  31 43 03 00 00 00 00 00  |1C1C..%G1C......|
3
00400020  50 52 49 56 41 54 45 20  20 20 20 10 00 64 26 47  |PRIVATE    ..d&G|
4
00400030  31 43 31 43 00 00 26 47  31 43 67 05 00 00 00 00  |1C1C..&G1Cg.....|
5
00400040  44 43 49 4d 20 20 20 20  20 20 20 10 00 00 2a 47  |DCIM       ...*G|
6
00400050  31 43 ef 48 00 00 07 9c  ef 48 6f 05 00 00 00 00  |1C.H.....Ho.....|
7
00400060  4d 50 5f 52 4f 4f 54 20  20 20 20 10 00 00 2a 47  |MP_ROOT    ...*G|
8
00400070  31 43 31 43 00 00 2a 47  31 43 71 05 00 00 00 00  |1C1C..*G1Cq.....|
9
00400080  4d 49 53 43 20 20 20 20  20 20 20 10 00 00 2a 47  |MISC       ...*G|
10
00400090  31 43 31 43 00 00 2a 47  31 43 73 05 00 00 00 00  |1C1C..*G1Cs.....|
11
004000a0  41 2e 00 5f 00 2e 00 54  00 72 00 0f 00 0c 61 00  |A.._...T.r....a.|
12
004000b0  73 00 68 00 65 00 73 00  00 00 00 00 ff ff ff ff  |s.h.e.s.........|
13
004000c0  5f 7e 31 20 20 20 20 20  54 52 41 22 00 3e 72 73  |_~1     TRA".>rs|
14
004000d0  37 43 ff 4a 00 00 72 73  37 43 49 47 00 10 00 00  |7C.J..rs7CIG....|
15
004000e0  4c 4f 53 54 20 20 20 20  44 49 52 10 00 00 09 a9  |LOST    DIR.....|
16
004000f0  e2 4a e2 4a 00 00 09 a9  e2 4a 8c 84 00 00 00 00  |.J.J.....J......|
17
00400100  41 2e 00 54 00 72 00 61  00 73 00 0f 00 25 68 00  |A..T.r.a.s...%h.|
18
00400110  65 00 73 00 00 00 ff ff  ff ff 00 00 ff ff ff ff  |e.s.............|
19
00400120  54 52 41 53 48 45 7e 31  20 20 20 12 00 3e 72 73  |TRASHE~1   ..>rs|
20
00400130  37 43 37 43 00 00 72 73  37 43 48 47 00 00 00 00  |7C7C..rs7CHG....|
21
00400140  41 2e 00 4c 00 4f 00 53  00 54 00 0f 00 fe 2e 00  |A..L.O.S.T......|
22
00400150  44 00 49 00 52 00 00 00  ff ff 00 00 ff ff ff ff  |D.I.R...........|
23
00400160  4c 4f 53 54 7e 31 20 20  44 49 52 10 00 00 f4 3c  |LOST~1  DIR....<|
24
00400170  89 44 89 44 00 00 f4 3c  89 44 83 47 00 00 00 00  |.D.D...<.D.G....|
25
00400180  42 6d 00 73 00 00 00 ff  ff ff ff 0f 00 9a ff ff  |Bm.s............|
26
00400190  ff ff ff ff ff ff ff ff  ff ff 00 00 ff ff ff ff  |................|
27
004001a0  01 2e 00 54 00 65 00 6d  00 70 00 0f 00 9a 6f 00  |...T.e.m.p....o.|
28
004001b0  72 00 61 00 72 00 79 00  49 00 00 00 74 00 65 00  |r.a.r.y.I...t.e.|
29
004001c0  54 45 4d 50 4f 52 7e 31  20 20 20 12 00 17 e2 79  |TEMPOR~1   ....y|
30
004001d0  37 43 37 43 00 00 e2 79  37 43 4c 47 00 00 00 00  |7C7C...y7CLG....|
31
004001e0  42 74 00 65 00 6d 00 73  00 00 00 0f 00 92 ff ff  |Bt.e.m.s........|
32
004001f0  ff ff ff ff ff ff ff ff  ff ff 00 00 ff ff ff ff  |................|
33
00400200  01 2e 00 5f 00 2e 00 54  00 65 00 0f 00 92 6d 00  |..._...T.e....m.|
34
00400210  70 00 6f 00 72 00 61 00  72 00 00 00 79 00 49 00  |p.o.r.a.r...y.I.|
35
00400220  5f 7e 31 20 20 20 20 20  54 45 4d 22 00 17 e2 79  |_~1     TEM"...y|
36
00400230  37 43 ff 4a 00 00 e2 79  37 43 4d 47 00 10 00 00  |7C.J...y7CMG....|
37
00400240  41 2e 00 61 00 70 00 64  00 69 00 0f 00 18 73 00  |A..a.p.d.i....s.|
38
00400250  6b 00 00 00 ff ff ff ff  ff ff 00 00 ff ff ff ff  |k...............|
39
00400260  41 50 44 49 53 4b 7e 31  20 20 20 22 00 18 e2 79  |APDISK~1   "...y|
40
00400270  37 43 ff 4a 00 00 e2 79  37 43 53 47 25 01 00 00  |7C.J...y7CSG%...|
41
00400280  41 2e 00 5f 00 2e 00 61  00 70 00 0f 00 c9 64 00  |A.._...a.p....d.|
42
00400290  69 00 73 00 6b 00 00 00  ff ff 00 00 ff ff ff ff  |i.s.k...........|
43
004002a0  5f 7e 31 20 20 20 20 20  41 50 44 22 00 18 e2 79  |_~1     APD"...y|
44
004002b0  37 43 ff 4a 00 00 e2 79  37 43 52 47 00 10 00 00  |7C.J...y7CRG....|
45
004002c0  41 2e 00 54 00 72 00 61  00 73 00 0f 00 e4 68 00  |A..T.r.a.s....h.|
46
004002d0  2d 00 31 00 30 00 30 00  30 00 00 00 00 00 ff ff  |-.1.0.0.0.......|
47
004002e0  54 52 41 53 48 2d 7e 31  20 20 20 10 00 00 2c 58  |TRASH-~1   ...,X|
48
004002f0  6d 44 6d 44 00 00 2c 58  6d 44 c3 48 00 00 00 00  |mDmD..,XmD.H....|
49
00400300  41 2e 00 66 00 73 00 65  00 76 00 0f 00 da 65 00  |A..f.s.e.v....e.|
50
00400310  6e 00 74 00 73 00 64 00  00 00 00 00 ff ff ff ff  |n.t.s.d.........|
51
00400320  46 53 45 56 45 4e 7e 31  20 20 20 12 00 3f 55 4f  |FSEVEN~1   ..?UO|
52
00400330  de 4a de 4a 07 00 55 4f  de 4a 65 3b 00 00 00 00  |.J.J..UO.Je;....|
53
00400340  e5 69 00 74 00 65 00 5f  00 74 00 0f 00 82 65 00  |.i.t.e._.t....e.|
54
00400350  73 00 74 00 00 00 ff ff  ff ff 00 00 ff ff ff ff  |s.t.............|
55
00400360  e5 2e 00 66 00 69 00 6c  00 65 00 0f 00 82 6d 00  |...f.i.l.e....m.|
56
00400370  61 00 6e 00 67 00 65 00  72 00 00 00 5f 00 77 00  |a.n.g.e.r..._.w.|
57
00400380  e5 49 4c 45 4d 41 7e 31  20 20 20 20 00 64 66 aa  |.ILEMA~1    .df.|
58
00400390  e2 4a e2 4a 00 00 66 aa  e2 4a 00 00 00 00 00 00  |.J.J..f..J......|
59
004003a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

Könnte wohl passen, insbesondere die ersten Einträge sind recht markant.

: Bearbeitet durch Moderator
von Georg (Gast)


Lesenswert?

Info schrieb:
> Ich möchte prüfen, ob das Kopieren nummerierter Dateien die
> entsprechende Reihenfolge im Dateisystem zur Folge hatte

Das ist weitgehend überflüssig - wenn alles auf einmal kopiert wurde, 
stehen sie in der "richtigen" Reihenfolge, also wie nacheinander kopiert 
(Ob das die Absicht war ist eine ganz andere Frage). Wenn öfters mal 
wieder was kopiert wurde, tun sie das mit ziemlicher Sicherheit nicht.

Einzige Möglichkeit: alles löschen und dann in einem Rutsch kopieren.

Georg

von oszi40 (Gast)


Angehängte Dateien:

Lesenswert?

Georg schrieb:
> Das ist weitgehend überflüssig - wenn alles auf einmal kopiert wurde,
> stehen sie in der "richtigen" Reihenfolge,

Ganz so sehe ich das unter Windows nicht. Wenn Du sie im Explorer nach 
Datum sortiert hast, werden sie dann auch in dieser Reihenfolge kopiert. 
Du kannst sie aber auch nach Alphabet oder Größe sortieren oder 
rückwärts.

von Peter M. (r2d3)


Lesenswert?

Hallo Jörg W.,

Jörg W. schrieb:
> … und dann den Hexdump dazu:
> 00400000  41 56 46 5f 49 4e 46 4f  20 20 20 13 00 64 25 47  |AVF_INFO
> ..d%G|
> 00400010  31 43 31 43 00 00 25 47  31 43 03 00 00 00 00 00
> |1C1C..%G1C......|

mit welchem Befehl erzeugt man denn den schönen Hexdump?

von Bernd K. (prof7bit)


Lesenswert?

Info schrieb:
> Ich möchte prüfen, ob das Kopieren nummerierter Dateien die
> entsprechende Reihenfolge im Dateisystem zur Folge hatte.

Mach doch einfach ls -U dann siehst Du die Reihenfolge.

von Bernd K. (prof7bit)


Lesenswert?

Georg schrieb:
> Einzige Möglichkeit: alles löschen und dann in einem Rutsch kopieren.

Es gibt Software (Foldersort fällt mir spontan ein) die kann man sich 
aber auch fix mal selber scripten die das sortiert: Du gehst rekursiv 
durch alle Verzeichnisse durch und für jedes Verzeichnis schiebst Du mit 
mv alle Dateien in der gewünschten Reihenfolge in ein neues leeres 
Verzeichnis und dann löscht Du das alte und benennst das neue um oder so 
ähnlich (gibt meherere ähnliche Strategien die alle das gewünschte 
Ergebnis liefern, bin mir jetzt auch nicht sicher ob man oben oder unten 
im Baum anfangen soll, das müsste man sich mal in ner ruhigen Minute 
genau überlegen).

Da Umbenennen und "Verschieben" auf dem selben Datenträger keine Daten 
bewegt sondern nur Verzeichniseinträge ändert geht dieser Vorgang auch 
auf ner randvollen 2TB-Platte am USB2 binnen 5 Sekunden und alles ist 
wieder so sortiert wie Du es in Deinem Sortierscript vorgegeben hast.

Zumindest mit FAT funktioniert das, ob das auch mit modernen 
Dateisystemen geht die vielleicht andere Strukturen haben um 
Verzeichniseinträge zu speichern ist fraglich. Aber ein Mediaplayer der 
so blöd ist daß er sich auf die Sortierung der Dateienträge verlassen 
muss stammt garantiert noch aus der FAT-Zeit und kann eh nichts anderes.

: Bearbeitet durch User
von Peter M. (r2d3)


Lesenswert?

Hallo Bernd K.,

Bernd K. schrieb:
> Aber ein Mediaplayer der
> so blöd ist daß er sich auf die Sortierung der Dateienträge verlassen
> muss stammt garantiert noch aus der FAT-Zeit und kann eh nichts anderes.

leider nein! :)

Bei meiner vergeblichen Recherche nach "AAC+ v2"-tauglichen mp3-Playern 
bin ich auf dieses Problem gestoßen.

Such' einfach nach "ruizu mp3 player sort directory".

von Bernd K. (prof7bit)


Lesenswert?

Peter M. schrieb:
> "ruizu mp3 player sort directory"

Wie gesagt: Im einfachsten Fall einfach Foldersort oder Drivesort drauf 
loslassen und nach 5 Sekunden ist alles auf dem Datenträger wieder 
alphabetisch sortiert.

Die Vorgehensweise mit Verschieben auf dem selben Datenträger kann einen 
komplett neuen Verzeichnisbaum in jeder gewünschten Sortierung aufbauen 
ohne eine einzige Datei tatsächlich umkopieren zu müssen. Da brauchst Du 
auch kein Low-Level-API um direkt auf den Strukturen rumzuwerkeln, Du 
nutzt einfach in geschickter Weise die Auswirkungen der vorhandenen 
Userland-Befehle aus wenn man sie in der richtigen Reihenfolge anwendet.

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Peter M. schrieb:
> Hallo Jörg W.,
>
> Jörg W. schrieb:
>> … und dann den Hexdump dazu:
>> 00400000  41 56 46 5f 49 4e 46 4f  20 20 20 13 00 64 25 47  |AVF_INFO
>> ..d%G|
>> 00400010  31 43 31 43 00 00 25 47  31 43 03 00 00 00 00 00
>> |1C1C..%G1C......|
>
> mit welchem Befehl erzeugt man denn den schönen Hexdump?

hd

Geht sowohl unter FreeBSD als auch Ubuntu. Ist die Kurzform von "hexdump 
-C".

von c-hater (Gast)


Lesenswert?

Peter M. schrieb:

> Bernd K. schrieb:
>> Aber ein Mediaplayer der
>> so blöd ist daß er sich auf die Sortierung der Dateienträge verlassen
>> muss stammt garantiert noch aus der FAT-Zeit und kann eh nichts anderes.
>
> leider nein! :)
>
> Bei meiner vergeblichen Recherche nach "AAC+ v2"-tauglichen mp3-Playern
> bin ich auf dieses Problem gestoßen.
>
> Such' einfach nach "ruizu mp3 player sort directory".

Wenn das so ist, handelt es sich um Kernschrott. Einmal mit dem großen 
Hammer draufkloppen und was Vernünftiges kaufen...

Oder besser: gleich was Vernünftiges kaufen, wenn man schon vorher weiß, 
dass es Kernschrott ist...

von Arne (Gast)


Lesenswert?

Da es noch nicht genannt wurde: zum sortieren der FAT-Eintraege gibt es 
auch noch FATSort: https://fatsort.sourceforge.io/

von Bernard B. (bernard_b)


Lesenswert?

I remember, in my younger days (more than 20 years ago), running DOS and 
Windows, there was a command to get what topic-starter is looking for. 
If not mistaken, it was the "debug"-command. It even worked under 
Windows 32-bit versions. Just a few minutes ago, I performed a test 
(opening a command-shell) and noticed it's not available for 64-bit 
versions.
And maybe it's good, because it was a very powerful and on occassion a 
harmful command.

However, it wouldn't suprise me if someone ported this command to a WIN 
64-bit version, by writing a tool around it or using same technique.

-=[EDIT]=-
For 64-bit is available :
https://www.youtube.com/watch?v=wSvE3Uo6_DU

: Bearbeitet durch User
von Info (Gast)


Lesenswert?

Wer Cygwin hat:

$ ls -f /cygdrive/<Laufwerksbuchstabe>/

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Schon zwei Jahre alt, aber mein Tipp:
HxD kann Datenträger oder Datenträger-Abbilder (Images) öffnen und läuft 
auch mit Wine unter Linux.

von Info (Gast)


Lesenswert?

Offenbar reicht es, im Windows Explorer o.Ä. nach "Erstelldatum" zu 
sortieren, um die Reihenfolge zu sehen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.