BACKUP(8)

НАЗВАНИЕ
backup - сохранение файловой системы, восстановление данных

ОПИСАНИЕ
Здесь излагаются самые общие соображения относительно сохранения и восстановления данных. Имеется в виду сохранение файловой системы или тома на другом носителе и восстановление данных, ранее сохраненных на другом носителе. Предполагается, что сохраняемая информация находится на диске.

Сохранение
Содержимое диска может быть сохранено в виде:

  1. Физической копии. Весь том или логический диск переписывается программой dd(1) как бесструктурное устройство.
  2. Логической копии. Файловая система или ее части переписываются программой cpio(1).
Для сохранения могут использоваться следующие носители:
  1. С емный диск: дорого и быстро.
  2. Другой нес емный диск: еще дороже.
  3. Магнитная лента: идеальный носитель.
  4. Дискеты: дешево, медленно, чревато ошибками; только для бедных людей.

Сколько лент (дисков, дискет) необходимо иметь и на какую ленту выполнять очередное копирование?

Если у Вас много кассет с лентой, можно рекомендовать порядок копирования, совпадающий с порядком перекладывания дисков Ханойской башни: 1, 2, 1, 3, 1, 2, 1, 4, ..., то есть использовать ленту 1 для каждой второй копии, ленту 2 - для каждой четвертой, ленту 3 - для каждой восьмой и т.д. Если у Вас всего две кассеты, целесообразно пользоваться утилитой copall(1M), контролирующей их чередование. В любом случае логическая копия предпочтительнее физической.

Для сохранения используются следующие утилиты:

dd
Физическое копирование.
cpio
Логическое сохранение/восстановление файлов; часто используется совместно с командой find(1).
vsplit
Расщепление/слияние на несколько (с нескольких) томов.
saveto
Shell-процедура, предоставляющая удобный интерфейс с вышеперечисленными утилитами.
copall
Еще одна shell-процедура для логического копирования, контролирует номер используемой ленты.

Рекомендуется иметь на дискете минимальный вариант системы на случай серьезного повреждения диска, когда с него невозможно загрузиться. Для получения минимального варианта используйте утилиту mkmini(1M).

Восстановление
Как восстановить диск после серьезного повреждения?

Сначала нужно загрузить систему с какого-либо другого носителя, например с дискеты.

Затем с помощью отладчика файловых систем fsdb(1M) попытайтесь установить масштабы повреждения и, если это возможно, вручную ликвидируйте самые тяжелые из них. После этого попробуйте привести файловую систему в корректное состояние утилитой fsck(1M), даже ценой потери некоторой части информации, которую придется восстановить с логической копии утилитой restall(1M).

Если повреждения не поддаются ликвидации, диск придется отформатировать. Затем, если имеется физическая копия, информация восстанавливается утилитой dd(1). Если же имеется только логическая копия, на отформатированном диске нужно создать минимальный вариант системы, загрузиться с диска и восстановить информацию с логической копии командами вида


     cd /; dd if=/dev/mt bs=256k | cpio -idmvu

Проверьте, созданы ли каталоги /mnt, /tmp, /lost+found, в каком состоянии файлы /etc/checklist, /etc/fstab и, конечно, файл /unix.

Сохранение/восстановление с помощью ленты и диска в памяти
Более сложной является ситуация, когда нет возможности загрузить систему ни с диска, ни с дискеты. В этом случае нужно воспользоваться комбинацией лента/диск в памяти. В вариант системы, загружаемый с ленты, должен входить драйвер диска в памяти /usr/src/uts/io/rd.c; должно быть доступно не менее 2 Мб памяти.

Подготовьте ленту, с которой можно загрузить систему. Сделать это достаточно один раз, готовясь к полному краху. Лента готовится следующим образом:

Конфигурируется UNIX-ядро с такими характеристиками:

  1. Корневой каталог и каналы на диске в памяти.
  2. Устройство для подкачки отсутствует.
  3. Значения параметров, влияющих на расход памяти (например, размер буферов) минимальны.
  4. В ядро входит драйвер диска в памяти; под диск зарезервирован 1 Мб памяти. Адрес диска в памяти должен быть согласован с адресом, используемым программой начальной загрузки.
  5. Память, отведенная для диска, исключается из таблицы распределения памяти, доступной ядру.

Создайте минимальный вариант системы [см. mkmini(1M)] размером порядка 900 Кб на свободном логическом диске и скопируйте в корневой каталог полученной файловой системы сконфигурированное ядро. Выполните физическое копирование диска на ленту.

Затем ведите нормальную жизнь, регулярно копируйте диск и ждите полного краха.

Когда (не дай бог!) крах наступил, восстанавливайтесь так:

Загрузите систему с заготовленной ленты. Программа начальной загрузки прочтет ленту на диск в памяти, а с точки зрения ядра диск в памяти ничем не отличается от других дисков. Более того, загруженному ядру другие диски не нужны. Дальнейшая процедура восстановления не отличается от описанной выше. Например, можно отформатировать поврежденный основной диск и использовать копию.

СМ. ТАКЖЕ
copall(1M), mkmini(1M), restall(1M), saveto(1M), vsplit(1M).
cpio(1), dd(1) в Справочнике пользователя.