9

Я работаю над NAS-системой среднего уровня, в основном работающей под Linux, и сегодня мне нужно провести отличное тестирование. Пошаговое руководство привело меня к использованию fsdb для повреждения магического числа в файловой системе, чтобы повредить его / протестировать скрипт, который должен это исправить.

Я немного погуглил и не нашел убедительного объяснения. Может ли кто-нибудь пролить некоторый свет на промежуточный уровень?

1 ответ1

15

Магическое число - это последовательность байтов, которая используется во всех файлах определенного формата, обычно в заданной позиции (часто в начале). Поскольку все файлы в этом конкретном формате имеют конкретную последовательность байтов в этой конкретной позиции, а большинство файлов в других форматах не имеют ее, магическое число - это способ узнать, в каком формате находится файл.

Здесь эта концепция применяется к формату файловой системы. Например, файловая система ext2/ext3/ext4 всегда имеет байты 0x53 0xEF в позициях 1080–1081. Файловая система reiserfs всегда имеет ReIsErFs начиная с позиции 65588 (или ReIsEr2Fs и т.д. В более поздних версиях). Другие файловые системы имеют похожие магические числа. Инструменты файловой системы проверяют наличие магического числа (и, возможно, других подсказок), чтобы убедиться, что вы случайно не запустили их для данных, которые организованы в формате, с которым они не могут иметь дело и могут повредить. Если вы измените магическое число в файловой системе, обычные инструменты, скорее всего, откажутся его трогать; инструменты ремонта могут быть более умными и рассматривать плохое магическое число как одну из вещей, которые могут быть сломаны.

Команда file распознает файлы по их магическим номерам. Вы можете запустить file -s /dev/sda1 чтобы увидеть, что он думает о разделе /dev/sda1 . Его решения основаны на базе данных, которая обычно находится в /etc/magic или /usr/share/misc/magic . Определенные команды могут использовать разные магические числа для распознавания форматов файлов, с которыми они могут справиться.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .