Клонирование Linux

В этой статье речь пойдёт о переносе операционных систем семейства Linux на новое аппаратное обеспечение или, иными словами, «на новое железо». Если вам требуется выполнить перенос операционной системы на новый жёсткий диск на том же самом аппаратном обеспечении, то эта статья вам вряд ли пригодится. Для переноса Linux на другой жёсткий диск на том же компьютере советую воспользоваться утилитами dd, partimage или более сложными программными продуктами наподобие Clonezilla.

Итак, предположим, что перед нами стоит задача переноса Linux (сервера, десктопа и т.д.) на новый компьютер. Если речь идёт в особенности о серверах, то такого рода задача может оказаться достаточно сложной, если пытаться осуществить новую инсталляцию, а затем переносить настройки вручную. Данный процесс можно автоматизировать, застраховав себя от ошибок в связи с человеческим фактором и избавившись от значительных временных затрат.

Предварительные замечания

Процесс переноса будет описан, исходя из предположений, что мы «клонируем» ОС Linux Ubuntu, а копирование данных будем производить напрямую с жёсткого диска «старого» компьютера на жёсткий диск «нового». В случае копирования на внешний жёсткий диск, удалённого (сетевого) копирования или других дистрибутивов ОС Linux адаптация того, что написано ниже, не составит большого труда.

Важно! Будем предполагать, что все директории исходного компьютера монтируются на одном разделе. Если какая-либо директория исходного сервера монтируется на отдельный раздел — следует выполнить копирование данных по описанному ниже алгоритму (см. Этап 2 ниже) для каждого раздела отдельно.

Подготовка

Прежде всего определите версию Ubuntu, перенос которой следует осуществить, например, 12.10, 14.04, 14.10 и т.п. Для определения версии Ubuntu на «старом» компьютере воспользуйтесь утилитой lsb_release и введите в терминале:

lsb_release -a | grep Description

В результате в терминале можно будет увидеть что-то наподобие:

[email protected]:~# lsb_release -a | grep Description
Description:	Ubuntu 14.04.1 LTS
[email protected]:~#

Далее загрузите образ и создайте Live CD или Live USB с ОС Linux Ubuntu той версии, которая инсталлирована на исходной системе (например, 14.04).

Этап 1. Инсталляция ОС на «новом» компьютере

На первом этапе выполните на «новом» компьютере «свежую» инсталляцию Linux Ubuntu, используя Live CD или Live USB, созданные на этапе подготовки. В процессе установки можно отказаться от инсталляции обновлений. Также не забудьте создать все разделы жёсткого диска на «новом» компьютере по схеме (без учёта размера разделов), которая совпадала бы со схемой разметки старого. Например, если директории «/var» или «/home» монтируются на «старом» компьютере на отдельные разделы — создайте такие же разделы достаточного размера на жёстком диске «нового» компьютера.

По завершении инсталляции извлеките жёсткий диск с только что установленной системой из «нового» компьютера и установите его на «старый».

Этап 2. Перенос данных

Загрузите «старый» компьютер, используя Live CD или Live USB с ОС Linux Ubuntu.

Смонтируйте корневые разделы жёстких дисков «старого» и «нового» компьютеров.

Станьте root-ом:

sudo -i

Определите директории, в которых смонтированы корневые разделы, используя команду в терминале:

mount -l

Предположим, что корневой раздел «старого» компьютера смонтирован в директорию:

/media/ubuntu/old/

а «нового» — в директорию:

/media/ubuntu/new/

Создайте в домашней директории root-а текстовый файл exclude-list:

touch /root/exclude-list

Отредактируйте созданный текстовый файл:

nano /root/exclude-list

поместив в него содержимое:

+ */proc/
+ */sys/
+ */dev/
+ */mnt/
+ */media/
+ */tmp/
+ */run/
- etc/fstab
- boot/grub/grub.cfg
- proc/
- sys/
- dev/
- mnt/
- media/
- tmp/
- run/
- lost+found/

Внимание! В каждой строке файла «exclude-list» не должно быть лишних пробелов нигде, в том числе в конце каждой строки — проверьте!

Далее выполните копирование данных «старого» компьютера на «новый», используя утилиту rsync:

rsync -xrlptgoEvv --progress --exclude-from=/root/exclude-list /media/ubuntu/old/ /media/ubuntu/new/

Важно! Замените в последней команде пути к файлам смонтированных корневых разделов «/media/ubuntu/old/» и «/media/ubuntu/new/» на свои. Пути к директориям должны быть абсолютными (не относительными) и обязательно завершаться слэшем «/»!

Повторите монтирование и копирование для всех разделов жёстких дисков — /var, /home и т.д., если таковые имеются.

Этап 3. Завершение

На последнем этапе выключите «старый» компьютер, извлеките из него жёсткий диск «нового» компьютера и установите извлечённый жёсткий диск снова на «новый» компьютер.

Включите «новый» компьютер и по завершении процесса загрузки операционной системы убедитесь, что все данные были перенесены со «старого» на «новый» компьютер.

Заключительные замечания

Если в процессе клонирования была допущена ошибка, например, возникает проблема с grub-ом или что-то не так с файлом /etc/fstab — обратитесь к моей статье «Восстановление загрузчика Grub 2 в Linux Ubuntu».

В случае, если у вас возникли вопросы — задавайте их ниже в комментариях к данной статье.

Вернуться назад...

МЕТКИ >, , ,