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

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


    Все резервные копии 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: Способ был был найден во время изучения этого обсуждения.

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 22

      0
      оказывается можно бекапить в файл
        +1
        Но зачем… подключил себе линксовый сервер в качестве таргета для бекапа тайммашины (ext4/LVM) и проблем не знаю.
          +1
          научите как правильно? Сколько не пытался — бэкапить бэкапит, а вот восстановление вываливается в ошибку.
            0
              0
              Спасибо за ссылку, обязательно попробую, однако, если мне склероз не изменяет, я по этому же принципу делал.
                0
                Только что ради теста восстановил файл из бэкапа. Без проблем.
                  0
                  файл из бекапа не проблема. вы всю систему попробуйте восстановить из рекавери…
                    0
                    Хммм. На досуге попробую…
            0
            Напишите, пожалуйста, статью как всё правильно сделать?
            У самого тоже не очень получилось :(
        0
        Полезная статья, спасибо.

        Было бы еще интересно получить информации о том как настроить, чтоб не бекапил в определенный промежуток времени и только по определенным дням.
        И чтоб можно было видеть в реалтайме, что бекапится (без утилит которые долго думают), хм пока писал навеяло на одну мысль, попробую написать на эту тему прожку.
      • UFO just landed and posted this here
        0
        Спасибо огромное! Долго бился, а ларчик то не так уж и сложно открывался…
          0
          Способ работает только Time Capsule? Я так и не смог найти файл .sparsebundle на своем обычном внешнем жестком диске, куда бэкапится Time Machine
            0
            Отвечаю себе: да. В моем случае, нужно просто создавать отдельный раздел для бэкапов с необходимым размером.
            0
            А так нельзя?

            defaults write /Library/Preferences/com.apple.TimeMachine MaxSize -integer 5242880
            
              0
              Насколько я понял из чтения зарубежных форумов этот способ работал в Mac OS X когда-то (до определенной версии). Сейчас увы нет.
              0
              Получил такое сообщение, что делать дальше?
              hdiutil: resize: only a single file can be specified

              Пробую использовать текущий бандл, установив размер больше чем он весит.
                0
                Остановился на решении с блокировкой изменения размера банда. Это работает. А вот изменить размер не вышло, да и не может быть размер меньше чем требуемый для 1 полного бэкапа, именно поэтому используется динамический том (.sparsebandle). Удивительно, что дисковая утилита не предоставляет возможности изменить размер имеющегося бандла созданного машиной (и не только), чтобы в последствии заблокировать его. И прискорбно, что машина времени не принимает созданный самостоятельно в дисковой утилите .sparsebandle, не смотря на наличие в нём файлов инициализации самой временной машины info.*

                Only users with full accounts can post comments. Log in, please.