Резервное копирование выполняется при помощи команды "gpart backup", которая в специальном текстовом формате выводит информацию о таблице разделов. Эту информацию можно перенаправить в файл, либо отдать на вход команде "gpart restore". Небольшой пример:
# gpart backup ada0 MBR 4 1 freebsd 63 20964762 [active] 2 ntfs 20964825 40965750 3 freebsd 61930575 18362295 # gpart backup ada1 GPT 128 1 freebsd-boot 34 512 boot 2 freebsd-swap 546 8388608 swap 3 freebsd-zfs 8389154 311783869 zfsКак можно догадаться, первоя строка в выводе - это опции команды "gpart create", следующие - для "gpart add". У команды restore есть несколько ключей:
gpart restore [-lF] [-f flags] provider [...]Ключ "-l" указывает gpart восстанавливать символические метки разделов, которые по-умолчанию не восстанавливаются. С ключем "-F" gpart перед восстановлением уничтожит таблицу разделов на носителе, куда будет восстанвливаться резервная копия. Иначе, если там будет обнаружена какая-либо таблица разделов, он просто завершится с ошибкой. Ну и ключ -f выполняет те же функции, что и у дргих подкоманд - откладывает запись всех изменений на носитель до вызова команды commit. Т.е. если вы не уверены в своих действиях - этот ключ ваш лучший товарищ.
Теперь немного примеров по использованию. Типичные действия для резервного копирования:
# gpart backup ada0 > ada0.backup # cat ada0.backup MBR 4 1 freebsd 63 20964762 [active] 2 ntfs 20964825 40965750 3 freebsd 61930575 18362295Теперь этот ada0.backup на ответственное хранение в сейф. И вдруг, после
Бежите к сейфу, загружаетесь с livefs и восстанавливаете таблицу разделов:
# gpart restore ada0 < /mnt/ada0.backupТеперь более реальный пример. Вы захотели к уже установленной системе подключить ещё один диск и сделать зеракало на ZFS:
# gpart backup ada0 | gpart restore ada1
Нет, вы параноик и вы подключили 2 жестких диска и хотите сделать тройное зеркало, не проблема:
# gpart backup ada0 | gpart restore ada1 ada2Теперь пример для неопытных пользователей:
# gpart backup ada0 | gpart restore -F -f x ada1 # gpart showО, боже! Не тот диск, вы уничтожили диск с фотографиями вашей жены! =) Спокойно, -f вас спас:
# gpart undo ada1
Вот так вот, немного шутя можно работать с gpart. А ещё у меня новость, мои менторы освободили меня от "надзора" :) Теперь я стал самостоятельным коммитером.
PS. Ещё раз хочу заметить, что gpart backup/restore выполняют копирование и восстановление ТОЛЬКО таблицы разделов. Данные, находящиеся на этих разделах, бэкапить и восстанавливать нужно отдельно. В том числе, и содержимое в разделы freebsd-boot нужно записывать повторно.
Добрый день! Вопрос такой:
ОтветитьУдалить# gpart backup ada0 | gpart restore ada1
работает без проблем, но не бэкапятся и не восстанавливаются метки разделов, т.е. после restore, приходится делать #> gpart delete -i ..., о потом создать заново #> gpart add ... .
Или я не прав?
у команды gpart restore есть ключик -l для восстановления меток. Просто восстанавливать метки бывает не всегда нужно, т.к. одинаковые метки на разных носителях конфликтуют.
ОтветитьУдалитьЕсть ещё один подводный камень - у GPT есть ещё уникальные идентификаторы gptid, они не бэкапятся и не восстанавливаются.
Да, и к тому же, для того чтобы установить метку, не нужно удалять и пересоздавать раздел, есть команда gpart modify
ОтветитьУдалитьСпасибо, то что надо, во всяком случае в моем варианте, для восстановления дисков в райд,е. А, gptid, я так понимаю, если не обращатся по ним, так они не очень и нужны?
ОтветитьУдалитьgpart modify - пробовал, но не добавляет в устройства, т.е. говорит что все ок, но в /dev/gpt/[label] не создается, только через пересоздание раздела.
ОтветитьУдалитьgptid генерируются уникальными, в этом их плюс и минус одновременно. Их можно использовать, когда есть необходимость использовать конкретную партицию на конкретном диске, не заботясь об изменении нумерации дисков, например.
ОтветитьУдалитьПроблема с непоявлением файла устройства в /dev/gpt/ известна. Вы можете заставить glabel проверить провайдер на наличие метки таким образом:
# true > /dev/ada1p2
Но если метка с таким именем уже существует, то вторая такая же, естественно, не появится.