Открыть список
Как стать автором
Обновить

Time Machine: ограничение размера файла бэкапов

Разработка под MacOS
Промучившись много часов в поисках решения, решил поделиться найденным способом с читателями Хабра.


Все резервные копии Time Machine хранит в «растущем образ-пакете диска», физический размер которого в месте размещения занимает ровно столько места, сколько занимают данные, находящиеся в нем. Такой подход избавляет нас от необходимости разбивать хранилище на разделы — по одному для разных целей — все образ-пакеты хранятся на одной физической партиции, потребляя мегабайты и гигабайты только по необходимости. Удобно когда не знаешь заранее какой размер выделить для той или иной задачи.

Полезной возможностью «растущего образ-пакета диска» является задание ограничения на максимальный его размер. При первом запуске Time Machine создает образ-пакет с ограничением, равным всей емкости раздела, на котором он будет располагаться. А при исчерпании свободного места просто начинают удаляться старые резервные копии. До версии Mac OS X 10.6.3 существовал способ изменить это ограничение при помощи утилиты hdiutil. Например следующая строка устанавливает ограничение на максимальный размер образ-пакета, равный 500 Гб:

hdiutil resize -size 500G -shrinkonly /Volumes/Data/macbook.sparsebundle

Однако с обновлением 10.6.3 Time Machine каждый раз при запуске стала автоматически изменять параметры образ-пакета, восстанавливая размер ограничения в значение по-умолчанию (то есть в максимум) в случае если оно было изменено либо изменилась емкость носителя.

Официального решения проблемы от Apple до сих пор нет. Выходом же является очередной трюк — заблокировать изменение параметров образ-пакета после установки необходимого ограничения размера для него.

Стоит отметить, что параметры образа хранятся в самом образе в файлах Info.plist и Info.bckup. И для того, чтобы заблокировать изменения параметров, необходимо заблокировать изменение этих файлов. Сразу скажу, что простой запрет записи при помощи chmod не работает. Зато работает другой способ (10.8.2) — блокировка файлов с использованием утилиты SetFile:

SetFile -a L /Volumes/Data/macbook.sparsebundle/Info.*

После выполнения этой команды Time Machine больше не сможет менять параметры образа:


SetFile не входит в стандартный набор утилит Mac OS X и ставится путем установки приложения Xcode и дополнительного компонента «Command Line Tools»:

Чтобы вновь иметь возможность изменять параметры образа, необходимо снять блокировку (используем те же аргументы с той лишь разницей, что вместо заглавной буквы «L» ставим ее прописную версию — «l»):

SetFile -a l /Volumes/Data/macbook.sparsebundle/Info.*

PS: Способ был был найден во время изучения этого обсуждения.
Теги:time machinetime capsulemac os xbackupapple
Хабы: Разработка под MacOS
Всего голосов 20: ↑19 и ↓1 +18
Просмотры21.7K

Похожие публикации

Думающий дизайнер на part-time в Monite
от 200 €MoniteМожно удаленно
Ruby on Rails Developer - Remote, Full Time
от 4 000 до 5 500 $BICA ServicesМожно удаленно
Fullstack Java / Angular Developer/Full-time/remote
от 120 000 до 250 000 ₽Bergmann InfotechМожно удаленно
Ведущий разработчик C++/Qt под Android
от 180 000 ₽2GISМожно удаленно
Android
от 100 000 до 160 000 ₽Sky Web ProМожно удаленно

Лучшие публикации за сутки