Как добавить поддержку файловых систем FAT12, FAT16 и FAT32 Дисковой утилитой Mac OS X.

И снова файловые системы. На этот раз меня замучил вопрос: “Почему Дисковая утилита не отображает дополнительные файловые системы FAT, поддержка которых изначально имеется в системе?”. Острой необходимости в этих ФС у мен нет, на крайний случай форматну что нужно через консоль. Но спортивный интерес – это такой интерес… Отправился осматривать строение одного из компонентов драйвера MS-DOS (FAT) – бандл msdos.fs, который находится в /System/Library/Filesystems. Так как модули типа *.fs являются пакетами (бандлами), можно легко просмотреть их структуру: кликаем правой клавишей по msdos.fs и выбираем пункт меню Показать содержимое пакета. После данного действия взору открывается структура:
Структура msdos.fsКак видно, msdos.fs состоит из исполнительного модуля msdos.util, папки Resources (в которой находятся файлы локализации), файла version.plist (в котором находится информация о версии данного модуля) и файла Info.plist (в котором указаны параметры работы с файловыми системами) – он нас как раз и интересует. Сделаем на всякий случай резервную копию файла Info.plist, а потом откроем оригинальный Info.plist при помощи любого удобного текстового редактора, например при помощи TextMate. Обратите внимание на выделенные строки:

Модуль msdos.fs, содержимое файла Info.plist (часть 1)

В каждом выделенном сегменте нам нужно заметить значение исходного параметра FSFormatMaximumSize на 8796093022208, то есть для MS-DOS FAT12 вместо выделенного фрагмента вставляем вот такой:
<key>FSFormatMaximumSize</key>
<integer>8796093022208</integer>
Параметр FSFormatMinimumSize не трогаем. Проделываем замену для FAT12, изменив в параметре FSFormatMaximumSize значение 133169152 на 8796093022208:

Модуль msdos.fs, содержимое файла Info.plist (часть 2)

То же самое проделываем и для для FAT16, изменив в параметре FSFormatMaximumSize значение 2147483648 на 8796093022208:

Модуль msdos.fs, содержимое файла Info.plist (часть 3)Сохраняем изменения в файле Info.plist подтвердив свои действия паролем администратора. Что мы только что сделали? – Параметр FSFormatMaximumSize задаёт в байтах максимальный размер накопителя или раздела, который можно отформатировать в конкретной файловой системе. Если вы читали предыдущую заметку о файловых системах FAT, то вам станет ясно, почему для форматирования накопителя недоступны файловые системы FAT12 и FAT16. Изменив значение параметра FSFormatMaximumSize мы принудительно увеличили допустимый объём накопителя или раздела до 8 ТБ. Конечно, это не правильно, так как ФС FAT12 и FAT16 не умеют оперировать такими объёмами. Но что делать, когда нужно 🙂 ? Теперь дело осталось за малым: загружаем вот этот образ диска, двойным кликом по нему монтируем и перетягиваем три имеющиеся бандла в папку Filesystems:

Набор бандлов для поддержки файловых систем FAT12, FAT16 и FAT32 Дисковой утилитой Mac OS XПодтверждаем действия паролем админа. Бандлы fat12.fsfat16.fs и fat32.fs – это “фейковые” файловые системы. Я повырезал оттуда всё лишнее, а вместо исполнительного файла msdos.util и папки Resources поместил символичные ссылки на оригиналы.  Ну вот, в принципе, и всё! Запускаем Дисковую утилиту, подключаем флешку, выбираем её из списка слева, клацаем на Раздел диска или Стереть и нажимаем на список доступных файловых систем:

Набор бандлов для поддержки файловых систем FAT12, FAT16 и FAT32 Дисковой утилитой Mac OS X

Та-да-ммм! Можно создавать и форматировать накопители и разделы в любой файловой системе FAT. Тестируйте!

Share this article
0
Share
Prev Post

Обновление Skype до версии 6.

Next Post

Обзор игры World Of Blocks для iOS.

Comments 5
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Read next