Чи потрібно турбуватися про "хвіст: нерозпізнана файлова система типу 0xbeefdead"?


32

Я намагаюся перейти за звичайним текстовим файлом із tail -f -n 50 filename. Я отримую інформацію з файлу просто чудово, за винятком того, що я завжди отримую це повідомлення про помилку:

хвіст: нерозпізнана файлова система типу 0xbeefdead

Це трапляється на кожному файлі. 0xbeefdeadМене турбує - це виглядає як хакер тезі.

$ tail --version
tail (GNU coreutils) 8.4

3
Чи не повинен бути 0xdeadbeefнатомість? :P
devnull

1
Закриття голосування відкликано.
slm

1
Напевно, очевидно, але 0xDEADBEEF часто використовується для позначення неініціалізованих байтів і подібних речей. BEEFDEAD - це, мабуть, розумний поворот у цьому. en.wikipedia.org/wiki/Hexspeak (пошук deadbeef)
користувач426724

@goldilocks: Це приємна історія, але немає жодного питання. Крім того, зафіксуйте ключ блокування шапки.
Бен Войгт

3
@BenVoigt Caps заблокував, він зробив дійсну точку. Питання цілком зрозуміле: він просто запитує, чи нормально його яловичина.
Навін

Відповіді:


34

Якщо ви отримуєте це попередження під час використання файлової системи StorNext і працює під керуванням coreutils8.21 або новішої версії , турбуватися не варто; це попередження очікується.

GNU tailмає провідні знання про ряд типів файлової системи та попереджає, коли стикається з невідомим типом. Підтримка файлової системи StorNext була додана tailв coreutilsв квітня 2013 року , і була випущена в coreutils8.22. Комітет тут . Якщо ви не можете отримати цю версію coreutils, або ви хочете відредагувати та перекомпілювати джерело самостійно, ось відмінність від цього зобов’язання:

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
Чому така програма простору користувачів tailповинна бути сумісною з певною файловою системою? Я думаю, що я маю на увазі, чи не існує абстракції файлової системи, на яку можна покластися?

15
@ iluminÉ, основна причина визначення типу файлової системи - це операція "хвіст -f": найефективніший спосіб з'ясувати, чи були записані нові дані у файл, варіюється від однієї файлової системи до іншої.
Марк

9
tailз -fопцією використовує, inotifyякщо може. Але inotifyможе відслідковувати лише зміни, спричинені діяльністю ядра локальної системи. Тож tailвикористовуватиметься inotifyлише в тому випадку, якщо аргумент файлу знаходиться на тому, що він класифікується як "локальна" файлова система.
Марк Плотнік

7
І остання інформація про відсутність полягає в тому, що ядро ​​не дає чітких ознак того, що щось не так, коли ви намагаєтеся застосувати ініціативу у файловій системі, яка не підтримує її, тому це магічне число kludgefest є в основному єдиним безпечним способом його використання.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.