Что за файл hfs

Обновлено: 07.07.2024

Иерархическая файловая система (HFS ) - это проприетарнаяфайловая система , разработанная Apple Inc. для использования в компьютерных системах под управлением Mac OS . Первоначально разработанный для использования на гибких дисках и жестких дисках , его также можно найти на носителях только для чтения, таких как CD-ROM . HFS также называется Стандарт Mac OS (или «Стандарт HFS»), а его преемник, HFS Plus , также называется Mac OS Extended (или «HFS Extended»).

С выпуском Mac OS X 10.6 Apple отказалась от поддержки форматирования или записи дисков HFS и образов , которые по-прежнему поддерживаются как только для чтения томов. Начиная с macOS 10.15 , диски HFS больше не читаются.

Содержание

История

Apple представила HFS в Сентябрь 1985 г., специально для поддержки первого жесткого диска Apple для Macintosh, заменив Macintosh File System (MFS), исходную файловую систему, которая была представлена ​​более полутора лет. ранее с первым компьютером Macintosh . HFS в значительной степени опиралась на первую иерархическую операционную систему Apple (SOS ) для отказавшего Apple III , которая также послужила основой для иерархических файловых систем на Apple IIe и Apple Lisa . HFS был разработан Патриком Дирксом и Биллом Браффи. Он разделял с MFS ряд конструктивных особенностей, которые не были доступны в других файловых системах того времени (например, DOS FAT ). Файлы могут иметь несколько ответвлений (обычно вилка данных и ресурсов ), что позволяет хранить основные данные файла отдельно от ресурсов, таких как значки, которые, возможно, потребуется локализовать. Для ссылок на файлы использовались уникальные идентификаторы файлов, а не имена файлов, а имена файлов могли быть длиной 255 символов (хотя Finder поддерживал только 31 символ).

Однако MFS была оптимизирована для использования на очень маленьких и медленных носителях, а именно на гибких дисках , поэтому HFS была введена для преодоления некоторых проблем производительности, возникших с появлением более крупных носители, в частности, жесткие диски . Главной проблемой было время, необходимое для отображения содержимого папки. В MFS вся информация о файлах и каталогах хранилась в одном файле, который системе приходилось искать, чтобы создать список файлов, хранящихся в определенной папке. Это хорошо работало с системой с несколькими сотнями килобайт памяти и, возможно, сотней файлов, но по мере того, как системы разрастались до мегабайт и тысяч файлов, производительность быстро снижалась.

Решением было заменить структуру каталогов MFS на более подходящую для больших файловых систем. HFS заменила плоскую структуру таблицы файлом каталога, в котором используется структура B-tree , поиск в которой можно осуществлять очень быстро независимо от размера. HFS также переработала различные структуры, чтобы иметь возможность хранить более крупные числа, почти повсеместно 16-битные целые числа заменены 32-битными. Как ни странно, одним из немногих мест, где этого «увеличения размера» не произошло, был сам файловый каталог, который ограничивает HFS в общей сложности 65 535 файлами на каждом логическом диске.

Хотя HFS является проприетарным форматом файловой системы, он хорошо документирован; обычно существуют решения для доступа к дискам в формате HFS из большинства современных операционных систем .

Apple представила HFS по необходимости с первым предложением 20 МБ жесткого диска для Macintosh в сентябре 1985 г., когда он был загружен в оперативную память с дискеты MFS при загрузке с помощью файла исправления («Жесткий диск 20»). Однако HFS не получила широкого распространения до тех пор, пока она не была включена в 128K ROM , который дебютировал с Macintosh Plus в январе 1986 года вместе с большим дисководом на 800 КБ для Macintosh, который также использовал HFS. Внедрение HFS было первым достижением Apple, оставившим позади модель компьютера Macintosh: оригинальный 128K Macintosh , в котором не хватало памяти для загрузки кода HFS, и он был незамедлительно снят с производства.

В 1998 году Apple представила HFS Plus для решения проблемы неэффективного распределения дискового пространства в HFS и для добавления других улучшений. HFS по-прежнему поддерживается текущими версиями Mac OS, но начиная с Mac OS X , том HFS нельзя использовать для загрузки , а начиная с Mac OS X 10.6 (Snow Leopard) тома HFS доступны только для чтения и не могут быть созданы или обновлены. В macOS Sierra (10.12) в примечаниях к выпуску Apple указано, что «Стандартная файловая система HFS больше не поддерживается». Однако поддержка HFS Standard только для чтения все еще присутствует в Sierra и работает так же, как и в предыдущих версиях.

Дизайн

Том хранения по своей природе разделен на логические блоки по 512 байт. Иерархическая файловая система группирует эти логические блоки в блоки распределения, которые могут содержать один или несколько логических блоков, в зависимости от общего размера тома. HFS использует 16-битное значение для адресации блоков распределения, ограничивая количество блоков распределения 65 535 (2-1).

Пять структур составляют том HFS:

  1. Логические блоки 0 и 1 тома - это Загрузочные блоки, которые содержат информацию о запуске системы. Например, имена файлов System и Shell (обычно Finder ), которые загружаются при запуске.
  2. Логический блок 2 содержит блок главного каталога (также известный как MDB ). Это определяет широкий спектр данных о самом томе, например отметки даты и времени, когда том был создан, расположение других структур тома, таких как растровое изображение тома, или размер логических структур, таких как блоки распределения. Также имеется дубликат MDB, называемый блоком альтернативного главного каталога (также известный как альтернативный MDB ), расположенный на противоположном конце тома во втором предпоследнем логическом блоке. Он предназначен в основном для использования дисковыми утилитами и обновляется только тогда, когда размер файла каталога или файла переполнения экстентов увеличивается.
  3. Логический блок 3 является начальным блоком Bitmap тома , который отслеживает, какие блоки распределения используются, а какие свободны. Каждый блок распределения на томе представлен битом на карте: если бит установлен, то блок используется; если он ясен, тогда блок можно использовать. Поскольку в растровом изображении тома должен быть бит для представления каждого блока распределения, его размер определяется размером самого тома.
  4. Файл переполнения экстента является B-деревом , который содержит дополнительные экстенты, в которых указывается, какие блоки распределения и каким файлам назначены после того, как исчерпаны первые три экстента в файле каталога. Более поздние версии также добавили возможность для файла переполнения экстента хранить экстенты, которые записывают плохие блоки, чтобы файловая система не пыталась выделить плохой блок для файла.
  5. Файл каталога это еще одно B-дерево , которое содержит записи для всех файлов и каталогов, хранящихся в томе. Он хранит четыре типа записей. Каждый файл состоит из записи потока файла и записи файла, а каждый каталог состоит из записи потока каталога и записи каталога. Файлы и каталоги в файле каталога располагаются по их уникальному идентификатору узла каталога (или CNID ).
    • A File Thread Record хранит только имя файла и CNID его родительского каталога.
    • A File Record хранит различные метаданные о файле, включая его CNID, размер файла, три отметки времени (когда файл был создан, последнее изменение, последнее резервное копирование), первый экстент файла вилок данных и ресурсов и указатели на первые данные файла и записи экстентов ресурсов в файле переполнения экстента. File Record также хранит два 16-байтовых поля, которые используются Finder для хранения атрибутов файла, включая такие вещи, как его код создателя , код типа , окно, в котором должен отображаться файл. и его местоположение в окне.
    • A Запись потока каталога хранит только имя каталога и CNID его родительского каталога.
    • A Запись каталога , которая хранит данные, такие как количество файлов, хранящихся в каталог, CNID каталога, три отметки времени (когда каталог был создан, последнее изменение, последнее резервное копирование). Как и File Record, Directory Record также хранит два 16-байтовых поля для использования Finder. В них хранятся такие вещи, как ширина и высота и координаты x и y для окна, используемого для отображения содержимого каталога, режим отображения (вид значков, вид списка и т. Д.) Окна и положение прокрутки окна. bar.

Ограничения

Файл каталога, в котором хранятся все записи файлов и каталогов в единой структуре данных, приводит к проблемам с производительностью, когда система допускает многозадачность , поскольку только одна программа может писать в эту структуру за один раз, что означает, что многие программы могут ожидать в очереди из-за того, что одна программа «забивает» систему. Это также серьезная проблема надежности, поскольку повреждение этого файла может привести к разрушению всей файловой системы. Это контрастирует с другими файловыми системами, которые хранят записи файлов и каталогов в отдельных структурах (например, файловая система DOS FAT или файловая система Unix ), где распределение структуры по диску означает, что повреждение одного каталога обычно нефатальный, и данные могут быть, возможно, реконструированы с данными, хранящимися в неповрежденных частях.

Кроме того, ограничение в 65 535 блоков распределения привело к файлам, имеющим «минимальный» размер, эквивалентный 1/65 535 размера диска. Таким образом, на любом томе, независимо от его размера, можно было хранить не более 65 535 файлов. Более того, любому файлу будет выделено больше места, чем это действительно необходимо, вплоть до размера блока распределения. Когда диски были маленькими, это не имело большого значения, потому что размер отдельного блока распределения был тривиальным, но когда диски начали приближаться к отметке 1 ГБ, наименьший объем пространства, который мог занимать любой файл (один блок распределения), стал чрезмерно большим. , тратя впустую значительное количество дискового пространства. Например, на диске размером 1 ГБ размер блока распределения в HFS составляет 16 КБ, поэтому даже 1-байтовый файл займет 16 КБ дискового пространства. Эта ситуация была меньшей проблемой для пользователей, имеющих большие файлы (например, изображения, базы данных или аудио), поскольку эти большие файлы занимали меньше места в процентном отношении к их размеру. С другой стороны, пользователи с большим количеством небольших файлов могут потерять много места из-за большого размера блока распределения. Это сделало разделение дисков на более мелкие логические тома очень привлекательным для пользователей Mac, потому что небольшие документы, хранящиеся на меньшем томе, занимали бы гораздо меньше места, чем если бы они находились на большом разделе. Та же проблема существовала в файловой системе FAT16.

HFS сохраняет регистр файла, который был создан или переименован, но не чувствителен к регистру при работе.

HFS файлы в Windows 10, которые открываются с помощью PeaZip

Файл с HFS расширением файла является файл образа диска HFS. HFS обозначает иерархическую файловую систему и является файловой системой, используемой на компьютере Mac для описания структуры файлов и папок.

Файл HFS упорядочивает данные таким же образом, за исключением того, что все файлы содержатся в одном файле с расширением .HFS. Иногда их видят в файлах DMG .

Файлы HFS аналогичны другим файлам образов дисков в том, что они используются для хранения и организации большого количества данных в одном управляемом файле, который можно легко передавать и открывать по желанию.

HFS файлы в Windows 10, которые открываются с помощью PeaZip

Как открыть файл HFS

Вы можете открыть файлы HFS на компьютере с Windows с помощью любой популярной программы сжатия / распаковки . Двумя нашими любимыми являются 7-Zip и PeaZip , которые способны распаковывать (извлекать) содержимое файла HFS.

HFSExplorer — это еще один способ открыть файл HFS в Windows. Эта программа даже позволяет пользователям Windows читать жесткие диски в формате Mac , использующие файловую систему HFS.

Mac OS X 10.6.0 и новее может самостоятельно читать файлы HFS, но не может записывать в них. Одним из способов обойти это ограничение является использование такой программы, как FuseHFS . Если вы переименуете файл .HFS на Mac в .DMG, ОС должна немедленно подключить файл как виртуальный диск при его открытии.

Пользователи Linux должны иметь возможность переименовать файл .HFS, чтобы он имел расширение файла .DMG, а затем смонтировать его с помощью этих команд (заменив имена путей своей собственной информацией):

Хотя это маловероятно для файлов HFS на вашем компьютере, возможно, что более чем одна установленная вами программа поддерживает формат, но та, которая установлена ​​в качестве программы по умолчанию, не та, которую вы хотели бы использовать. Если это так, посмотрите, как изменить ассоциации файлов в Windows для получения инструкций по изменению программы.

Как конвертировать файл HFS

Многие форматы файлов можно конвертировать с помощью бесплатного конвертера файлов , но мы не знаем ни одного файла , способного сохранить файл образа диска HFS в любом другом формате.

Одна вещь, которую вы могли бы сделать, это «конвертировать» файлы вручную. Это просто означает извлечь содержимое файла HFS с помощью утилиты для распаковки файлов, упомянутой выше. Как только все файлы сохранены в папке, упакуйте их в другой формат архива, такой как ISO , ZIP или 7Z, используя одну из программ сжатия выше.

Если вы не пытаетесь преобразовать файл HFS, а вместо этого — файловую систему HFS, в другую файловую систему, например NTFS , вам может повезти с такой программой, как Paragon NTFS-HFS Converter .

Основным элементом управления дисковым пространством накопителей, обеспечивающим безопасное хранение данных, выступает файловая система. На устройствах компании Apple это HFS+, также известная как Mac OS Extended. Она является следующим улучшением предшествующей версии HFS.

image


Файловая система HFS+ (Mac OS Extented)

Совокупный ряд обновлений системы привел к повышению надежности файловой структуры. HFS+ использует узловой древовидный формат файловой основы совместно с обязательной записью сведений о произошедших изменениях. В выделенном месте на накопителе система располагает особую часть служебной информации, которая содержит данные обо всех элементах, расположенных на диске. А также важные сведения, необходимые для полноценной загрузки и функционирования HFS+.

image

Новый вариант построения системы осложняет операции восстановления данных, так как информация об объектах мгновенно обновляется при внесении каких-либо изменений (удалении, сбое, поломке и т.д.). И не каждое программное обеспечение, представленное сегодня на рынке, способно вернуть востребованные файлы. Поэтому далее мы рассмотрим несколько программ, которые умеют возвращать файлы с накопителей формата HFS+ и проведем их сравнительный анализ.

Список задействованных приложений

Перечень приложений, которые будут участвовать в тесте будет включать все известные марки программ. Основным требованием к приложениям было условие, что участники сравнения должны поддерживать процесс восстановления с дисков HFS+. К ним относятся такие продукты Hetman, R-Studio, Easeus, DiskDrill, UFS Explorer.

В ОС MacOS мы на носитель записали разные объекты, наиболее часто используемые пользователями, а именно снимки, видеоролики, офисные тексты. Потом некоторые из них мы стерли. Подключили диск к другому компьютеру, на котором уже были все испытуемые программы, и произвели проверку их возможностей. Полученные результаты мы представили далее.

image

Примечание. Recuva данную файловую систему не распознает, поэтому в тестах мы ее не задействовали.

Вариант простого удаления

С данным видом теста с тем или иным успехом успешно справились все перечисленные приложения. Более подробно итоговые результаты имеют следующий вид.

Приложение Hetman Partition Recovery – в главном окне диск HFS+ определен верно и корректно указано его имя. После простого анализа (на выбор представлено 2 вида сканирования и мы выбрали самый быстрый) удаленные объекты были найдены, внутренний порядок полностью сохранен, названия файлов имеют исходные значения, содержимое отображается. Искомые файлы восстановлены.

image

Утилита RStudio – носитель HFS+ успешно определен, указаны имя диска и тип используемой системы. Выполнив быстрый анализ, программа RStudio нашла стертые файлы, но отсутствовала одна папка (1Movie), часть элементов представлена в нескольких копиях, а некоторые файлы числились удаленными, хотя действий с ними мы не производили. Файлы восстановлены за исключением одного каталога.

image

Программа Easeus Data Recovery Wizard – диск найден, верно определены тип системы HFS+ и имя носителя. В утилите присутствует только вариант полной проверки накопителя. По ее завершению все удаленные элементы обнаружены и восстановлены. Однако программа не выделяет какой-либо меткой восстановленные файлы. Часть элементов имеет копии. Придется тратит время и проверять весь массив данных, чтобы найти нужные файлы.

image

Утилита DiskDrill – представляет в выделенном поле программы правильный объем носителя, но отмечает его тип как HFS с неизвестным именем. Выбор быстрого варианта исследования диска результатов не дал. В окне показаны только существующие файлы. После обширного сканирования содержимое носителя распределено по разным каталогам, согласно своему расширению. Восстановленные файлы не выделены, их общее количество неизвестно, внутреннее наполнение файлов не показывается.

image

Программа UFSExplorer – имя носителя не указано, но система отмечена верно. Вариант простого сканирования отсутствует. Полный анализ восстановил удаленные файлы, отобразил верно организационное построение и маркировку объектов, обеспечил пред просмотр всего содержимого по выбору, кроме текстовых файлов (вызывает сомнение способность удачно восстановить документы).

image

Краткие предварительные оценки всех образцов после первого теста – перечисленные образцы смогли возвратить удаленные объекты, продукты от Hetman и Easeus показали лучший результат в сравнении с оставшимися, которые имеют отдельные недочеты.

Поврежден, удален или отсутствует заголовок тома

Мы намерено усложнили задачу. Сперва стерли заголовок тома, а потом запустили тестовую проверку утилит.

Приложение Hetman – информация о носителе отображена верно. Быстрый вариант сканирования нашел все удаленные файлы, правильно отобразил организационный порядок элементов на диске, подготовил объекты к восстановлению, при выборе показывает содержание файлов.

image

Утилита RStudio – также все характеристики накопителя указаны верно. Однако, как и в первом тесте, RStudio не вернула папку 1Movie и представила несколько копий отдельных каталогов. Хотя все остальные файлы восстановила.

image

Программа Easeus – корректно представила сведения о диске в полном объеме. Итог сканирования полностью повторяет результаты из прошедшего теста. Все файлы возвращены, однако нет разделения и некоторая доля файлов представлена вместе со своими копиями.

image

DiskDrill – как и ранее, ограниченные сведения о носителе. А после сканирования, широкий разброс файлов по разным папкам, формат представления нарушен, ознакомиться с содержимым многих документов невозможно. Слабые результаты вынуждают нас отказаться от дальнейшего теста данной утилиты.

image

UFSExplorer – неполный набор данных о диске, отсутствует имя носителя. Также, как и ранее, восстановил все файлы, вернул правильную дисковую структуру, но возникли проблемы с отображением текстов.

image

Дополнительно стерта копия заголовка в метаданных HFS+

С новым вызовом программы справились следующим образом.

Приложение Hetman – урезана информация о носителе, не определен тип, нет имени. Задействуем полный вариант сканирования. Несмотря на недостаток метаданных, итоговое построение носителя правильно, файлы восстановлены и отображаются при обращении.

image

Программа RStudio – частично отображает сведения о диске, нет его названия, не определен тип. После анализа сведения представлены в полном объеме. Но восстановлены, как и прежде, не все файлы. Нет отдельного каталога с видео 1Movie и дополнительно отсутствует директория с файлом doc.

image

Утилита Easeus – тоже не полные сведения о диске, неизвестны имя и тип системы. Но после сканирования программе удалось восстановить удаленные файлы, однако, как и в прошлых испытаниях, возникли дополнительные копии некоторого содержимого.

image

UFSExplorer – диск неизвестен, нет никаких сведений. После дискового анализа программа нашла удаленные элементы, хоть и не способна представить содержимое текстовых документов.

image

Потеря части метаданных
В заключительной тестовой проверке приложений для восстановления мы сымитируем критические повреждения файловой системы носителя, а именно сначала удалим древовидные узлы верхнего уровня, а потом вдобавок сотрем еще и узлы второго уровня Index Node. И в первом, и во втором тесте каждая из программ показала схожий результат.

Программа Hetman – диск показан, но сведения о нем отсутствуют. После полного сканирования накопитель идентифицирован, внутренняя структурная форма представления содержимого восстановлена, все файлы возвращены, отображаются при нажатии и готовы для сохранения.

image

RStudio – диск неизвестен, но после сканирования все сведения представлены. Приложение успешно восстановило удаленные элементы кроме, ситуация повторилась, содержимого директорий 1Movie и doc. Остальные файлы просматриваются при обращении, внутренняя форма накопителя возвращена к исходному состоянию.

image

Easeus – накопитель найден, но данных о нем нет. Программный анализ также полностью восстановил утраченные элементы, их можно при необходимости просмотреть, но все равно присутствуют дополнительные лишние копии отдельных объектов.

image

UFSExplorer – вид носителя не определен, параметры его неизвестны. После сканирования структурная композиция содержимого принимает первичный вид, файлы восстановлены, их можно сохранить, только все равно нет отображения содержимого некоторых текстов.

Вывод

Четыре из пяти программ успешно справились с проверкой возможностей. Каждая, в большей или меньшей степени, смогла восстановить удаленные файлы. Были отдельные моменты при выводе некоторых элементов для ознакомления, но, в целом, тест основной четверкой приложений пройден, за исключением DiskDrill.

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике.


Альтернативные ссылки, если сайт разработчика не работает:

hfs2Service1.0-fixed.zip - для запуска HFS в качестве сервиса.

Несмотря на то, что программа очень проста, она не имеет русскоязычного интерфейса. Поэтому здесь я подробно напишу, как ей пользоваться.

Программа работает без установки, в общем случае ее можно просто скопировать в любую папку, например Program Files:



Теперь рассмотрим основные этапы работы с HFS. Войдя в программу, лучше перейти в экспертный режим, так как там, по сравнению с обычным, доступно больше настроек:


После этого следует указать порт, который будет слушать программа и по которому будет доступен веб-интерфейс:



Так как мы хотим, чтобы пользователи загружали файлы в определенную папку на сервере, ее необходимо создать обычным способом:


Далее, перетащить папку мышью в левое окно программы. Появится всплывающее окно, спрашивающее, как будет интерпретирована папка внутри программы:


Нужно выбрать Real folder.

Каждому пользователю-клиенту, для удобства, можно выделить собственную папку.

Теперь можно зайти в веб-интерфейс и посмотреть, отображается ли созданная папка:


Как видно, она отображается. Но к ней не настроен доступ на чтение и запись.

Доступ на чтение для конкретной папки настраивается с помощью меню Restrict Access. Для вызова нужно нажать на папку правой кнопкой мыши:


Отсюда можно создать аккаунт пользователю для доступа или разрешить доступ анонимному пользователю.

Если мы уже создали нескольких пользователей, то можно будет выбрать, кому давать доступ на чтение, а кому нет:

Чтобы дать кому-то возможность загружать файлы, нужно выбрать пункт меню Upload:


Можно дать возможность загрузки для всех (Anyone), или выдать такие права только избранным:


Теперь мы можем загружать файлы через веб-интерфейс:


В общем случае управление пользователями и их правами осуществляется следующим образом:



Следует отметить, что все настройки по умолчанию сохранятся для текущего пользователя. То есть никакой другой пользователь (в том числе System) наши изменения настроек не увидит, и программа будет запускаться для каждого пользователя со своими настройками. Чтобы настройки сохранялись для всех пользователей, нужно выбрать пункт меню Save options:


Программа сохраняет настройки в реестре, то есть их можно переносить с компьютера на компьютер и от пользователя к пользователю:


Веб-интерфейс программы по умолчанию невзрачный, стандартный. Его можно полностью изменить, применив любые CSS-стили, HTML-разметку и изображения (вставить логотип фирмы и прочее), русифицировать:


Если смущает номер порта в URL, можно настроить Apache для проксирования по такой схеме:

Читайте также: