Создание и использование эталонных образов клонируемой системы

Эталонные образы системы можно создавать в виде файлов filename.img.bz2 или filename.cpio.bz2. Это лучше делать на размонтированых файловых системах, а потому необходимо взять эталонный диск и поставить его в достаточно мощный компьютер с работающей системой и достаточным количеством свободного дискового пространства.

Возможны два варианта получение эталонного образа.

Вариант 1

Если все компьютеры имеют одинаковые жёсткие диски, можно использовать утилиту dd для создания точной копии эталона. Чтобы после клонирования удостовериться, что полученный диск в является точной копией, можно предварительно записать в файл геометрию эталонного командой sfdisk -l. Результат работы этой программы для диска, например, размером 10 Гб может быть следующим:

	Disk /dev/hdd: 1247 cylinders, 255 heads, 63 sectors/track
	Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
	Device Boot Start     End   #cyls   #blocks   Id  System
	/dev/hdd1          0+    446     447-  3590496   83  Linux
	/dev/hdd2        447     498      52    417690   82  Linux swap
	/dev/hdd3        499    1246     748   6008310    5  Extended
	/dev/hdd4          0       -       0         0    0  Empty
	/dev/hdd5        499+   1246     748-  6008278+  83  Linux
      

Далее делаем сжатый образ:

	$ dd if=/dev/hdd | bzip2 -9 -c > Junior_hdd.img.bz2
        20044080+0 records in
        20044080+0 records out
      

Выкладываем образ на свой FTP-сервер:

	$ cp Junior_hdd.img.bz2 /var/ftp/pub/
      

Загрузив компьютер, на который нужно установить систему, с подготовленной дискеты и получив образ второго этапа установки с FTP-сервера, можно дать команду:

	$ getftp <IP_FTP_SERVER> /pub/Junior_hdd.img.bz2 | \ bzip2 -d -c | dd of=/dev/hda
      

и получить точную копию эталонной машины.

Вариант 2

Если на компьютерах установлены разные диски, работать на уровне жёсткого диска (/dev/hda) нельзя и придётся перейти на уровень разделов (/dev/hda1, /dev/hda2 и т.д.). В этом может помочь утилита cpio, которая архивирует все типы файлов (в том числе устройства и сокеты) со всеми свойствами и правами. При использовании cpio необязательно обнулять диск, поскольку она работает уже поверх файловой системы.

Сделаем архив эталонного корневого раздела, предполагая, что он находится в /dev/hdd1, и выкладываем его на FTP-сервер:

	$ mount /dev/hdd1 /mnt/disk
	$ cd /mnt/disk
	$ find ./ | cpio -o | bzip2 -9 -c > /tmp/hda1.cpio.bz2
	$ cp /tmp/hda1.cpio.bz2 /var/ftp/pub/
      

Точно так же обрабатываются и остальные разделы, содержащие информацию. Раздел подкачки проще создать вручную прямо на месте в “спасательном” режиме.

Загрузив компьютер, на который нужно установить систему, с подготовленной дискеты и получив образ второго этапа установки, нужно вручную создать соответствующие разделы. Каждый из них должен иметь размер не меньше, чем необходимо для размещения информации, хранящейся в образах. Их необходимо отформатировать и смонтировать, например, в /mnt/disk.

Чтобы воссоздать раздел /, примонтированый в /mnt/disk, нужно сделать следующее:

	$ cd /mnt/disk
	$ getftp <IP_FTP_SERVER> /pub/hda1.cpio.bz2 | \ bzip2 -d -c| cpio -i -make-directories
      

Далее нужно повторить аналогичные операции для остальных разделов. По окончании копирования не забудьте про установку LILO или GRUB в новую систему.

Размещение эталонных образов

Если на диске FTP-сервера мало свободного места, то будет разумно скопировать образы на CD-RW и монтировать их в структуру каталогов FTP-сервера. С учётом того, что работы по массовому клонированию систем происходят обычно не каждый день, такое экономное использование дискового пространства можно во многих случаях считать оптимальным.