Разное / Импортозамещение / Как я клонировал Астралинукс


Для клонирования линуксовой операционной системы можно воспользоваться, как Acronisом, так и другими приложениями, но проблема при использовании этих программ - это время работы, если посекторное, то это очень долго, также проблема с клонированием с диска меньшего размера на большой и наоборот. Также есть готовое решение для клонирования - clonezilla, проблем при ее использовании у меня не возникало, пока не появились диски разных размеров. Во всяком случае у меня не получилось, хотя приложение вроде позволяет это делать.

Поэтому я решил пойти своим путем. И нашел вот такое решение.

Для начала нам необходимо обзавестись каким-нибудь Live-CD. Я использовал MX Linux, образ которого брал вот тут https://mxlinux.org.

Далее загружаем операционную систему с подключенными дисками (исходный и назначение).

Смотрим, как он называются в системе.

fdisk -l

Как видно на картинке /dev/sda - это диск откуда я буду брать исходную операционную систему, а /dev/sdb - диск куда буду копировать.

Диск назначения в данном случае еще не имеет разделов, поэтому создадим их. Я не буду создавать раздел под swap и home, хотя можно и с ними. Swap я потом создам отдельно в виде файла.

fdisk /dev/sdb

Далее форматируем созданный раздел /dev/sdb1

mkfs -t ext4 /dev/sdb1

После подготовленного раздела необходимо примонтировать и диск источник, и диск назначения. Монтировать я буду их в созданные ранее директории 1 и 2.

mount /dev/sdb1 /1

mount /dev/sda1 /2

После подключения дисков переходим к копированию. Скопировать можно командой cc, но я использую Midnight Commander (mc), где просто копируем с одного диск на другой все содержимое. В моем случае на диске /dev/sda "лежат" несколько образов операционных систем.

После копирования необходимо внести изменения в некоторые файлы, где надо поменять все упоминания старого UID на новый:

  • /ect/fstab
  • /etc/default/grub
  • /boot/grub/grub.cfg

UID нового раздела куда мы скопировали данные смотрим командой blkid или blkid | grep /dev/sda1

Далее устанавливаем GRUB на новый диск с системой.

grub-install --root-directory=/1 /dev/sdb

где

--root-install=/1 - директория с примонтированным разделом операционной системой

/dev/sdb - сам диск с системой.

На этом собственно говоря клонирование завершено. Да, трудоемко в плане изменения UID раздела, но зато копируется на любые диски с любых дисков. Можно перезагружаться и смотреть на результат. Первый запуск может быть длительным из-за отсутствия раздела swap.

Далее уже в загруженной клонированной системе мы делаем раздел swap, как и писал ранее.

Получаем права root.

sudo -l

Создаем файл swapfile размером 10 Gb

fallocate -l 10G /swapfile

Назначаем ему права

chown root:root /swapfile

chmod 600 /swapfile

pdpl-file 3:63:-1 /swapfile

Форматируем

mkswap /swapfile

Подключаем

swapon /swapfile

Добавляем сведения о нем в /etc/fstab

/swapfile     none     swap     sw     0 0

Далее в файле /etc/initramfs-tools/conf.d/resume необходимо указать UID swap раздела или не использовать - none. Я указал none.

Последним шагом делаем вот так

update-initramfs -u -k all

На этом все.