Как клонировать ubuntu на другой компьютер

Обновлено: 04.07.2024

У меня есть задача клонировать всю систему Ubuntu на множество новых компьютеров; включая RVM, Rails, . все бинарные файлы, библиотеки, пакеты в существующей системе Ubuntu должны быть перенесены на новые ПК.

Есть ли какой-нибудь инструмент, который вы можете порекомендовать?

Есть ли в Ubuntu что-то похожее на Time Machine для Mac OS?

Другой вопрос заключается в том, что в последние годы все мои компьютеры основаны на продуктах Intel.

Такие, как Ivy Bridge, Sandy Bridge, Haswell, . варьируется от I3 до I7.

Могу ли я по-прежнему использовать Clonezilla, потому что я думал, что наиболее хлопотными задачами являются установка и компиляция всех установленных пакетов.

1 ответ 1

Если ваши машины идентичны / очень похожи, может подойти очень простое решение (и мы много раз использовали его для управления нашим более чем 100 компьютерами). Если ваши машины изменяются, это все еще может работать довольно хорошо с Ubuntu; Единственная критическая вещь, о которой я могу подумать, это архитектура процессора - вы просто не сможете загрузить несовместимую арку, как бы вы ни старались. Любая вариация машины может потребовать некоторой настройки после установки.

Загрузите оригинальную систему из livecd и просто tar содержимое вашего диска и распакуйте его во вновь созданные разделы. Вам нужно только следить за тремя вещами:

Подробно это выглядит примерно так (на livecd, на root)

Теперь отредактируйте etc/fstab чтобы использовать /dev/sd$ вместо UUID.

Теперь просто не забудьте правильно размонтировать pendrive (или любой съемный диск) (это может занять некоторое время).

Теперь загрузите целевую систему с livecd и (с правами root):

Теперь все готово.

Если у вас действительно много компьютеров, вы можете захотеть сделать загрузочный pendrive со скриптом, чтобы избавить вас от повторяющейся работы. После некоторого привыкания, ручной метод довольно быстр.

Вы также можете попробовать скопировать весь диск или разделы, используя dd . Я не пробовал этого раньше, но это кажется разумным. Таким образом, вы можете избежать перезаписи mbr на каждой машине.

Если вы хотите более надежное решение, есть Clonezilla, которая делает что-то очень похожее на AFAIK.

Если у вас есть программное обеспечение, которое «не любит» смену компьютеров (например, оно зависит от некоторого аппаратного UUID), вам может не повезти - может потребоваться некоторая работа после клонирования или просто полный сбой в практических целях.

Кроме того, вместо клонирования вы можете создать скрипт для настройки каждого компьютера. Этот подход имеет ряд преимуществ. Наиболее заметно:

У меня есть система Ubuntu с большим проектом, множеством маленьких проектов и (конечно) множеством пакетов и библиотек.

Если я куплю новый компьютер и хочу повторить все это, как мне это сделать? Я предполагаю, что установка Ubuntu на новую машину, а затем копирование дерева файлов с некоторой точки вниз не удастся, поскольку новая машина будет иметь собственный способ просмотра вещей, понимание того, как все связано вместе и т. Д., И просто замена нового файла дерево, начинающееся с корня, с копией со старой машины - идиотская идея.

2 ответа

Затем, для вашего здравомыслия, после завершения клонирования с диска на диск, создайте образ системы с помощью Clonezilla, сохранив разделы (которые будут сжаты) в корне или в разделе / ​​home целевого диска. После завершения загрузитесь с этого диска, будь то HDD или SSD. Получите размер сжатого изображения и запишите его на DVDR. Сделайте вторую копию на флешку. Убедитесь, что содержимое соответствует источнику, затем DVDR будет удален, а его копия на USB-накопителе будет прикреплена к флэш-накопителю Clonezilla, чтобы вы могли восстановить свою систему (сегодня), если вам когда-либо понадобится.

При использовании Linux копирование или миграция вашей существующей системы на другое аппаратное обеспечение намного проще, чем вы думаете, имея опыт работы с Windows. Вам нужна копия жесткого диска или поместите существующий в новый компьютер, и у вас есть довольно хорошие шансы, что вы загрузитесь на новом оборудовании без каких-либо проблем.

Если вы хотите скопировать существующую систему на новый жесткий диск:

Убедитесь, что ваше новое местоположение такое же большое или больше, чем ваше существующее.

Загрузите live CD (вам подойдет любой, у которого есть терминал).

Убедитесь, что ваша существующая система (диск, который вы хотите переместить) и новый диск подключены к вашей машине, но не смонтированы. ( cat /proc/partitions покажет ваши доступные диски.)

Теперь это поможет вам:

где /dev/hda ваша существующая система и /dev/hdb - это новый диск, на который вы хотите скопировать существующую систему. Старайтесь не использовать номера разделов, потому что вы хотите скопировать все (например, MBR, разделы и все содержимое) в новое место.

Не меняйте имена дисков в if=your_existing_drive а также of=your_new_drive или вы разрушите существующую систему, перезаписав ее содержимым вашего нового диска (например, кучу красивых нулей, если это новый отформатированный диск).

Если бы вы могли загрузиться с /dev/hda в вашей старой системе есть вероятность, что ваш новый клонированный диск /dev/hdb поместится в любое компьютерное оборудование, и вы будете загружаться с него. После запуска новой системы вы можете завершить настройку параметров, которые предлагает или требует ваше новое оборудование, и проверить gparted, чтобы настроить размеры разделов, если ваш новый диск больше старого.

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

Windows очень чувствителен к изменениям оборудования. Мы можем изменить Оперативная память or ЦП без проблем, так как для этого не нужны специальные драйверы. Но когда изменение больше, например, графика, необходимо предварительно удалить драйверы. И, когда в материнская плата, мы не сможем перезагрузить компьютер напрямую, пока не переустановим систему.

Linux также нужны собственные драйверы для распознавания оборудования и работы. Разница в том, что эта операционная система не настроена на использование определенных драйверов, а скорее анализирует оборудование и находит и загружает нужные драйвера при запуске . Это дает нам большую гибкость, например, при смене оборудования. Хотя у нас всегда будут некоторые ограничения.

Конечно, это не исключает, что если что-то пойдет не так, давайте увидим Kernel Panic, эквивалент синего экрана Windows.

Паника ядра Linux

Измените оборудование или ПК в системе Linux

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

Сменить RAM

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

Что нужно иметь в виду

Единственное, что нам нужно сделать, это убедиться, что вся память распознается в BIOS или UEFI ПК, и все. Когда мы запустим Linux, мы сможем использовать всю эту память. Кроме того, да, мы должны убедиться, что установленная память является минимумом, необходимым для правильной работы системы и программ.

Замените жесткий диск (или переместите Linux на SSD)

Когда мы меняем жесткий диск, мы обычно ищем два преимущества: больше доступного места и лучшую производительность. Особенно когда мы идем в SSD. Обычно, когда мы монтируем новый жесткий диск в ПК, мы устанавливаем операционную систему с нуля. Однако мы можем сохранить всю эту работу, если выберем клонирование диска.

Используя программу клонирования (например, Clonezilla), можно перенести все данные и все разделы со старого диска на новый SSD. Таким образом, у нас может быть наш Linux в том виде, в каком он был у нас, без необходимости переустанавливать его с нуля.

Что нужно иметь в виду

Единственное, что нужно помнить после внесения этого изменения, - это убедиться, что все данные и разделы находятся на новом диске. Если мы поменяли жесткие диски, некоторые точки монтирования могут работать неправильно. Поэтому нам нужно проверить fstab, чтобы убедиться, что точки монтирования соответствуют новым разделам.

Кроме того, если мы используем SWAP, мы должны проверить, что раздел также был создан и правильно назначен, или изменить и использовать файл подкачки.

Команда «sudo update grub» обычно помогает устранить неполадки в этом разделе.

Сменить процессор или ЦП

Как и в случае с ОЗУ, изменение процессора обычно не влияет на операционный уровень дистрибутива Linux.

Что нужно иметь в виду

В зависимости от производителя и модели нашего процессора может быть выпущен ряд микрокодов для уменьшения уязвимостей или повышения производительности процессора. Обычно они устанавливаются в виде модулей ядра, и, хотя они обычно не становятся работоспособными после переключения ЦП, их может потребоваться удалить.

Если у нас нет глубоких знаний о ядре Linux, самый быстрый способ - это загрузить и установить новое ядро ​​в наш Linux и начать с него из GRUB.

Заменить материнскую плату

Большинство драйверов материнской платы обычно входят в состав ядра. Обычно для этого не требуется использовать проприетарные драйверы. Поэтому смена материнской платы обычно не вызывает проблем при повторной загрузке Linux. Единственное, что может занять немного больше времени, чем обычно, в первый раз, так как необходимо будет обнаружить и записать изменение в оборудовании, но в противном случае у Linux не будет проблем с загрузкой.

Что нужно иметь в виду

Если материнская плата, которую мы собираемся смонтировать, очень новая, нам обязательно придется обновить ядро ​​нашего Linux, чтобы обеспечить лучшую совместимость, особенно с набором микросхем, Интернетом и звуком.

Изменить графическую карту

Смена графики, наверное, самое сложное, что мы можем найти в Linux. Особенно если мы установили проприетарные драйверы от AMD or NVIDIA в дистрибутиве. Чтобы использовать новую графику, первое, что мы должны сделать, это удалить текущие драйверы, а затем установить новые.

Вполне вероятно, что после смены графики наш линукс не запускается, или делает это на черном экране. Чтобы избежать этого, мы должны войти в меню загрузки GRUB и отметить один из следующих параметров в качестве параметра: nomodeset, nouveau.modeset = 0, nvidia.modeset = 0 или radeon.modeset = 0.

Что нужно иметь в виду

В Linux есть бесплатные драйверы для AMD, Intel и NVIDIA. Поэтому лучшее, что мы можем сделать, это удалить проприетарные драйверы перед изменением графики, чтобы снизить вероятность того, что что-то пойдет не так.

Загрузка и компиляция нового ядра после изменения графика может помочь нам решить проблемы, удалив все компоненты и модули старого драйвера, которые могли остаться в нем.

Команда «sudo update grub» также может помочь решить эти проблемы.

Проблемы с Linux? Переустановите систему

Если после вышесказанного, после замены части аппаратного обеспечения ПК у нас все еще есть проблемы, то нам остается только одно: переустановить систему.

Мы должны загрузить последнюю версию нашего дистрибутива с его основного сайта, создать загрузочный диск и приступить к установке системы с нуля. Таким образом мы гарантируем, что у вас не возникнет проблем с совместимостью или вам придется выполнять другие настройки.

Такая задача возникает достаточно редко. Обычно, проще переустановить систему заново, чем переносить уже установленную версию на другой жёсткий диск или другой раздел. Но если у вас там есть важные программы, которые нежелательно удалять, или вы меняли настолько много настроек в системе, что её установка заново займёт намного больше времени, чем её перенос, то перенос будет предпочтительнее.

В этой статье мы рассмотрим, как перенести Linux на другой диск с помощью утилиты cp или архива tar. Второй способ интересен ещё тем, что вы можете создать резервную копию всей системы, а затем просто восстановить её при возникновении проблем.

Как перенести Linux на другой диск

Поскольку все данные, настройки и объекты операционной системы Linux - это файлы, то вы можете перенести свою операционную систему куда нужно, просто скопировав все нужные файлы. В Windows так де просто не получится, так, как там более сложная файловая система со сложными зависимостями.

1. Подготовка к переносу

Сначала рассмотрим, как использовать утилиту cp для переноса файлов операционной системы. В папку /mnt примонтируйте раздел, на котором будет располагаться новый Linux. Например, это /dev/sdb1:

sudo mount /dev/sdb1 /mnt

Теперь нужно рекурсивно скопировать все файлы из текущего корня в нашу папку /mnt. Лучше всего это делать, загрузившись с LiveCD диска, тогда точно все нужные данные будут сохранены. Но это не обязательно, вы можете делать перенос и работающей системы, только перед этим остановите все запущенные базы данных и сервисы по максимуму, чтобы они сохранили свои настройки и вы ничего не потеряли в новой версии системы. Например, если у вас запущена база данных MariaDB или MySQL, то её нужно остановить:

sudo systemctl stop mariadb

Аналогично сделайте со всеми другими не важными для операционной системы сервисами. Также очистите корзину, кэш пакетного менеджера и другие ненужные файлы, чтобы они не занимали место в архиве или новой системе.

2. Перенос Linux утилитой cp

Далее можно запускать сам перенос Linux на другой диск. Для этого запустите утилиту cp с опциями -a, -r и -x. Первая опция включает сохранение исходных прав и метаданных файла, вторая - рекурсивный обход файловой системы, а третья ограничивает рекурсию только текущей файловой системой:

sudo cp -rxa / /mnt/

Поскольку будут копироваться только файлы из текущей файловой системы, то если ваши каталоги /boot и /home находятся на других разделах, то их нужно скопировать отдельно:

sudo mkdir /mnt/
sudo cp -rxa /boot /mnt/boot/
sudo cp -rxa /home /mnt/home/

Если вам не нужна домашняя папка, то вы можете её не копировать.

3. Перенос Linux утилитой tar

Это альтернативный вариант переноса, если вы не хотите использовать cp, то можете применить tar. Чтобы сразу перенести файлы в другое расположение, нужно создать туннель, на одном конце которого данные будут запаковываться, а на другом - распаковываться:

sudo tar -cpv --one-file-system / | sudo tar -x -C /mnt

Опция -p - заставляет утилиту сохранять метаданные файлов при переносе. Опция --one-file-system указывает, что утилита будет брать файлы только из корневой файловой системы, поэтому все примонтированые файловые системы, как и в предыдущем варианте, будут пропущены. Поэтому каталоги /boot и /home вам придётся копировать аналогичной командой. Или же можно не использовать эту опцию и передавать всё, кроме ненужного:

sudo tar -cpv --exclude /mnt --exclude /dev --exclude /sys --exclude /proc --exclude /tmp --exclude /run / | sudo tar -x -C /mnt/

Также вы можете создать архив, а потом его куда-нибудь скопировать, чтобы иметь резервную копию системы:

sudo tar -cvpzf system.tar.gz --exclude system.tar.gz --one-file-system /

Вместо опции --one-file-system можно использовать опции --exclude, чтобы исключить ненужные каталоги, как в предыдущей команде. А для распаковки используйте команду:

sudo tar xvzf system.tar.gz -C /mnt

Здесь, /mnt - это каталог, в который нужно извлечь файлы архива.

4. Перенос с помощью rsync

Утилитой rsync многие не хотят пользоваться, но она очень удобная, работает достаточно быстро и отображает прогресс копирования. Для переноса с помощью rsync выполните:

Эта команда работает аналогично команде tar, копирует всё что есть в новое расположение. Опции -aAX включают сохранение всех метаданных файла, символических ссылок, владельцев, групп, и так далее.

5. Правка /etc/fstab

Теперь замените полученным UUID, значение этого параметра корневого раздела в /mnt/etc/fstab:

sudo vi /mnt/etc/fstab

6. Установка загрузчика

Далее нужно установить загрузчик Grub в новом Linux. Сначала примонтируйте в него папки /sys, /proc и /dev:

sudo mount --bind /sys /mnt/sys
sudo mount --bind /proc /mnt/proc
sudo mount --bind /dev /mnt/dev

Затем войдите в chroot окружение:

sudo chroot /mnt

Затем установите загрузчик на тот диск, на который вы переносили Linux, в моём случае это /dev/sdb:

sudo grub-install /dev/sdb

И осталось только создать конфигурационный файл для загрузчика:

В дистрибутивах, не основанных на Ubuntu, вместо update-grub2 можно использовать команду:

sudo grub2-mkconfig -o /boot/grub/grub.cfg

7. Перезагрузка

Выйдите из chroot-окружения командой:

Затем размотрируйте системные каталоги и ваш раздел:

sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt

И перезагрузите компьютер. В BIOS вашего компьютера нужно выбрать диск, на который вы переносили Linux, в качестве первого источника для загрузки. После загрузки вы будете уже в новой операционной системе и всегда сможете вернуться в старую.

Выводы

В этой статье мы разобрали, как перенести Linux на другой жёсткий диск с помощью утилит tar, cp или rsync. Как видите, это достаточно просто и быстро. Ещё мы могли бы использовать утилиту dd, однако она копирует весь диск побайтово, поэтому будет работать дольше и её архивы будут занимать больше места на диске. Ещё можно воспользоваться инструментом Clonezilla.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Читайте также: