4

Предыстория:

Я использую Mac (10.6.4), и по сей день, когда я загружаю торрент с помощью Vuze, независимо от конфигурации, которую я пробую, Vuze выделяет пространство для всего файла до того, как он начинает загружать указанный файл. Долгое время быстрый Google заставил меня поверить, что это ошибка Vuze, но по прошествии нескольких лет, и ничего не изменилось, более подробный поиск говорит мне, что это потому, что HFS+ не поддерживает разреженные файлы.

Вопрос:

Вики разреженных файлов говорят, что HFS+ от Apple не поддерживает разреженные файлы, а Time Machine и FileVault от Apple используют "разреженные образы" и "разреженные комплекты".

Я понимаю, что такое разреженный пакет (изображение разбивается на 8-миллиметровые фрагменты), но кроме этого, есть ли разница между этими "разреженными изображениями" и обычными разреженными файлами? Как HFS+ может не поддерживать разреженные файлы и при этом поддерживать разреженные образы и разреженные пакеты?

3 ответа3

5

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

Когда вы используете образ диска, сопоставление становится немного более сложным: у вас есть байты в файле, сопоставляемые (внутренней файловой системой) с байтами на (виртуальном) диске. Затем они отображаются (установщиком образа) в байты образа диска (файла), которые затем (внешней файловой системой) отображаются в байты на реальном диске. Средство монтирования изображений обрабатывает разреженные отображения (и AIUI только между / за файлами, а не внутри них), но это не означает, что другие слои (файловые системы) могут. Что касается внешней файловой системы, файл изображения представляет собой (не разреженную) последовательность байтов.

Кстати, программа монтирования изображений также может добавлять другие функции, с которыми не справляется одна файловая система. Например, образы дисков Mac практически всегда поддерживают сжатие, но встроенная поддержка сжатия не была добавлена в HFS+ до OS X v10.6.

1

Объяснение Гордона Дэвиссона было поучительным: именно так я использую разреженные изображения в качестве каталога для загрузки торрентов.

Прежде всего создайте изображение (я установил его на 50 ГБ, но подойдет любой размер)

hdiutil create -size 50g -type SPARSEBUNDLE -nospotlight -volname "Torrents repository" -fs "Case-sensitive Journaled HFS+" Torrents.sparsebundle

Затем дважды щелкните изображение Torrents.sparsebundle, только что созданное для его монтирования.

Настройте ваш любимый торрент-клиент, чтобы использовать том, смонтированный под названием "Torrents репозиторий", в качестве временного репозитория, я предлагаю настроить его так, чтобы завершенные файлы были удалены из образа (например, в папку "Загрузки").

Это работает очень хорошо, особенно когда вы выбираете только несколько файлов в большом торренте.

Я также добавил скрипт запуска в свою систему:

hdiutil compact Torrents.sparsebundle 
hdiutil attach Torrents.sparsebundle

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

-1

APFS, которая является новой FS по умолчанию, теперь поддерживает разреженные файлы.

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