Alterator-kopidel
Название пакета
Назначение
Модуль Копидел предоставляет пользователю простой интерфейс для копирования настроенной рабочей системы на другие компьютеры.
Модуль можно использовать на дистрибутивах «Альт», основанных на платформе p11 или более поздних.
Модуль Копидел позволяет:
- создать разливочный образ ОС (в формате img), записать образ напрямую на внешний накопитель для быстрой установки целевой ОС, аналогичной исходной;
- указать каталоги, которые следует исключить из копирования;
- выбрать каталог или внешний накопитель для сохранения образа;
- включить режим OEM — при первой загрузке целевой системы пользователь сможет выполнить персональные настройки (выбор имени, языка, пароля и т.д.);
- сжать скопированную файловую систему с помощью xz.
- при создании RAW-образа требуется место, равное примерно размеру копируемой системы;
- при использовании сжатия xz требуется место до двукратного размера системы, так как итоговый размер сжатого образа заранее предсказать невозможно.
При создании образа формируется файл vm-profile.scm, содержащий разметку диска исходной системы. Эта разметка будет применена на целевой машине.
Запуск
Модуль Копидел доступен в GUI (раздел Система ⇾ Копидел).
Интерфейс модуля
Тип создаваемого образа
Тип образа выбирается с помощью радиокнопок:
- «Разливочный образ» — создаётся файл образа системы в формате .img.
- «Разливочный внешний накопитель» — образ записывается напрямую на выбранный внешний носитель (например, USB-флешку или неразмеченный раздел диска).
Настройки для варианта «Разливочный образ»
При выборе опции «Разливочный образ» отображается поле «Рабочий каталог» со списком разделов, подходящих для создания образа.
Ограничения для выбора раздела:
- выбираются только разделы, на которых достаточно места;
- раздел должен быть примонтирован;
- рабочий каталог не может находиться на файловых системах, смонтированных с флагами ro (только для чтения) или nodev.
В выбранном разделе будет создан каталог alterator-kopidel-workdir, внутри которого формируется файл образа razlivochniy.img.
Для обновления списка каталогов можно нажать кнопку «Обновить список возможных рабочих каталогов» (полезно, например, если изменился список игнорируемых файлов).
Настройки для варианта «Разливочный внешний накопитель»
При выборе варианта «Разливочный внешний накопитель» отображается поле «Внешний накопитель» со списком устройств, подходящих для создания образа.
Для обновления списка носителей можно нажать кнопку «Обновить список возможных внешних накопителей»
Дополнительные настройки
Игнорируемые файлы
«Использовать стандартный список файлов, игнорируемых при копировании» — в качестве источника игнорируемых файлов используется файл /usr/share/alterator-kopidel/default-ignored-files.txt. В нём перечислены пути (по одному на строке), которые не копируются на целевую систему.
По умолчанию игнорируются:
/home/[^/]+/.bash_history
/dev
/proc
/sys
/tmp
/run
/mnt
/media
/lost+found
Если снять отметку с пункта «Использовать стандартный список файлов, игнорируемых при копировании», становится доступно поле «Путь к пользовательскому списку игнорируемых файлов», где можно указать свой файл со списком игнорируемых элементов (список — по одному пути на строку).
Если изменяется путь к списку игнорируемых файлов рядом появляется кнопка для обновления списка:
Осуществляется подсветка статуса файла:
- зелёный — файл найден;
- оранжевый — путь указан, но наличие файла ещё не проверено;
- красный — файл не найден.
Установка в режиме OEM
Для включения режима OEM необходимо установить отметку в соответствующем поле.
В этом режиме при первой загрузке целевой системы запускается мастер первоначальной настройки, включающий по умолчанию следующие шаги:
- «Выбор основного языка системы»
- «Лицензионное соглашение»
- «Дата и время»
- «Установка пароля учетной записи администратора (root)»
- «Создание учётной записи системного пользователя»
- «Завершение настройки»
Настройка GRUB
«Установить GRUB с флагом --removable» — включает режим совместимой установки загрузчика:
- в UEFI режимах загрузчик размещается в стандартном пути (/EFI/BOOT/BOOTX64.EFI), чтобы система могла загружаться даже без записи загрузочной записи в NVRAM;
- в Legacy BIOS режимах загрузчик устанавливается в загрузочный сектор корневого раздела (где расположена система).
Этот режим полезен для создания гибридных образов, совместимых с загрузкой как в BIOS, так и в UEFI.
Сжатие файловой системы
«Сжать копируемую файловую систему с помощью xz» — включает максимальное сжатие создаваемого образа. Экономит место, но увеличивает время копирования.
Управление процессом
Кнопка «Создать разливочный образ» — запускает процесс создания разливочного образа.
Кнопка «Прекратить создание разливочного образа» — становится активной после старта процесса и позволяет прервать его.
Во время работы отображаются два индикатора (progress bar):
- верхний — текущая выполняемая задача;
- нижний — процент выполнения шага.
Инструмент командной строки kopidel
Создать разливочный образ можно и в командной строке.
Синтаксис команды kopidel:
# kopidel [опции] workdir
# kopidel [опции] /dev/external_drive
Где:
- workdir — путь к рабочему каталогу (например, /alterator-kopidel-workdir);
- /dev/external_drive — устройство, на которое будет записан образ.
Доступные опции:
- -X, --ignored-from — путь к файлу со списком игнорируемых файлов (по умолчанию используется файл /usr/share/alterator-kopidel/default-ignored-files.txt);
- --xz — сжать скопированную файловую систему с помощью xz;
- -O, --oem-mode — включить режим OEM;
- -s, --step — запустить отдельный шаг процесса;
- --list-workdirs — показать список возможных рабочих каталогов;
- --list-exdrives — показать список возможных внешних накопителей;
- --grub-efi-removable — установить GRUB с флагом --removable;
- -v, --version — показать версию и выйти;
- -h, --help — показать справку и выйти.
Примеры использования:
- просмотр возможных рабочих каталогов:
# kopidel --list-workdirs Используется стандартный список игнорируемых файлов. Список возможных рабочих каталогов: /alterator-kopidel-workdir /dev/sda3
- просмотр возможных внешних накопителей:
# kopidel --list-exdrives Используется стандартный список игнорируемых файлов. Нет доступных внешних накопителей с достаточным количеством места. Требуемое место: 12Gi.
- создание образа в каталоге /alterator-kopidel-workdir:
# kopidel /alterator-kopidel-workdir Используется стандартный список игнорируемых файлов. [Ср 03 сен 2025 12:06:28 EET] Шаг 1/9: Подготовка рабочего каталога. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 12:10:09 EET] Шаг 2/9: Копирование файловой системы. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:44:17 EET] Шаг 3/9: Создание информации о разбивке диска. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:44:26 EET] Шаг 4/9: Создание установочных скриптов. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:44:26 EET] Шаг 5/9: Перемещение готовых к использованию файлов в образ. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:44:26 EET] Шаг 6/9: Создание разделов и точек монтирования. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:45:04 EET] Шаг 7/9: Перемещение готовых к использованию файлов в образ. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:46:14 EET] Шаг 8/9: Установка GRUB. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:46:18 EET] Шаг 9/9: Размонтирование образа. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 13:46:18 EET] Создание разливочного образа успешно завершено.
- создание образа с флагом --removable (для EFI):
# kopidel --grub-efi-removable /alterator-kopidel-workdir
- создание образа в каталоге /alterator-kopidel-workdir, использовать OEM-режим:
# kopidel -O /alterator-kopidel-workdir
- выполнение отдельного шага (например, создание информации о разметке):
# kopidel -s create_disk_partition_info /alterator-kopidel-workdir Используется стандартный список игнорируемых файлов. [Ср 03 сен 2025 11:48:41 EET] Шаг 1/1: Создание информации о разбивке диска. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 11:48:47 EET] Шаг был успешно выполнен
- Результат (файл vm-profile.scm):
# cat /alterator-kopidel-workdir/image/Metadata/vm-profile.scm ((workstation (title . "Setup for workstation") (action . trivial) (actiondata ("swap" (size 262144 . 262144 ) (fsim . "SWAPFS") (methods plain) ) ("/boot/efi" (size 1046528 . 1046528 ) (fsim . "FAT32") (methods plain) ) ("" (size 66865468 . 166455296 ) (fsim . "BtrFS") (methods plain) (subvols ("@" . "/") ("@home" . "/home"))) )))
- запись образа на внешний накопитель:
# kopidel /dev/sdb Используется стандартный список игнорируемых файлов. [Ср 03 сен 2025 16:48:56 EET] Шаг 1/7: Создание разделов и точек монтирования. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:48:57 EET] Шаг 2/7: Подготовка рабочего каталога. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:52:16 EET] Шаг 3/7: Копирование файловой системы. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:55:12 EET] Шаг 4/7: Создание информации о разбивке диска. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:55:17 EET] Шаг 5/7: Создание установочных скриптов. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:55:17 EET] Шаг 6/7: Установка GRUB. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:55:18 EET] Шаг 7/7: Размонтирование образа. █████████████████████████████████████████████████████████████████████████████████████████████████ 100% [Ср 03 сен 2025 16:55:18 EET] Создание разливочного образа успешно завершено.
- prepare_workdir — подготовка рабочего каталога;
- create_copied_fs — копирование файловой системы;
- create_disk_partition_info — создание информации о разбивке диска (alterator-kopidel-workdir/image/Metadata/vm-profile.scm;
- create_install_scripts — создание установочных скриптов (alterator-kopidel-workdir/image/Metadata/install-scripts.tar);
- create_razlivochniy_mountpoint — создание разделов и точек монтирования;
- save_ready_to_use_image — перемещение готовых к использованию файлов в образ;
- use_ready_to_use_image — перемещение готовых к использованию файлов в примонтированный образ;
- install_grub — установка GRUB;
- umount_razlivochniy — размонтирование образа.
Создание и разливка разливочного образа
Процедура создания разливочного образа и разливки его на целевую систему состоит из следующих шагов:
- Установить систему на исходный ПК, разметив диск так, как он будет размечен на целевых машинах..
- Установить модуль Копидел.
- Произвести настройку исходной ОС (установить пакеты, настроить ПО и т.д.).
- Обеспечить наличие достаточного места для создания разливочного образа.
- Создать разливочный образ в командной строке, выполнив команду kopidel, или в ЦУС (в модуле Копидел выбрать необходимые опции и нажать кнопку «Создать разливочный образ»).
- Дождаться создания образа ОС (создание образа может занять довольно продолжительное время). Если разливочный образ создается в ЦУС, создание образа будет завершено, когда на верхнем индикаторе выполнения появится сообщение «Создание разливочного образа успешно завершено»:
- Перенести разливочный образ ОС из рабочего каталога на загрузочное устройство.
- Произвести загрузку с разливочного образа на целевом ПК:
- Программа перенесёт копию исходной ОС на целевой ПК (процедура переноса может занять довольно продолжительное время). На экране будет отображаться процесс переноса:
- Отключить загрузочное устройство.
- Загрузится с целевой системы:
Подключение образа .img в ВМ
PVE
Для создания ВМ из разливочного образа выполните импорт:
# qm importdisk <VMID> razlivochniy.img <STORAGE-ID>
Например:
# qm importdisk 115 /tmp/razlivochniy.img local-lvm
После завершения импорта диск появится в разделе «Оборудование» как «Неиспользуемый диск». Подключите образ диска к шине. Для этого дважды щёлкните по нему или выберите его и нажмите кнопку «Изменить».
В параметрах диска установите «Только для чтения».
При необходимости настройте «Порядок загрузки» во вкладке «Параметры».
libvirt / virt-manager
В libvirt образы .img можно подключать напрямую как диски (raw).
Пример создания ВМ командой virt-install:
$ virt-install --connect qemu:///system \
--name test-vm \
--memory 2048 \
--vcpus 2 \
--os-variant linux2022 \
--boot loader=/usr/share/OVMF/OVMF_CODE.fd \
--disk path=/var/lib/libvirt/images/razlivochniy.img,device=disk,format=raw,readonly=on \
--disk path=/var/lib/libvirt/images/test-vm.qcow2,size=30,device=disk,format=qcow2 \
--network network=default \
--import \
--graphics spice
Где:
- --boot loader=... — указывает путь к файлу прошивки OVMF (для UEFI-загрузки);
- --disk razlivochniy.img,readonly=on — подключает разливочный образ как источник данных, доступный только для чтения;
- --disk test-vm.qcow2,size=30 — создаёт новый диск размером 30 ГБ, на который будет установлена система;
- --import — запускает виртуальную машину без ISO-образа, используя первый диск как источник загрузки.
Или через virt-manager:
- В настройках ВМ добавить новый диск.
- Указать путь к razlivochniy.img.
- В параметрах диска выбрать «Только для чтения».
VirtualBox
VirtualBox не работает напрямую с raw-образами .img, поэтому нужно преобразовать в формат VDI:
$ VBoxManage convertfromraw razlivochniy.img razlivochniy.vdi
После преобразования:
- Добавьте диск razlivochniy.vdi к ВМ, например, через настройки ВМ.
- Установите режим «Только для чтения», используя один из способов:
- Настройте порядок загрузки.
Настройка сетевой установки из разливочного образа
Создание разливочного образа
Разливочный образ можно создавать непосредственно в примонтированном сетевом каталоге (например, по NFS или CIFS):
Требования к сетевому каталогу:
- каталог должен быть доступен на запись (иначе образ не создастся);
- файловая система должна поддерживать жёсткие и символьные ссылки (иначе возможны ошибки при копировании);
- должна поддерживаться работа с файлами больше 4 ГБ (подходят ext4, xfs, btrfs и другие современные ФС).
Пример настройки NFS-сервера:
- Установите NFS-сервер:
# apt-get install nfs-server
- Добавьте в файл /etc/exports строки:
/srv/public -ro,insecure,no_subtree_check,fsid=0 * /srv/public/netinst/mnt -ro,insecure,no_subtree_check,fsid=1 * /srv/public/img -rw,insecure,no_subtree_check,no_root_squash,fsid=2
- Первая строка экспортирует общий корневой каталог (fsid=0 — корень NFS-экспорта).
- Вторая — каталог с содержимым для сетевой установки (только чтение).
- Третья — каталог для хранения разливочных образов (с правами на запись: rw, no_root_squash).
- Экспортируйте каталоги:
# exportfs -r
- Разрешите rpcbind принимать внешние подключения:
# control rpcbind server
- Запустите NFS-сервер:
# systemctl enable --now nfs-server
На машине, где будет создаваться образ, примонтируйте сетевой каталог:
# mkdir -p /media/nfs
# mount -t nfs -o nfsvers=3,rw 192.168.0.196:/srv/public/img /media/nfs
Примонтированный каталог будет отображаться в списке возможных рабочих каталогов:
# kopidel --list-workdirs
Используется стандартный список игнорируемых файлов.
Список возможных рабочих каталогов:
/alterator-kopidel-workdir /dev/sda2
/media/nfs/alterator-kopidel-workdir 192.168.0.196:/srv/public/img
Далее создание разливочного образа аналогично локальному каталогу.
Установка системы из разливочного образа
Систему можно установить по сети, загрузившись с PXE и указав путь к разливочному образу.
Настройте сервер сетевых установок:
- DHCP (с указанием filename + next-server);
- TFTP (с загрузчиками grub/pxelinux);
- NFS/FTP (для доступа к содержимому разливочного образа).
Подготовка разливочного образа для установки:
- Привяжите разливочный образ к loop-устройству, например:
# losetup -Pf /srv/public/img/alterator-kopidel-workdir/razlivochniy.img
- Проверьте созданные разделы:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 43,6G 0 loop ├─loop0p1 259:0 0 1M 0 part ├─loop0p2 259:1 0 260M 0 part └─loop0p3 259:2 0 43,4G 0 part
- Смонтируйте корневой раздел (loop0p3) в каталог установки /srv/public/netinst/mnt:
# mount /dev/loop0p3 /srv/public/netinst/mnt
- Убедитесь, что в каталоге /srv/public/netinst/mnt присутствуют:
- каталог Metadata — содержит файлы автоустановки;
- файл altinst — метка, указывающая, что это разливочный образ;
- каталог boot — содержит ядро (vmlinuz) и initrd (initrd.img).
- Скопируйте каталог boot, содержащий ядро и initrd, в TFTP-каталог:
# cp -r /srv/public/netinst/mnt/boot /var/lib/tftpboot/
Настройка загрузчика:
- Пример для Legacy (BIOS) — файл /var/lib/tftpboot/pxelinux.cfg/default:
timeout 120 prompt 0 default nfs label nfs kernel /boot/vmlinuz append initrd=/boot/initrd.img root=bootchain bootchain=fg,altboot fastboot lowmem ramdisk_size=4000000 showopts automatic=method:nfs,server:192.168.0.196,directory:/netinst/mnt ip=dhcp ai curl=nfs://192.168.0.196/Metadata
- Пример для UEFI — файл /var/lib/tftpboot/grub.cfg:
set timeout=120 set default=nfs menuentry "PXE instal" { echo $"Loading Linux vmlinuz ..." linux /boot/vmlinuz fastboot root=bootchain bootchain=fg,altboot automatic=method:nfs,server:192.168.0.196,directory:/netinst/mnt init=/usr/libexec/install2/install2-init ramdisk_size=4000000 lowmem showopts ip=dhcp ai curl=nfs://192.168.0.196/Metadata echo $"Loading initial ramdisk ..." initrd /boot/initrd.img }
/srv/public -ro,...,fsid=0 *
/srv/public/netinst/mnt -ro,...,fsid=1 *
То клиент должен указывать путь относительно /srv/public:
directory:/netinst/mnt
Если /etc/exports содержит:
/srv/public -ro,...,fsid=1 *
/srv/public/netinst/mnt -ro,...,fsid=2 *
Нужно указывать полный путь:
directory:/srv/public/netinst/mnt














