Резервное копирование FreeBSD при помощи pax

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
Agafonov
Сообщения: 4
Зарегистрирован: 15 июн 2011, 08:57

Резервное копирование FreeBSD при помощи pax

Сообщение Agafonov »

Внесу ясность - я не одобряю данный способ и статья существует только в виде "ещё один способ бекапа". RomA

Всех приветствую!
Сегодня мы рассмотрим один из способов создать резервную копию нашего чудного сервера FreeBSD. Нашим помощником будет замечательная утилита под названием pax, которая к слову говоря входит в стандартный набор FreeBSD. Я рассмотрю способ создания копии системы на отдельный винчестер. Это будет интересно как для запуска системы на отдельном компьютере для "опытов", так и для создания "бэкапов".
Итак, приступим.
Первое, что нам понадобится - это винчестер, на который мы будем создавать резервную копию.
Итак, "внедряем" его в наш любимый сервер любым удобным нам способом и смотрим, под каким именем он у нас прижился:
У меня это вышло так:
До:

Код: Выделить всё

/dev/>ls | grep ad
ad4
ad4s1
ad4s1a
ad4s1b
ad4s1d
ad4s1e
ad4s1f
ad4s1g
ad6
ad6s1
ad6s1a
ad6s1b
ad6s1d
ad6s1e
ad6s1f
ad6s1g
После:

Код: Выделить всё

/dev/>ls | grep ad
ad4
ad4s1
ad4s1a
ad4s1b
ad4s1d
ad4s1e
ad4s1f
ad4s1g
ad5
ad5s1
ad5s1a
ad5s1b
ad5s1d
ad5s1e
ad5s1f
ad5s1g
ad6
ad6s1
ad6s1a
ad6s1b
ad6s1d
ad6s1e
ad6s1f
ad6s1g
Видим, что наш новый винчестер прижился в системе под "ad5"
Теперь нам надо создать слайсы (разделы) на нашем свежеинсталлированном винчестере. И примонтировать их.
Создаем точки монтирования.

Код: Выделить всё

mkdir /mnt/root
mkdir /mnt /home
mkdir /mnt/usr
mkdir /mnt/var
mkdir /mnt/temp
temp разумеется монтировать вовсе не обязательно, копировать его нет нужды, это я на всякий уж...
Теперь должен сделать несколько отступлений.
1. Важно. Имена разделов должны совпадать с теми, которые есть в системе. Смотрим, что у нас есть:

Код: Выделить всё

/dev/>df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ar0s1a    496M    364M     92M    80%    /
devfs          1.0K    1.0K      0B   100%    /dev
/dev/ar0s1g    354G    181G    145G    56%    /home
/dev/ar0s1e    2.8G    1.8M    2.6G     0%    /tmp
/dev/ar0s1f     76G     10G     59G    15%    /usr
/dev/ar0s1d     14G    2.3G     11G    18%    /var
devfs          1.0K    1.0K      0B   100%    /var/named/dev
Т.е.:
"корень" у нас оканчивается на "s1a"
"/usr" на "s1f"
и т.д...
Наша задача - создать слайсы на новом винчестере с теми-же именами. И примонтировать их в созданные нами ранее каталоги. То есть должно быть в моём случае:
ad5s1a - "/mnt/root"
ad5s1d - "/mnt/var"
ad5s1e - "/mnt/tmp"
ad5s1f - "/mnt/usr"
ad5s1g - "/mnt/home"
Я разбивал новый винчестер при помощи sysinstall. Тут есть одна хитрость. Sysinstall не захочет назначать разделу имя "s1a", если мы в качестве точки монтирования укажем что-то отличное от "/". Поэтому при создании раздела мы ему говорим что это "/", а после нажав кнопочку "m" говорим что точка монтирования "/mnt/root". Аналогично поступаем со следующими разделами и выходим, применив изменения.
Немного поборовшись с sysinstall добиваемся всё-же чтобы он создал нам разделы так, как мы хотим... На этом самое муторное закончено.
2. Теперь о приятном. Мы можем разбить винчестер так, как нам будет удобно. Например в моём случае "корень" маловат - всего 496 Мб. Можем сделать его побольше... Разделы можно создать произвольно, как нам удобно. Больше-меньше. Главное чтобы там хватило места при переносе туда нашей системы.
Ну в общем всё... дальше вводим команду

Код: Выделить всё

cd / && pax -p eme -X -rw . /mnt/root
Через некоторое время корневой раздел скопирован. По аналогии копируем остальные разделы. Например:

Код: Выделить всё

cd /var && pax -p eme -X -rw . /mnt/var
и т.д...
Всё, копия системы готова!
P.S. Если будем запускать систему с этого винчестера на другом компьютере - не забываем поправить fstab
P.P.S. Статью писал по памяти. Но всё работало, проверено. Если есть вопросы - пишите.
Ответить