Muss ich mir Gedanken über "tail: unerkanntes Dateisystem vom Typ 0xbeefdead" machen?


32

Ich versuche, einer normalen Textdatei mit zu folgen tail -f -n 50 filename. Ich erhalte die Informationen aus der Datei, außer ich erhalte immer die folgende Fehlermeldung:

tail: Unbekannter Dateisystemtyp 0xbeefdead

Das passiert bei jeder Datei. Das macht 0xbeefdeadmir Sorgen - es sieht aus wie ein Hacker-Tag.

$ tail --version
tail (GNU coreutils) 8.4

3
Sollte es nicht 0xdeadbeefstattdessen sein? :P
24.

1
Enge Abstimmung zurückgezogen.
slm

1
Wahrscheinlich offensichtlich, aber 0xDEADBEEF wird oft verwendet, um nicht initialisierte Bytes und ähnliches anzuzeigen. BEEFDEAD ist wahrscheinlich eine kluge Wendung. en.wikipedia.org/wiki/Hexspeak (Suche nach deadbeef)
user426724

@goldilocks: Es ist eine schöne Geschichte, aber es gibt keine Frage. Korrigieren Sie auch Ihre Feststelltaste.
Ben Voigt

3
@BenVoigt Feststelltaste beiseite, machte er einen gültigen Punkt. Die Frage ist ganz klar: Er fragt nur, ob sein Rindfleisch normal ist.
Navin

Antworten:


34

Wenn Sie diese Warnung erhalten, wenn Sie das StorNext-Dateisystem verwenden und coreutils8.21 oder früher ausführen, besteht kein Grund zur Sorge. Diese Warnmeldung wird erwartet.

GNU tailverfügt über fundiertes Wissen über eine Reihe von Dateisystemtypen und warnt, wenn ein unbekannter Typ gefunden wird. Die Unterstützung für das StorNext - Dateisystem wurde hinzugefügt , um tailin coreutilsim April 2013 und wurde freigegeben coreutils8,22. Das Commit ist da . Wenn Sie diese Version von nicht erhalten coreutilskönnen oder die Quelle selbst bearbeiten und neu kompilieren möchten, finden Sie hier den Unterschied zu diesem Commit:

src/stat.c
@@ -399,6 +399,8 @@ enum
     return "selinux";
   case S_MAGIC_SMB: /* 0x517B remote */
     return "smb";
+  case S_MAGIC_SNFS: /* 0xBEEFDEAD remote */
+    return "snfs";
   case S_MAGIC_SOCKFS: /* 0x534F434B local */
     return "sockfs";
   case S_MAGIC_SQUASHFS: /* 0x73717368 local */

11
Warum muss ein Userspace-Programm wie tailmit einem bestimmten Dateisystem kompatibel sein? Ich denke, was ich meine ist, gibt es keine Dateisystemabstraktion, auf die es sich verlassen kann?

15
@ illuminÉ, der Hauptgrund für die Bestimmung des Dateisystemtyps ist die Operation "tail -f": Die effizienteste Methode, um festzustellen, ob neue Daten in eine Datei geschrieben wurden, ist von Dateisystem zu Dateisystem unterschiedlich.
Mark

9
tailmit der -foption benutzt man inotifywenn es geht. Aber inotifykann nur Änderungen von Aktivität durch das lokale System des Kernels getan verursacht überwachen. So tailwird verwenden inotifynur , wenn das Dateiargument ist auf das, was sie klassifiziert als „local“ Dateisystem.
Mark Plotnick

7
Und die letzte fehlende Information ist, dass der Kernel keinen klaren Hinweis darauf gibt, dass etwas nicht stimmt, wenn Sie versuchen, inotify auf einem Dateisystem zu verwenden, das es nicht unterstützt. Daher ist diese magische Zahl kludgefest im Grunde die einzig sichere Möglichkeit, es zu verwenden.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.