cave_canem_lj (cave_canem0) wrote in ru_mac,
cave_canem_lj
cave_canem0
ru_mac

Categories:

К вопросу об изменении размера раздела, отведённого под резервные копий Time Machine

Здравствуте!
Так как часто возникает вопрос как ограничить размер резервных копий Time Machine, то этому и посвящен настоящий пост.
Итак:
Все резервные копии Time Machine хранит в «растущем образ-пакете диска (sparsebundle)», физический размер которого в месте размещения занимает ровно столько места, сколько занимают данные, находящиеся в нем (https://ru.wikipedia.org/wiki/Разрежённый_файл), при этом Time Machine создаёт резервные копии, захватывая всё доступное пространство диска (это можно посмотреть например в дисковой утилите, выбрав ваш смонтированный *.sparsebundle и нажав кнопку "Инфо").
Даже если изменить размер *.sparsebudle, то при следующем создании резервой копии Time Machine (начиная с версии 10.6.3) снова изменит размер до максимально возможного.

Но всё же есть способы ограничить "аппетит" Time Machine.


Первый, в частности, описан здесь, но он требует установки Xcode, и в принципе, вмешивается в жизнь Time Machine.

Второй заключается в том, что ограничивается размер не *.sparsebundle, а раздела (partition) с резервными копиями на нём.

Для этого я написал нижеприведённый однострочный скрипт (копируете и вставляете в Терминал.app):

time { clear; declare -i s; read -p "Название точки монтирования вашего диска? " dn; read -p "Желаемый размер раздела в GB? = " s; ((sb=10**9*s/512)); cn=`scutil --get ComputerName`; echo -e "\nЖдите..."; hdiutil resize -size ${sb}b -partitiononly "/Volumes/${dn}/${cn}.sparsebundle" && echo -e "\n\n\t\t\e[01;38;05;40;48;05;20mРаздел теперь имеет размер ${s}GB\e[0m" || echo -e "\n\n\t\t\e[01;38;05;160;48;05;20mУвы, размер раздела не изменён\e[0m"; }

Примечания:
1. Скрипт работает только если ваш раздел (называющийся например "Резервные копии Time Machine") извлечен.
2. Скрипт не может увеличить размер раздела, отведённого под резервные копии. Для увеличения размера раздела используйте
diskutil resizeVolume
С помощью этой команды можно делать всё то же самое, но она работает существенно дольше
3. Естественно, скрипт не может уменьшить размер раздела до размера, меньшего чем размер, физически занимаемый разделом на настоящий момент на диске.
4. С локально подключенными дисками скрипт не проверял по причине отсутствия оных.

Задавайте вопросы и пишите свои замечания (замечания особо приветствуются)!

UPD1:
Средствами  "/Applications/Utilities/Disk Utility.app" (GUI) изменить размер раздела с резервными копиями можно лишь в очень ограниченных пределах.
UPD2:
Так как задаются вопросы "А почему бы не создать отдельный раздел для резервных копий Time Machine на диске желаемого размера?" — на NAS (к коим, например, относится и Time Capsule) это далеко не всегда возможно.
UPD3:
С Catalina (macOS 10.15 Vista) скриптик СХОДУ работать не будет, т.к.:
1. zsh, а не bash
2. backupbundle, а не sparsebundle
Могу переделать, ну нужен доброволец для отладки (себе 10.15 ставить НЕ БУДУ).
Tags: *nix, time machine
Subscribe
  • Post a new comment

    Error

    Comments allowed for members only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 8 comments