Hadmut Danisch

Ansichten eines Informatikers

Fantomas hat meine Festplatte sabotiert

Hadmut
11.5.2013 11:47

Huuaaa: Der schrecklichen Fantomas hat meine Festplatte sabotiert! (Update)

Oh, was es nicht alles für Probleme gibt. Unglaublich.

Vergangene Nacht kam im Fernsehen auf ZDF neo Fantômas mit Louis de Funès, und ich wollte das aufnehmen.

Wie schon früher erwähnt habe ich so einen kleinen, billigen, kreuzdämlichen DVB-T-Recorder der Billig-Marke »auvisio« von Pearl. (Ja, ja, ich weiß, wer dort bestellt ist selbst schuld, aber eine Alternative habe ich zu dem Preis noch nicht gefunden.) Das Ding ist zwar lausig, die Firmware miserabel, schlecht zu bedienen und voller Bugs. Aber gerade deshalb hat sich das dumme Ding schon öfters weit moderneren und komfortableren Lösungen gegenüber als überlegen erwiesen, weil das Ding keine Fehler und dergleichen erkennt und stur das aufnimmt, was man programmiert hat.

Aber ach.

Das Ding legt die Dateien auf der Festplatte unter einem Dateinamen ab, der aus dem Sendernamen, dem Datum und der Uhrzeit gebildet wird. Nun hat ZDF neo aber hier keinen eigenen DVB-T-Kanal, sondern teilt sich den mit dem Kinderkanal KiKA. Tagsüber senden sie KiKA, und abends, wenn die Kinder im Bett sind, strahlen sie ZDF neo aus. Und deshalb ist der über DVB-T ausgestrahlte Name des Kanals “neo/KiKA”. Mit einem Schrägstrich. Und dementsprechend heißt die Datei im Dateisystem (FAT32) dann

neo/KiKA_20130510_235000.ts

Und weil unter Linux/Unix der Schrägstrich der Trenner im Pfadnamen ist, kann Linux auf die Datei nicht zugreifen. Man kann sie mit ls anzeigen, aber nicht aufmachen und noch nicht mal ein stat machen. Eine Mount-Option, mit der man das umgehen könnte, hab ich jetzt auch nicht gefunden.

Herrlich. Als ob Fantomas persönlich dahintersteckte.

(mal sehen, unter Windows müsste das eigentlich gehen, weil sich Windows nicht für / interessiert. Dummerweise sollen neuere Windows-Versionen angeblich auch den / als Trennzeichen verstehen. Muss ich mal testen. Oder gleich mit dem Blockeditor ran.)

Update 1: Nachdem ich gerade von meinen Samstagseinkäufen zurückgekommen bin, hab ich die Platte mal an Windows7 gehängt. Interessanterweise fällt Win7 genauso auf / herein wie Linux: Die Dateien werden sowohl in der graphischen Oberfläche, als auch in cmd normal mit / angezeigt, aber man kann sie nicht aufmachen oder umbenennen.

Was allerdings funktioniert, wie ein Leser empfohlen hatte, ist chkdsk. chkdsk meldet unter Win7, dass es vier Dateien mit unzulässigen Namen gefunden hat. Es sagt zwar nicht, welche das sind, aber um genau vier Dateien geht es hier. Da chkdsk allerdings (in der deutschen Version) ankündigte, die Dateinamen zu »entfernen«, wenn ich es mit der Option zum automatischen Beheben aufrufe, und ich erstmal googlen wollte, ob chkdsk gleich die ganze Datei löscht oder nur umbenennt, habe ich das erstmal bleiben lassen, zumal ich das Problem wohl öfters haben werde und deshalb eine kanonische Lösung unter Linux suche. Die Google-Suche meint, dass chkdsk die Dateien nur umbenennt, und damit dürfte das der einfachste und schnellste Weg sein.

87 Kommentare (RSS-Feed)

Leif
11.5.2013 11:54
Kommentarlink

Da klickt man auf den Link, weil man denkt, es geht um die PiratinnenKon und irgendwelche “Maskulisten”, die mal wieder was sabotiert haben. Und dann das: Techtalk!! 🙂


Michael
11.5.2013 11:56
Kommentarlink

Auch für Windows ist / ein Pfadtrennzeichen. Denn schon DOS hat / als Pfadtrennzeichen akzeptiert. Gerade in der Konsole getestet:
C:\Users\Michael>cd\
C:\>cd users/michael
C:\Users\Michael>
Angeblich weil damals an DOS Programmierer gearbeitet hatten, die vorher an einem OS gearbeitet hatten, wo / das Trennzeichen für Pfade waren und sich nicht umgewöhnen wollte oder.


Michael
11.5.2013 11:57
Kommentarlink

… so.


Name
11.5.2013 12:22
Kommentarlink

Escapen mit einem
\
(Backslash Leertaste) vor dem Schrägstrich.


Hadmut
11.5.2013 13:39
Kommentarlink

Backslash hilt gar nichts, das ist einShellescape und hat nit dem Filesystem gar nichts zu tun.


gedankenwerk
11.5.2013 13:02
Kommentarlink

Wenn es wirklich eine Datei ist, die den Slash im Namen hat,
kannst Du evtl. zugreifen in dem Du das sonderzeichen maskierst.

Unter Unixoiden Systemen nimmt man dafür den Backslash (‘\’)
Also wenn Du auf die Platte irgendwie mit einer normalen Shell zugreifen kannst, in etwa:

cp /mnt/disk/neo\/KiKA_20130510_235000.ts /home/hadmud

(die genauen Pfade musst Du natürlich noch anpassen)


gedankenwerk
11.5.2013 13:07
Kommentarlink

Bzw. willst Du es ja umbenennen, z.B.:
mv neo\/KiKA_20130510_235000.ts neo_KiKA_20130510_235000.ts

Damit Du nachher “normal” darauf zugreifen kannst.

Oder Du benutzt ein Tool wie den Midnight Commander, wo das Programm Dir den Inhalt des Verzeichnisses schon anzeigt und Du sie nur auswählen musst und dann mit F6 umbennen kannst.
Hat schon mit so manchem vermurksten Dateinamen funktioniert.


bobo
11.5.2013 13:29
Kommentarlink

Man kann die Inode benutzen, um auf die Datei zuzugreifen:
% ls -i
% find * -inum -exec mv {} newname.ts \;


Hadmut
11.5.2013 13:44
Kommentarlink

Ertens helfen einem hier inodes überhaupt nicht, weil es um Dateinamen geht. Zweitens hat vfat mW keine Inodes.


Bzzz
11.5.2013 13:58
Kommentarlink

Es gibt mehrere /, und die /, die man unter Linux in Dateinamen pflanzen kann, sehen unter Windows anders aus als die Windows-/, lassen sich aber genausowenig ändern, löschen oder hinzufügen. Denn dort ist das völliges Hexenwerk. Genauso wie Fragezeichen 😉

Aber schau mal, ob dir FSlint die Dateinamen wieder hinbiegen kann. Umbenennen über Inode wird schwierig, die zaubert man zwar beim Mounten temporär ins offenbar inode-freie FAT32, aber wenn man die nicht über stat auslesen kann..


gedankenwerk
11.5.2013 13:59
Kommentarlink

Hast Du es denn ausprobiert (mit Shell-Escapen, wie beschrieben)?


Hadmut
11.5.2013 16:17
Kommentarlink

@gedankenwerk:

> Hast Du es denn ausprobiert (mit Shell-Escapen, wie beschrieben)?

Das kann doch gar nicht funktionieren, weil Shells bzw. Befehle wie mv im User-Space laufen und das ein Problem im Betriebssystem ist, also über die normalen POSIX-Betriebssytem-Funktionen nicht lösbar ist, weshalb ja auch schon ls kein stat durchführen kann. Shell-Escapen ist da sowas von nutzlos.


gedankenwerk
11.5.2013 14:03
Kommentarlink

Oder in der Windows Shell (cmd) den Dateinamen in Anführungszeichen setzen:

move “neo/KiKA_20130510_235000.ts” neo_KiKA_20130510_235000.ts


Jens
11.5.2013 14:06
Kommentarlink

Das dürfte dann ein Fehler im Dateisystem-Treiber sein. -> Bug gegen den Linux-Kernel filen …


Robert W.
11.5.2013 14:08
Kommentarlink

Ich glaub, ich würd da gleich einen kleinen Hack (C-Programm) schreiben, der via mmap oder so jeden String “neo/KiKA_20130510_235000.ts” im Blockdevice geeignet ersetzt. Könnt ja sein, daß du das Progrämmchen noch öfters brauchen kannst 😉
Luxusvariante wär, daß das Programm die FS-Struktur von VFAT berücksichtigt und in den Einträgen für die Dateinamen jeden ‘/’ ersetzt …


Robert W.
11.5.2013 14:14
Kommentarlink

Nachtrag: ich weiss jetzt nicht wie “sed –in-place” implementiert ist, ob das auf nem Blockdevice fünktionieren würde 😉


georgi
11.5.2013 14:21
Kommentarlink

info mtools

???


Hadmut
11.5.2013 16:26
Kommentarlink

@georgi

> info mtools

Der Tipp war gut, aber mtools bestehen auch darauf, / als Pfadtrenner aufzufassen.


Karim B
11.5.2013 14:25
Kommentarlink

Wer billig kauft kauft zweimal.


Hadmut
11.5.2013 16:25
Kommentarlink

@Karim B:

> Wer billig kauft kauft zweimal.

Und wer seine Entscheidungen und Kommentare auf Bauerregeln stützt, auch.

Erstens habe ich neulich schon beschrieben, dass dieses dumme Teil, so doof es ist und so billig es war, erheblich stabiler und zuverlässiger aufnimmt als mein zehnmal so teures Synology NAS mit DVB-T-Aufnahmefunktion.

Zweitens gab es damals, als ich das Ding gekauft habe, keine anderen mir bekannten Geräte, die selbständig DVB-T auf Festplatte aufnehmen konnten.

Aber mit Bauernregeln schwätzt sich’s halt so einfach und bequem dahin…


EBecker
11.5.2013 14:29
Kommentarlink

Ich habe ähnliche Probleme auch, da sind in Archiven immer Ordner drin, die mit einem “-” anfangen. Meine Lösung ist, einer Windows-VM Zugriff auf den enthaltenden Ordner zu geben, denn über Windows kann man das bequem umbenennen.

Übrigens: Interessant, dass ich im Browser nur 3 Kommentare sehe, in den Feeds aber wesentlich mehr.


georgi
11.5.2013 14:31
Kommentarlink

…und drittens werden inodes in Dateinamen überführt, mit dem sämtliche (?) Programme (tar, mc, find … -exec mv … etc.) nichts anfangen können. Ich kenne jedenfalls keinen Teil in der POSIX-API, mit dem man Dateien ohne Zuhilfenahme ihres Namens bearbeiten könnte.


Knut
11.5.2013 14:58
Kommentarlink

Erstaunlich viele Kommentare von Leuten, die mal helfen wollen, aber nicht die geringste Ahnung haben.

Das die Box das überhaupt geschafft hat, ist schon interessant. Die kann ja normalerweise weder Unix noch Windows basiert sein. Eigentlich kenne ich das nur von Betriebssystemen, die keinen rename im file manager haben und das durch Beschreiben des Verzeichnisses lösen. Da findet dann natürlich kein Konsistenzcheck mehr statt.

Das gab es beim OS-9/68k RBF und der PCFS-Implementierung dazu. Das kann ich mir aber kaum in einer DVB-T Box vorstellen.


Hadmut
11.5.2013 16:22
Kommentarlink

@Knut:

> Erstaunlich viele Kommentare von Leuten, die mal helfen wollen, aber nicht die geringste Ahnung haben.

Ja, das ist mir beim Lesen der Kommentare auch durch den Kopf gegangen. Eigentlich brauche ich auch keine Hilfe und Ratschläge, denn das Problem und den Lösungsweg habe ich ja schon längst selbst erkannt, sondern ich wollte einfach nur das Kuriosum darstellen. Is ja nett, wenn die Leute helfen wollen, aber blindes Rumprobieren ist keine Hilfe.


Patrix
11.5.2013 15:01
Kommentarlink

Wie kommt der Name überhaupt so auf die Platte? Da müsste doch schon das Anlegen schiefgehen?!


Hadmut
11.5.2013 16:30
Kommentarlink

@Patrix: Nicht unbedingt. Für MSDOS/VFAT-Dateisysteme und embedded Geräte sind jede Menge individuell geschriebene Bibliotheken im Umlauf. Und gerade bei solchen Embedded Devices drängt sich der Gedanke geradezu auf, das nicht über einen langen Pfad zu machen, sondern das Herabsteigen im Dateibaum und das Anlegen von Dateien zu trennen.

Außerdem ist der Standard-Trenner für DOS und VFAT eben \ und nicht /. Letzteres wird oft nur aus Bequemlichkeit und Kompatibilität implementiert. Wenn die hier nur \ als Trenner auffassen, läuft das eben so. Außerdem könnten die das ja ganz bewusst so gemacht haben, weil / in Sendernamen vorkommen kann, wenn sie dabei nur an Windows-User gedacht haben. Und als das Ding gebaut wurde, war Windows eben sehr verbreitet.


yasar
11.5.2013 15:30
Kommentarlink

Soweit ich mich erinnere war / auch schon unter DOS 2.11 Pfadtrennzeichen, auch wenn man den meisten Programmen ein \ vorwerfen mußte.

@hadmut:

Du könntest versuchen mit mmv (multiple move) die Datei umzubenennen.vielleich packt das programm das.


Hadmut
11.5.2013 16:33
Kommentarlink

@yasar: Chancenlos, mmv geht ja auch nur über die POSIX-Schnittstellen. Das Problem ist ja nicht, den Dateinamen nicht zu erfassen, sondern dass das Betriebssystem nicht mehr darauf zugreifen kann, weil es den / immer in Directoreis splittet.

Es kommt, wie es kommen muss:

# mmv ‘*KiKA*’ neo#1
Strange, couldn’t lstat neo/KiKA_20130510_235000.ts.
Aborting, nothing done.


yasar
11.5.2013 15:41
Kommentarlink

@Knut:

Das FAT-Filesystem ist relativ einfach aufgebaut. Da kann man mit einigen wenigen Subroutinen FAT schreiben und lesen (habs vor Ewigkeiten auch schon mal auf dem Amiga gemacht). Wenn nun der Programmierer einige Konsistenzchecks weggelassen hat (ob mit Absicht oder aus versehen lassen wir mal dahingestellt), ist das durchaus nachvollziehbar. Vor allen wird man für so ein Billigteil vermutlich einen passenden billigen programiierer nehmen (Sohn des Neffen, der schon mal ein hello world geschrieben hat oder so).


yasar
11.5.2013 15:43
Kommentarlink

Ach ja: Ich würde ja einfach einen Sektor-Editor nehmen und den slash rausschießen. oder mit od die passenden Stelle finden und dann mit dd das eine byte üebrschreiben. 🙂


Hadmut
11.5.2013 16:33
Kommentarlink

@yasar: Genau sowas werde ich auch tun. Fand’s aber trotzdem erwähnenswert. 🙂


georgi
11.5.2013 15:57
Kommentarlink

Aber schau mal, ob dir FSlint die Dateinamen wieder hinbiegen kann. Umbenennen über Inode wird schwierig, die zaubert man zwar beim Mounten temporär ins offenbar inode-freie FAT32, aber wenn man die nicht über stat auslesen kann..

Mal ganz unabhängig von Hadmuts Problem: wie geht umbenennen über inode?

Ich habe ähnliche Probleme auch, da sind in Archiven immer Ordner drin, die mit einem “-” anfangen. Meine Lösung ist, einer Windows-VM Zugriff auf den enthaltenden Ordner zu geben, denn über Windows kann man das bequem umbenennen.

Ich versuche jetzt das Problem zu rekapitulieren:

#setup
mkdir — -ein-Verzeichnis
touch — -ein-Verzeichnis/eine-Datei-darin
tar cvf ein-Archiv.tar — -ein-Verzeichnis
rm -rf — -ein-Verzeichnis

# jetzt habe ich ein Archiv mit Ordnern, deren Name mit ‘-‘ beginnt
# und nun Rolle rückwärts:
tar xvf ein-Archiv.tar

# schaue nach:
ls -lR

# alles an Ort & Stelle. wo ist das Problem?

Übrigens: Interessant, dass ich im Browser nur 3 Kommentare sehe, in den Feeds aber wesentlich mehr.

Den Feed hat Fantomas übersehen.


Hadmut
11.5.2013 16:37
Kommentarlink

> Übrigens: Interessant, dass ich im Browser nur 3 Kommentare sehe, in den Feeds aber wesentlich mehr.

Schon mal einen Refresh versucht?


Jakob
11.5.2013 16:20
Kommentarlink

Mit dem folgenden Kommando siehst du die Position auf dem Blockdevice, wo der Dateiname gespeichert ist:

strings -td /dev/sdX|grep KiKA_20130510_235000.ts

Wenn du dann die ensprechende Position mit einem anderen Namen überschreibst, dann sollte man die Datei danach eigentlich mit Boardmitteln auslesen können.


Hadmut
11.5.2013 16:48
Kommentarlink

@Jakob:

> strings -td /dev/sdX|grep KiKA_20130510_235000.ts

Ja, der Gedanke drängt sich natürlich zuerst auf. So hätte ich damit gesucht. Bei einer 300GB-Platte an einem eher langsamen USB2.0 (der Rekorder emuliert einen USB-Adapter und ist deshalb deutlich langsamer als eine normale USB-Festplatte) dauert das aber auch ne Weile.


Joe
11.5.2013 16:26
Kommentarlink

Das FAT-Dateisystem ist defekt, der Verzeichniseintrag hat ungültige Zeichen im Dateinamen. /, \, * und noch einige andere Zeichen sind in der FAT-Spezifikation schlicht verboten. Dosfsck bzw. chkdsk.exe sollten das reparieren können.


Hadmut
11.5.2013 17:15
Kommentarlink

@Joe:

chkdsk ist ein geeigneter Weg, siehe oben im Nachtrag

dosfsck verhält sich gruselig: Es findet nämlich angebliche Fehler und Inkonsistenzen, die das Win7-dskchk nicht gemeldet hat. (Belegung von Blöcken) Obwohl dosfsck aber laut man-Seite auch unzulässige Dateinamen korrigiert, stört es sich am / aber gar nicht.


Hadmut
11.5.2013 16:36
Kommentarlink

@georgi: Nein, bringt gar nichts.

Ein Dateiname, der mit – anfängt, ist auf Betriebssystemebe überhaupt kein Problem, und auch auf Applikationsebene nicht. Da besteht das Problem nur in der Bibliotheksfunktion (optparse usw.), die Kommandozeilenparameter parst, weshalb man sowas mit mv — -xyz xyz beheben kann. Das ist ein völlig anderes Problem und hat mit dem hier beschriebenen gar nichts zu tun.


Robert W.
11.5.2013 16:46
Kommentarlink

@georgi und @Hadmut:
Dateien die mit einem “-” beginnen benenne ich meistens so um:
mv ./-xyz xyz
😉


Joe
11.5.2013 17:19
Kommentarlink

Ja, dosfsck interpretiert die FAT-Spezifikation etwas zu “streng”. Chkdsk dürfte der kanonische Weg sein. Ob es die Dateien nur umbenennt oder die Verzeichniseinträge ganz entfernt (dann tauchen die Fragmente (!) unter FOUND.xxx wieder auf), weiß ich allerdings nicht.


gedankenwerk
11.5.2013 17:38
Kommentarlink

@Hadmud

Das kann doch gar nicht funktionieren, weil Shells bzw. Befehle wie mv im User-Space laufen und das ein Problem im Betriebssystem ist, also über die normalen POSIX-Betriebssytem-Funktionen nicht lösbar ist, weshalb ja auch schon ls kein stat durchführen kann. Shell-Escapen ist da sowas von nutzlos.

Ich frag nicht einfach so, ob Du es ausprobiert hast.

Was Userspace versus Systemmode damit zu tun haben soll, verstehe ich jetzt nicht. Schließlich konntest Du die Datei auch im Userspace anlegen.
Es sollte also recht einfach sein, dies zu beheben. Zur Not in dem man mit einem Disk-Editor direkt in den FAT Eintrag das ‘/’ mit einem normalen Zeichen überschreibt.


Hadmut
11.5.2013 18:15
Kommentarlink

@gedankenwerk:

> Was Userspace versus Systemmode damit zu tun haben soll, verstehe ich jetzt nicht. Schließlich konntest Du die Datei auch im Userspace anlegen.

Nein. Man kann sie unter Linux und Windows eben nicht im Userspace anlegen, weil das Betriebssystem sowas von vornherein erst gar nicht zulässt.

Das Problem ist, dass hier ein externer Datenträger eingehängt wurde, auf dem ein Dateisystem mit Daten ist, die nicht innerhalb der Spezifikation liegen. Die Firmware des Rekorders hat da eben einen Bug bzw. eine Nachlässigkeit. Das Problem kannst Du unter Linux und Windows nicht aus dem Userspace über die normalen Dateizugriffsfunktionen beheben. Dazu musst Du direkt auf das Blockdevice zugreifen und das direkt dort reparieren.

> Zur Not in dem man mit einem Disk-Editor direkt in den FAT Eintrag das ‘/’ mit einem normalen Zeichen

Ja. Aber der Disk-Editor geht eben auf das Block-Device und nicht über die Dateifunktionen des Betriebssystems. Das ist ja gerade der Unterschied zu einer Shell. Shells, mv usw. arbeiten ja auch nicht blockmäßig auf dem Device herum, wie ein Disk-Editor es macht.


ngl
11.5.2013 17:41
Kommentarlink

Eventuell hilft es, das FAT-Dateisystem ohne Support für lange Dateinamen zu mounten – unter Linux geht das mit “msdos” statt “vfat” als Dateisystem-Typ. Mit etwas Glück hat der kurze (8.3) Dateiname keinen Slash…


Rainer
11.5.2013 17:57
Kommentarlink

Was läuft denn da für ein Betriebssystem auf dem Aufnahmegerät? Ein Windows wird es wohl nicht sein, denn Windows verhindert von vornherein, dass ein ungültiges Zeichen im Dateinamen landet. (Nunja, mit Administratorrechten, kann man natürlich direkt auf die entsprechenden Sektoren zugreifen und verändern, aber wer sollte das explizit machen wollen?)
Hat der Linux-vfat-Treiber keine solche Sicherheitseinschränkung? Kann ich mir nicht vorstellen. Aber warum sollte jemand eine eigentliche FAT-Dateisystem-Implementierung erstellen? Die im Kernel sollte doch gut genug sein.

Also irgendwas läuft da ziemlich schief. Will nicht wissen, was z.B. bei Nicht-ASCII-Zeichen passiert …


Hadmut
11.5.2013 18:17
Kommentarlink

> Was läuft denn da für ein Betriebssystem auf dem Aufnahmegerät?

Kein Betriebssystem im gewohnten Sinne. Irgend ein komplett proprietärer Krampf, das Ding hat ja auch nur ganz minimal Speicher und CPU. Und kann ja auch kaum was.


Marc
11.5.2013 18:19
Kommentarlink

mtools unter Verwendung des “kurzen” Dateinamens. Wenn der auch falsch ist: dosfsck kann den fixen.


Juergen Sprenger
11.5.2013 18:28
Kommentarlink

Als kanonische Lösung kann man versuchen die ‘fehlenden’ Unterverzeichnisse im voraus anzulegen, z.B. ‘neo’.

Die Dateien sollten dann im Unterverzeichnis angelegt werden.


gedankenwerk
11.5.2013 18:30
Kommentarlink

@Hadmud
Wir hatten mal das Problem, dass (automatisch erzeugte) Dateien sich weder löschen noch umbenennen ließen.
War ein Robustnesstest. Da gab es selbst unter NTFS ein ähnliches Problem, dass sich zwar die Dateien anlegen ließen, aber nicht mit Betriebssystemmitteln wieder umbenennen – oder, wie gesagt, auch nur löschen.
Seltsamerweise funktionierte es dann mit einem Norten Commander Clone (muCommander). Das selbst sogar in Java geschrieben ist. Also mehr User-Space geht fast nicht mehr.


Hadmut
11.5.2013 18:36
Kommentarlink

@gedankenwerk: Dann war es eben nur ein ähnliches, und nicht das gleiche Problem.


Uwe
11.5.2013 18:41
Kommentarlink

Für die Zukunft: Den Namen des Senders ändern. Sollte laut Bedienungsanleitung eigentlich gehen.


Hadmut
11.5.2013 18:47
Kommentarlink

@Uwe: Ja, ne Bedienungsanleitung wäre sicherlich hilfreich. Ich hab meine Bedienungsanleitungen gerade wo verpackt und komme mementan nicht heran. Aber wenn’s geht wäre das ratsam.


Uwe
11.5.2013 18:51
Kommentarlink

Hadmut
11.5.2013 18:57
Kommentarlink

@Uwe: Falsches Gerät. Es ist ein Auvisio KMP361AT, anscheinend = PX8045


Hadmut
11.5.2013 19:03
Kommentarlink

@Uwe: Trotzdem gut der Hinweis, die haben die tatsächlich noch zum Download…


Joe
11.5.2013 19:00
Kommentarlink

Da gab es selbst unter NTFS ein ähnliches Problem, dass sich zwar die Dateien anlegen ließen, aber nicht mit Betriebssystemmitteln wieder umbenennen – oder, wie gesagt, auch nur löschen.

Windows kann Dateien anlegen, die mit einem Punkt oder Leerzeichen enden, mit diesen dann aber anschließend nichts mehr anfangen, da das API trailing dots oder spaces vor dem Zugriff entfernt. Sehr unterhaltsamer Bug.


Michael
11.5.2013 19:09
Kommentarlink

Geht es nicht einfach einen rename im Konsolenfenster von Windows zu machen? Z.B. “ren neo*.ts fantomas.ts” oder “ren neo?KiKA_20130510_235000.ts fantomas.ts”.


Hadmut
11.5.2013 19:11
Kommentarlink

Ich hab’s mit move probiert, aber ging nicht. Windows listet die Datei zwar im Inhaltsverzeichnis (text und Desktop) auf, findet sie aber beim Zugriff nicht. Denn – wie unter Linux – expandiert ja nicht das Betriebssystem selbst die wildcards, sondern die Shell, und die liest zunächst das Inhaltsverzeichnis, sucht die passenden raus und versucht dann über das betriebssystem auf neo/KiKA… zu zugreifen und das geht nicht, weil das auf das Unterverzeichnis neo hinausliefe.


Joe
11.5.2013 19:20
Kommentarlink

Denn – wie unter Linux – expandiert ja nicht das Betriebssystem selbst die wildcards, sondern die Shell

Unter Windows wird / an das API übergeben und dann automatisch durch \ ersetzt. Ähnliche Spezialbedeutung hat der :. Beides wird vom Kernel interpretiert und ist daher in Dateinamen illegal. Auch unter Unix sind / und NUL in Dateinamen verboten.

Im konkreten Fall such der Kernel bspw. bei einem MoveFile()-Aufruf nach einem Verzeichnis “neo” und scheitert.

Unter Windows wäre noch ein Versuch mit der ‘\\.\X:\usw…’ Notation möglich, allerdings gilt die nur für legale Dateinamen.


Uwe
11.5.2013 19:20
Kommentarlink

Vielleicht kannst du noch aus diesem Forum die Vorschläge von DonComi ausprobieren:
http://forum.electronicwerkstatt.de/phpBB/Hardware_und_Programmiersprachen/slash_aus_dateinamen_entfernen_wie-t119072f65_bs0.html


Michael
11.5.2013 19:50
Kommentarlink

Sonst nochmal hiermit probieren:
ren “\\?\c:\Pfad zur Datei\neo?KiKA_20130510_235000.ts” fantomas.ts


Michael
11.5.2013 19:51
Kommentarlink

Mist zu schnell abgeschickt. Hier jetzt der richtig Dateiname
ren “\\?\c:\Pfad zur Datei\neo/KiKA_20130510_235000.ts” fantomas.ts


Knut
11.5.2013 20:19
Kommentarlink

@Yasar

Klar kann man FAT32 recht einfach schreiben, nur …
wer macht so etwas? Du bekommst doch Linux für’n Appel und ein Ei oder QNX oder so etwas.

Und da ist FAT32 ja als Mount Option drin.


Hadmut
11.5.2013 20:22
Kommentarlink

@Knut: Das Ding war 2008 im Angebot und da war das noch nicht so üblich und für den Preis nicht möglich, überall ein Linux reinzuhauen.

Dafür gab’s damals jede Menge Embedded-Klitschen, die einem irgendwas zusammengemurkst haben.


Josh@_[°|°]_
11.5.2013 21:21
Kommentarlink

Hadmut, für den Fall der Fälle, daß nix mehr zu machen ist — ich hatte die drei Sendungen gestern Nacht ebenfalls aufgenommen. Wenn Du also im ungünstigsten Fall Bedarf bekommen solltest, lass es mich hier an dieser Stelle wissen, ich stelle Dir dann die *.ts/*.mpgs zur Verfügung, sind 4,95 GB insgesamt.


Hadmut
11.5.2013 21:27
Kommentarlink

@Josh: Nun mach Dir mal keine Sorgen, ich bin Informatiker, und skripte mich gerade durch die Strukturen des DOS/VFAT-Filesystems. Das ist kein Problem, ich werd nur heute nicht mehr fertig, weil ich jetzt weg muss. So’n tool kann man immer brauchen.

Ich bin durchaus in der Lage, mir da selbst zu helfen, der Blog-Artikel war rein informativ. Also keine Sorge. Und selbst wenn, so wichtig wär der Film eh nicht.


Kopfschüttel
11.5.2013 21:25
Kommentarlink

Hi, also ich habe auch so eine Datei nach einer Aufnahme. Die nennt sich
Bayerisches_FS_Nord_2012_06_15_22_51_31_0151_0C4D0048.TS
Diese Datei kann ich ganz prächtig unter Windows mit dem VLC Player abspielen.
Ich verstehe daher Ihre Probleme nicht!


Hadmut
11.5.2013 21:30
Kommentarlink

@Kopfschüttel:

> Ich verstehe daher Ihre Probleme nicht!

*Seufz*

Ja. Kann ich mir vorstellen. In Ihrem Dateinamen ist nämlich kein / drin und nur darum ging’s.

Sie haben das ganze Problem und den Artikel nicht verstanden.

Schütteln Sie weiter den Kopf, vielleicht hilft schütteln ja irgendwann…


Josh@_[°|°]_
11.5.2013 21:25
Kommentarlink

Nachtrag: Bitte bis spätestens morgen Abend (12. Mai), denn ich wandel’ Privatkopiesachen, die ich langfristig behalte, in AVIs mit a bisserl Verlust um, ehe ich die originalen *.ts/ *.mpgs lösche.


Josh@_[°|°]_
11.5.2013 21:34
Kommentarlink

Alles klar, dann noch gutes Gelingen, schönen Abend, und wie erwähnt, wenn nix mehr gehen sollte auf des DVB-T Möhrenplatte, bis morgen Abend hast Du noch Zeit — danach könnt’ ich Dir nur noch etwas kleinere xvid-AVIs anbieten.


Kopfschüttel
11.5.2013 22:33
Kommentarlink

Oh, tut mir leid. Habe grauen Star und sehe daher etwas schlecht. Entschuldigung bitte.
Vielleicht doch noch ein Vorschlag.
Sie haben die Datei neo/KiKA_20130510_235000.ts
Lassen Sie einfach neo/ weg und benennen Sie die Datei in KiKA_20130510_235000.ts um. Dann ist kein / mehr vorhanden und Ihre Probleme sollten gelöst sein, es kommt doch nicht auf den Namen an sondern auf die Datei .ts
Ich hab versucht Ihnen zu helfen. Wenns nicht geht bitte um pardon.


Hadmut
12.5.2013 10:41
Kommentarlink

@Kopfschüttel

> Oh, tut mir leid. Habe grauen Star und sehe daher etwas schlecht.

Oh, sorry, das wusste ich nicht.

> Lassen Sie einfach neo/ weg und benennen Sie die Datei in KiKA_20130510_235000.ts um.

Das ist ja das Problem, auch umbenennen ist ein Vorgang, der nicht funktioniert, weil dazu das Betriebssystem die Datei finden muss. Auch das geht über die Dateisystemschnittstelle des Systems und die findet die Datei nicht. Deshalb funktioniert gar nichts mehr, was auf Dateiebene arbeitet.

> Ich hab versucht Ihnen zu helfen.

Danke, ist nett. Aber erstens ging’s mir nicht um Hilfe, sondern darum, Information und Amusement zu spenden. Zweitens ist blindes Rumprobieren ohne das Problem verstanden zu haben, keine echte Hilfe.


gedankenwerk
11.5.2013 23:20
Kommentarlink

@Hadmut
Kann man irgendwie einstellen, anhand welcher Muster der Dateiname erzeugt wird (Timestamp, Channelno etc.)?


Knut
11.5.2013 23:56
Kommentarlink

@Hadmut

Auch in 2008 gab es schon reichlich open source vfat Implementierungen.
Kann es sein, dass da noch defekte rumschwirren ? Ich habe da zuletzt drin rum programmiert, als ich für Solaris die deutschen Umlaute freigeschaltet habe. Das war so gegen 2004. Dabei habe ich dann eine Einblick bekommen, wie schwierig es wird, wenn man es richtig macht.
Wie funktioniert das eigentlich, wenn man von Unix UTF8 kodiert nach FAT32 UCS2 kodiert kopiert ? Die Koreaner benutzen auch USB-Sticks …

Was mir noch so auffällt ist die Theoriebildung über die Windows Dateisystem-API. Man könnte gerade glauben, da müßte man was reverse engineeren. Dabei hat MS eine Webseite, wo man sich das durchlesen kann. Die Suchfunktion ist zwar irreführend, wenn man aber nicht auf den Kopf gefallen ist, findet man das in wenigen Minuten. Dort steht dann, dass \ und / verwendet völlig austauschbar werden können.

Desweiteren ist die Länge der Pfadnamen nicht auf 256 Zeichen beschränkt. Das ist nur eine verirrte Konstante, die Jünger von Windows 3.1 benutzen, die aber sonst keine Relevanz hat. Leider zählen die Implementierungen des Windows Explorers dazu.

Lustigerweise ist der Start von Programmen mit einem eigenen Parser versehen worden. Daher kann man jedes Programm mit Absolutem Dateinamen (beginnt mit x:) starten, aber nicht mit relativen Dateinamen. Da muß mit \ getrennt werden.

Soweit meine überflüssigen Anmerkungen zur Windows-API. Die Leute werden weiterhin ihrem Glauben folgen und die Dokumentation von MicroSoft ignorieren. Was wissen die schon ?


Kim
12.5.2013 0:32
Kommentarlink

Kannst du die Datei nicht einfach unter Mac OS umbenennen? Da kann man doch auch jedes noch so dämliche Sonderzeichen in den Dateinamen hauen. Da wird nur gemeckert, wenn’s mit nem Punkt beginnt, aber die unter Windows verbotenen Zeichen /*” etc. werden alle geschluckt…


Stefan W.
12.5.2013 1:53
Kommentarlink

Ich hätte versucht mit dd an die Datei ranzukommen. Was passiert, wenn man ein Verzeichnis neo vorab anlegt wäre auch mein erster Verscuh für die Zukunft gewesen.

Ansonsten warte ich auf die Gründung der Fernsehsender “re:püblica”, “PRN” und “NUL”.


Hadron
12.5.2013 9:22
Kommentarlink

@.Stefan W: und “CON”…


node14u
12.5.2013 12:53
Kommentarlink

lieber hadmut, sei tapfer…

es sind so viele leute stolz darauf etwas mehr als mausschubsen zu können, auch ohne ein studium absolviert zu haben.

meinereiner hat mit dos 3.3 (?zu lange her um die nummern noch zu wissen, aber es war VOR 4.0) begonnen sich für den pc zu interessieren.
und zum glück: oftmals kann man dank der damaligen übungen etwas mehr bewerkstelligen, als mancher windows 7 einsteiger.

helfen ist halt den meisten menschen in die wiege gelegt und ein bedürfniss.

und meist beschwert sich auch niemand über angebotene hilfe. sie wird dann und wann dankend zur kenntniss genommen und abgelehnt wenn nötig 😉

klugscheisser modus aus…

relaxed zum spaziergang.

node


node14u
12.5.2013 12:59
Kommentarlink

mal abgesehen davon , bemerke ich mit einer gewissen genugtuung das ein technisches problem weit mehr kommentare hervorruft, als die letzten (geschätzt 20) angezeigten beiträge.

das soll deine blog nicht bewerten , sondern mich freut das es soviele interesierte zu solchen themen gibt ( und hilfsbereite 😛 )

die klammer war fies… ich weiss

node


hurz
12.5.2013 15:27
Kommentarlink

Also bei solchen problemen habe ich immer den hexeditor aufgemacht und die Datei dort umbenannt, funktioiniert immer ohne die ganzen kaputten tools.


Hadmut
12.5.2013 17:52
Kommentarlink

@hurz:
> den hexeditor aufgemacht und die Datei dort umbenannt, funktioiniert immer ohne die ganzen kaputten tools

Jau, denkste. Die langen vfat-Namen haben noch ne Prüfsumme. Da kannste den Hexeditor vergessen, wenn Du die nicht von Hand ausrechnest.


Asd
12.5.2013 15:41
Kommentarlink

Wie Tim schrieb, kommt Mac OSX mit dem Dateinamen zurecht, ich habs grad ausprobiert – aus dem / wird im Terminal Emulator ein :. Mal eben schnell mal irgendwo OSX zu installieren, gestaltet sich aber sicherlich nicht einfach; hat man nämlich keinen Mac, muss man sich erst das Installationsmedium organisieren (das hat man ja nicht herumliegen wie vielleicht bei Windows und Linux) und dann braucht man noch viel Geduld, bis es in einer virtuellen Maschine startet.

Es wundert mich aber keineswegs, dass der Beitrag soviele Kommentare provoziert, ist das doch ein durchaus spannendes Problem.


Hadmut
12.5.2013 16:07
Kommentarlink

Zur Lösung habe ich gerade einen neuen Artikel geschrieben.


Hadmut
12.5.2013 16:20
Kommentarlink

@Asd: Ich hab’s übrigens noch nicht geschafft, ein halbwegs aktuelles OSX unter Linux zu emulieren.


Josh@_[°|°]_
12.5.2013 16:59
Kommentarlink

Zu Update1 & dem Folgeartikel von heute (12. Mai): Nachdem Du einen Win7-Prompt geöffnet hast zaubert Dir ein »dir /x« im entsprechenden Verzeichnis sowohl den 8.3-Namen, als auch den korrespondieren, langnamigen »neo/Kika-xxx-xxx-xxx«-Eintrag auf den Schirm.

Ein anschliessendes »ren 8.3-Name Dufterneuername« hätte also das Problem ebenfalls lösen können.
😉

Doch bedankt ob der vielen Hintergrundinfos.


Pete
12.5.2013 19:16
Kommentarlink

Oben stand etwas von “Sendernamen aendern”.
Die Frage ist, ob das geht. Ich habe den Verdacht, das Geraet bezieht den Sendernamen nicht aus der Senderliste, sondern aus dem EPG. Damit wuerde er vom System geliefert und ist daher nicht aenderbar.
Ich habe das noch nicht genauer untersucht, in Hadmuts “Falle” bin ich noch nicht hineingeraten.
So, die Vermutung ist im Experiment ueberprueft.
Der Empfaenger ist eine Sat-DBox2 auf Neutrino-Linux, der Sender nennt sich offiziell Nick/CC AUT und hat keinen EPG. Er verteilt tagsueber Nickelodeon und ab 20:00 ComedyCentral fuer Oesterereich.
Seinen Stream (Testaufnahme) liefert er unter
NICK_CC_AUT__2013-05-12_183011.001.ts
ab.
In der Senderliste (/var/tuxbox/config/zapit/services.xml) ist der Sender unter “NICK/CC AUT” abgelegt.

Irgendwer hat hier also dafuer gesorgt, dass der Sendername korrekt behandelt wird, wenn er fuer die Aufnahme verwendet wird.
Die gleiche Falle wuerde auch z.B. bei “Sat1 HH/SH” aufgestellt.

Jetzt haengt es nur noch von dem DVB-T Empfaenger ab, ob er sich soweit unter die Haube schauen laesst, dass man in seiner Senderliste herumfuhrwerken kann. Dann zeigt es sich, wie er funktioniert.

Pete


Hadmut
12.5.2013 19:21
Kommentarlink

@Pete: Ich hab bei dem Ding bisher keinen Weg gefunden, den Sendernamen zu ändern. Was umso ärgerlicher ist, als das Ding Sendernamen mit Umlauten völlig verunstaltet.


hurz
13.5.2013 9:30
Kommentarlink

Achso _V_fat, stimmt da geht das nicht so einfach.