klink0v (klink0v) wrote,
klink0v
klink0v

Клонирование Linux-системы "на лету"

Уже в который раз проделываю подобные фокусы. Пора написать памятку.

Есть работающая Linux-система. Гасить её нельзя. Требуется сделать полный бэкап / клон изнутри её самой.

Решение.


  1. Создаём требуемую таблицу разделов на носителе реципиента и файловые системы на ней. Проще говоря, разбиваем и форматируем целевой жесткий диск.

  2. Монтируем корень файловой системы реципиента куда-нибудь либо в самого донора (если локально), либо в другую Linux-машину (если удаленно). Например, "mount /dev/sdb1 /mnt/recip".

  3. Копируем всё с рута донора на реципиента. Если локально, то "cp -ax / /mnt/recip". Если удалённо, то "rsync -avHX donor.com::rootmodule/ /mnt/recip/".

  4. Если всякие /boot, /home и иже с ними были примонтированы отдельно, то аналогично копируем и их тоже.

  5. Правим /etc/fstab на реципиенте. Команда "blkid" в помощь. При необходимости создаем заново swap.

  6. При помощи "mount --bind" монтируем вовнутрь пока ещё мертвого реципиента виртуальные директории "/dev", "/dev/pts", "/proc", "/sys" с запущенной в данный момент времени системы. Если предполагается, что "/boot" лежит где-то отдельно, то монтируем его тоже. Если используется EFI, то не забываем про "/boot/efi".

  7. Chroot-имся вовнутрь примонтированного реципиента. Проверяем, что chroot сработал.

  8. Переустанавливаем GRUB: "grub-install --recheck /dev/куда_надо". Потом "update-grub".

  9. Проверяем, что в "/etc/initramfs-tools/conf.d/driver-policy" прописано "MODULES=most".

  10. Обновляем initramfs: "update-initramfs -u -k all".

  11. Подчищаем "/var/log", "/tmp", "/run".

  12. Выходим из chroot.

  13. Размонтируем всё, связанное с реципиентом.

Собственно, всё. Дальше можно пробовать запускать реципиента. Ничего сложного, но нужно не забыть чего-нибудь и проходить эти шаги именно в таком порядке.
Tags: hints, it, linux, manual
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 64 comments