Back to Our Home

Документация

Введение:

Zsplit and Unzsplit – являются Linux -утилитами командной строки, которые действуют подобно таким популярным программным продуктам, как Symantec Norton Ghost ™ или Acronis True Image ™ и позволяют создавать точный образ диска для полного резервного копирования системы и клонирования дисков, обеспечивая всестороннюю защиту данных. Однако, в отличие от других подобных программных решений, zsplit и unzsplit можно бесплатно загрузить и распространять! Пожалуйста, примите во внимание, что обе программы zsplit и unzsplit защищены GNU GPL 2.

В Zsplit и Unzsplit используется zlib библиотека для выполнения в оперативной памяти функций сжатия и распаковки, включая проверку целостности несжатых данных. Эта библиотека написана Jean - loup Gailly (сжатие) и Mark Adler (распаковка). Автор признателен им за предоставление возможности использовать эту библиотеку на условиях, оговоренных в zlib license.

Краткий обзор:

Для подробностей использования различных опций, пожалуйста, смотрите документацию справки для zsplit и unzsplit . Мы хотели бы обсудить здесь несколько возможных общих подходов в использовании этих инструментальных средств для различных ситуаций резервного копирования/восстановления.

Действия на локальном компьютере :

Ситуация 1:На нашем компьютере мы имеем загрузочный диск hda с операционной системой Linux и утилитой zsplit . На нашем компьютере также подключено дисковое устройство hdb с какой-либо иной операционной системой, например, Windows XP . Вместимость устройства hda подобрана так, чтобы на оставшееся свободным пространство смогло бы вместить размер устройства hdb . Нам нужно создать резервную копию образа всего устройства hdb , чтобы далее мы могли перенести созданный образ на один и более DVD дисков для хранения.

Допустим, мы загружаем Linux c hda , выбираем каталог, где образ должен будет располагаться, и в этом каталоге, вводим в командной строке следующую команду:

zsplit -s 4.5G -N WinXP_backup -d /dev/hdb

Это всё , образ устройства hdb будет сжат , используя степень сжатия , установленную по умолчанию , разбит на части размером 4,5 Gibibyte ( Гигабайт бинарный ) и сохранён в текущем каталоге (files: WinXP_backup_0.spl.zp, WinXP_backup_1.spl.zp, WinXP_backup_2.spl.zp ...). Каждый из этих файлов в точности соответствует по величине одному DVD -диску и может быть записан на него для хранения. Опция '- d ' делает возможным создание файла debug.log в текущем каталоге. В этом файле находится вся информация о времени создания и размерах созданных файлов образов. Если вы хотите сохранить файлы образа в каком-либо другом каталоге на устройстве hdа, введите следующую команду:

zsplit -s 4.5G -N WinXP_backup -o /some/other/dir -d /dev/hdb

Обратите внимание: в некоторых случаях, например, если у вас сильно фрагментированная файловая система NTFS или имеются сбойные секторы на жестком диске, может случиться, что zsplit прервётся с ошибкой ввода/вывода. Чтобы избежать подобной ошибки можно использовать опцию - r , -- noerror. Эта опция переключает zsplit в особый режим чтения, так, чтобы все неповреждённые сектора читались безопасно, а сбойные секторы будут исключены. Конечно, есть определённая вероятность, что в этом случае файл резервного образа утратит свою последовательность. Поэтому, после операции восстановления следует проверить восстановленный диск с помощью программ: "scandisk" (FAT16-FAT32) "chkdsk" (NTFS) "fsck.xxx" (ext,swap,reiserfs).

Пример приведённой выше команды, с добавочной опцией --noerror:

zsplit -s 4.5G -N WinXP_backup -o /some/other/dir -d -r /dev/hdb

Для восстановления всего дискового устройства hdb у Вас должен быть установлен unzsplit , затем Вы переносите все разделённые части файла образа с DVD диска в некоторый каталог на hda (Вы должны учесть, что все файлы необходимые для восстановления образа должны находится в выбранном каталоге). Если Вы имеете все необходимые части для восстановления, зайдите в этот каталог и введите в командной строке:

unzsplit -D /dev/hdb -d WinXP_backup

Unzsplit считает список файлов в текущем каталоге с общей частью в имени WinXP_backup, такие как WinXP_backup_0.spl.zp,WinXP_backup_1.spl.zp, WinXP_backup_2.spl.zp ..., установит правильный порядок чтения, распакует, а затем склеит их в один образ. В итоге образ будет восстановлен на устройство /dev/hdb. Вся информация об операции восстановления будет записана в файл debug.log в текущем каталоге.

Ситуация 2 :Мы собираемся резервировать целое загрузочное системное устройство (hda) на нашем компьютере. Заметьте, что совершенно не имеет значения, какая именно операционная система установлена на этом устройстве (win95, win98, winNT or Linux). Всё, что нам необходимо в этой ситуации: устройство хранения информации соответствующей вместительности ( hdb ), DeviceImage-LiveCD и, конечно, утилита zsplit. Обратите внимание, Вы можете также пользоваться и другими дистрибуциями, как KNOPPIX-LiveCD, но обычно zsplit and unzsplit пока что не находятся в этой и других дистрибуциях. Поэтому, после старта с Knoppix CD, Вам необходимо загрузить их в среду Knoppix (это можно осуществить с помощью дискеты, ftp или smbmount).

Чтобы создать резервную копию системного устройства (hda), загружаем компьютер с загрузочного DeviceImage-LiveCD, разбиваете hdb на логические диски (т.е. создаёте партитуру устройства, если необходимо, например ext2 на hdb1), собираете эту партитуру в некотором каталоге в среде LiveCD (mount -t [fstype] /dev/hdb1 /some/new/dir), зайти во вновь созданный каталог (cd /some/new/dir) и использовать zsplit для создания резервной копии образа устройства.

Резервирование в форме разделённых файлов образа:

zsplit -N WinXP_backup -d /dev/hda

создаёт образ устройства hda, сжатый и разбитый на части, размером 700 Mebibyte (Бинарный мегабайт). Полное описание см. выше.

Резервирование в форме одного большого файла образа:

zsplit - N WinXP_ backup - d /dev/hda

создаёт образ устройства hda, как один сжатый файл образа.

Для восстановления системного устройства hda, нам необходимо второе устройство (например, hdb), со сжатым файлом/файлами образа, загрузочный DeviceImage-LiveCD и утилита unzsplit. Вся процедура выглядит следующим образом:

Загружаем компьютер с загрузочного DeviceImage-LiveCD и создаём партитуру на устройстве hdb , которое содержит сжатый файл/файлы образа, заходим во вновь созданный каталог и вводим в командной строке:

unzsplit -D /dev/hda -d WinXP_backup

Unzsplit считывает список файлов в текущем каталоге с общей частью имени WinXP_backup, такими как: WinXP_backup_0.spl.zp, WinXP_backup_1.spl.zp, WinXP_backup_2.spl.zp ..., распаковывает их и склеивает в один образ, а затем восстанавливает этот образ на устройство /dev/hda. Отладочная информация записывается в файл debug.log текущего каталога.

Действия через сеть:

Используя опции программы netcat обратите внимание, что опции примененные в этих примерах базируются на информации взятой из оригинальной версии написанной *Hobbit* <hobbit@avian.org>. Любые отклонения от этой версии предполагают частичное изменение значения и использования этих опций.

Пример: netcat для "Fedora Core" переписан полностью для OpenBSD с изменением использования опций -l и -p.

Ситуация 1:Предположим, Вы хотите создать резервную копию образа загрузочного системного устройства и Ваша система не имеет иного устройства, которое может быть использовано как хранилище резервной копии, но имеется второй компьютер и сетевое соединение между обоими компьютерами. Zsplit с помощью netcat и dd создаст резервную копию образа из одного места и поместит его в другое, через сеть. Следующий сценарий может быть легко реализован:

Резервную копию образа следует создавать с системного устройства компьютера А через сеть на некоторое устройство на компьютере В. Загружаем машину А с DeviceImage-LiveCD. Предполагается, что Linux-Box установлен на машине В, в противном случае машину В также следует загрузить с загрузочного DeviceImage-LiveCD. После запуска обоих компьютеров, вам могут понадобиться их IP-адреса. Используйте команду ifconfig –a для проверки IP-адреса. Предполагая, что Linux - Box А работает с IP 192.168.0.1; а Linux - Box В с IP 192.168.0.2 выполняем следующее:

Шаг 1: на машине B вводим команду:

nc -l -p 9000 | zsplit -s 4.5G -N Linx_bkp -d -

это переключает netcat в режим приёма. Netcat будет принимать на порту 9000 и, если данные поступят через этот порт, они будут направлены, как входные данные для zsplit . Zsplit ,в свою очередь, сделает то, что ему положено т.е. сожмет поступившие через stdin данные, используя заданную по умолчанию степень сжатия, разделит сжатые данные на части размером 4,5 Gibibyte (Гигабайт бинарный) и сохранит в текущем каталоге (files: Linx _ bkp _0.spl.zp, Linx _ bkp_1.spl.zp, Linx _ bkp_2.spl.zp ...). В текущем каталоге будет также сформирован файл debug.log со всей отладочной информацией.

Шаг 2: на машине A вводим следующую команду:

dd if =/dev/ hda bs=1024 | nc 192.168.0.2 9000

Это инициализирует поток данных по сети на порт 9000 машины с IP 192.168.0.2 . В зависимости от скорости передачи данных по сети и размера жёсткого диска машины А, процесс передачи всего образа данных на машину В, должен занять некоторое время. Как результат этой операции, Вы получите сжатый и разделённый на части образ устройства hdа (компьютера А), на машине В. Преимущество этого метода: в конце операции Вы получаете сжатый и разделённый на части образ резервируемого устройства. К недостаткам можно отнести то, что скорость передачи данных по сети довольно низка, потому как в этом случае мы передаём некомпримированные данные.

Если Вы предпочитаете, максимально возможную скорость передачи, процедура установки несколько меняется:

Заметьте, что разница между этими двумя процедурами установки состоит только в месте запуска программ zsplit и dd.

 

 

Шаг 1: на машине B вводим команду:

nc -l -p 9000 | dd of=Linx_ bkp _0.spl.zp bs=1024

Netcat принимает на порту 9000 и направляет все поступающие данные на dd, который в свою очередь сохраняет данные в одном файле образа Linx _ bkp _0.spl.zp . Заметьте, соглашение о наименованиях остаётся неизменным, даже для одиночного файла. В случае если мы захотим восстановить этот файл, для работы unzsplit важно чтобы в его имени присутствовало "_0. spl.zp", см. документацию для unzsplit.

Шаг 2: на машине A введите следующую команду:

zsplit -c -d /dev/hda | nc 192.168.0.2 9000

zsplit будет считывать данные с /dev/hda , сжимать данные в памяти, используя степень сжатия по умолчанию и передавать на netcat , которая осуществляет передачу на приёмную netcat машины В.

Преимущество этого метода в самой высокой скорости передачи данных по сети. К недостаткам можно отнести то, что на выходе мы получаем только один большой файл образа.

Мы можем также, восстановить через сеть системное устройство hda, на машине А. Предположим, что после процедуры резервного копирования мы имеем на машине В разделённый на части образ устройства hda, машины А.

Чтобы запустить процедуру восстановления делаем следующее: загружаем машину А с загрузочного DeviceImage-LiveCD. Если на машине В не установлена операционная система Linux, загружаем её тоже с DeviceImage-LiveCD. После того, как обе машины запущены, необходимо узнать их IP-адреса. Наши действия:

Шаг 1: на машине A вводим команду:

nc -l -p 9000 | dd of=/dev/hda bs=1024

netcat будет принимать на порту 9000 и направлять все входящие данные на dd, которая в свою очередь восстановит все данные на устройстве /dev/hda.

Шаг 2: на машине B, заходим в каталог, который содержит файлы образа, и вводим команду:

unzsplit -c -d Linx_bkp | nc 192.168.0.1 9000

unzsplit найдёт все файлы с общей частью имени Linx_bkp, определит правильный порядок чтения, последовательно считает все части, распакует их и направит поток данных на netcat. Netcat соединится с портом 9000 на машине с IP-адресом 192.168.0.1 и передаст все данные через netcat на машине А на dd, которая, в свою очередь, восстановит данные на устройстве hda. Опция –d управляет выводом информации о процедуре восстановления в файл debug.log .

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

Заметьте, что установка очень напоминает ту, что была упомянута выше. Различие в том, что мы используем обе утилиты: и zsplit , и unzsplit через netcat и обе машины необходимо загрузить с DeviceImage-LiveCD.

Для запуска процедуры клонирования делаем следующее: загружаем обе машины с DeviceImage-LiveCD. Определяем IP -адреса обоих машин (см. руководство для ifconfig ). Предположим машина А имеет IP 192.168.0.1 , а машина В - IP 192.168.0.2 . Определяем машину А, как ведущую, а машину В, как ведомую. Направление клонирования соответственно от ведущей (А) до ведомой (В). Заметьте, размер устройства на машине В должен быть как минимум равным, или большим, чем устройство на машине А.

Шаг 1: на машине B вводим команду:

nc -l -p 9000 | unzsplit -D /dev/hda -d -

netcat будет принимать на порту 9000 и направлять входящие данные на unzsplit через the stdin, unzsplit в свою очередь, распакует и восстановит входящие данные на устройство /dev/hda.

Шаг 2: на машине A вводим команду :

zsplit -c -d /dev/hda | nc 192.168.0.2 9000

zsplit считает данные с /dev/hda, сожмёт данные в памяти, используя установки по умолчанию и направит их на netcat, которая осуществит передачу на приёмную netcat машины B .

Copyright(C) 2005 - 2007 DeviceImage-Project

Contact Us

07.07.2007: DeviceImage software goes commercial. Please see here for details.

28.11.2006: Broadening multilanguage option of the homepage. Italian translation has been added. Thank you very much Gianfranco!

14.03.2006: Added mini-HowTo your feedback is very appreciated

27.09.2005: Broadening a multilanguage homepage, Spanish translation has been added, thank you very much Jose!

05.06.2005: zspli/unzsplit version 1.2.0 has been released, please see release notes. Also DeviceImage-LiveCD is now available.

08.04.2005: started multilanguage version of DeviceImage homepage + Forum.

06.03.2005: zsplit/unzsplit version 1.0.1 has been released, please see release notes.

Язык: english german russian spanish italian