клонировать linux на другое железо
Перенос Linux на другой компьютер
Вступление
Хочу поделиться собственным опытом переноса системы на другой компьютер, целиком и полностью отличающийся аппаратной конфигурацией.
На самом деле, вариантов перенести систему много. Каждый имеет свой подход. Я же опишу способ, который больше всего подходит для новичков.
Что имеем
Итак, вот конфигурация моего исходного компа, с установленно ОС:
Материнка: Intel S3200shv
Процессор: Intel Core 2 Duo E8400
Память: 8Гб
Raid 1 ёмкостью 300 Гб
ОС: Fedora 12 i686
Будем для краткости называть его «донором».
Конфигурация компа назначния:
Материнка: Intel Desktop Board D845EBG2
Процессор: Celeron 2ГГц
Память: 512Мб
HDD 160 Гб
Это будет «пациент».
В кратком виде алгоритм будет таким:
1. Создать разделы у «донора», как Вы хотите.
2. Установить на комп назначения такую же систему, как на исходном компе.
3. Подключить к исходному компу HDD компа назначения
4. Скопировать файлы из разделов «донора» в разделы «пациента».
Многие вместо второго шага правят разделы вручную. Я предлагаю установку, поэтому этот способ как мне кажется, проще и универсальнее. Чтобы Вы не мучились с переустановкой загрузчика и правкой /etc/fstab.
Шаг первый
Я размечал свой HDD с помощью загрузочного диска pmagic. Удобно и наглядно.
Разделы я создавал «один-в-один» как и на исходном компе, только меньше размером, т.к. HDD «пациента» меньше.
Шаг второй
Установка Fedora на подготовленный HDD прошла быстро и без проблем. Правда, сначала не мог запустить её в графическом режиме, т.к. стояла планка только в 256 Мб. Пришлось заменить на 512 и процесс пошёл.
Шаг третий
Для начала советую провести у «донора» небольшую подготовку. Это установить kudzu:
yum install kudzu
На всякий случай с помощью dd создать бэкап исходной системы. Мало ли, вдруг что-то напутаете при копировании файлов из-за невнимательности?
Далее, выключаем оба компа, подключаем к «донору» винчестер HDD, на который мы только что установили такую же систему. Загружаемся с LiveCD.
Шаг четвёртый
Заходим в консоль, под рутом создаём 2 директории: /mnt/donor/ и /mnt/pacient/. Внутри каждой директории я создал поддиректории, и туда смонтировал разделы HDD «донора» в /mnt/donor/, а разделы HDD «пациента» в /mnt/pacient/.
Теперь можно начать копировать файлы. Но прежде, очень важное замечание! Есть некоторые исключения, которые не нужно копировать от «донора»! Создадим где-нибудь файл exclude_list, содержащий эти исключения:
/etc/fstab
/boot/grub/grub.conf
/proc
/sys
/dev
/mnt
/media
У меня после перезагрузки система стартовала без проблем. В логах ни на что не ругалась. Единственное, что пришлось сделать, это подредактировать файл /etc/sysconfig/network-scripts/ifcfg-eth0, т.к. скопировался MAC-адрес с компа «донора». Ну и автозагрузка программ исправил с помощью ntsysv.
Было бы классно, если бы с виндой можно было проделать такой же фокус.
Перенос работающей Linux системы на XFS с HDD на SSD меньшего размера
Привет, Хабр! Представляю вашему вниманию русскоязычную версию статьи «Migrating CentOS system from HDD to smaller SSD on XFS filesystem» автора Denis Savenko.
Данная статья является русскоязычной версией ранее мной же опубликованной статьи на английском языке с небольшими корректировками на аудиторию. Сразу оговорюсь — я не являюсь маньяком линукса или даже профессиональным системным администратором, поэтому вполне вероятно, что порой я мог использовать необычные, или даже глупые решения. Я буду очень благодарен вам, если вы укажете мне на них в комментариях, чтобы я мог улучшить данное руководство вместо того, чтобы просто заминусовать статью. Заранее вас за это благодарю.
Я думаю я не один, кто в какой-то момент решил преобрести себе SSD-диск для работающей системы. В моём случае это была работающая система на CentOS 7 на моём крошечном домашнем сервере. Далее я хотел перенести её «как есть» на новый диск. Но, как оказалось, это не так то просто сделать, учитывая следующее:
Позвольте мне пояснить, почему описанные мной выше вещи являются серьёзными усложнениями поставленной перед нами задачи.
Во-первых, если бы размер нового диска был таким же или больше, чем у прежнего, можно было бы применить полное клонирование разделов с данными. Для этого существует масса утилит, таких как dd, ddrescue, partclone или даже clonezilla. Единственное, что нужно было бы сделать после, это подправить пару конфигурационных файлов в загрузочном разделе. Если же вы используете LVM для ваших разделов (что также является опцией по умолчанию в CentOS 7), задача могла бы быть ещё проще — в логический том добавляется новый диск, после чего с использованием команды pvmove данные переносятся на другой физический носитель внутри логического тома, и старый диск изымается из раздела, однако это невозможно при меньшем размере нового физического носителя.
И последнее, но ничуть не менее важное, если бы перед нами не стояло задачи перенести работающую сконфигурированную систему с сохранением всех метаданных, было бы проще просто установить систему с нуля на новый диск, заранее сохранив пару важных файлов. Это не подходило мне по двум причинам — во-первых волосы становились дыбом при мысли, что мне придётся повторить все те же действия, которые я выполнял на протяжении нескольких дней кряду, а во-вторых — это просто не спортивно. Я был уверен, что при должном понимании технических особенностей, перенос работающей системы на другой диск не должен был быть невыполнимой задачей.
Тем не менее, я выработал и оттестировал как минимум на двух различных окружениях подробный пошаговый план переноса работающей системы, берущий во внимание все вышеописанные ограничения.
Этап 1. Подготовка
Вот список того, что нам потребуется для переноса:
Этап 2. Миграция
Далее в данном руководстве предполагается, что все команды выполняются от имени суперпользователя ( root )
Шаг 1. Разрешение удалённого доступа (опционально)
Для меня удобнее иметь удалённый доступ к машине, на которой я буду производить перенос, т.к. я имею возможность просто копипастить заранее подготовленные команды в свой PuTTY терминал. Если вы загрузили это руководство в браузере на целевой машине, смело переходите к следующему шагу — всё, здесь описанное, вам не понадобится.
Для того, чтобы разрешить удалённый доступ, необходимо задать пароль для пользователя root и запустить SSH демон:
Теперь можно подключиться к целевой машине вашим SSH клиентом (например, PuTTY).
Шаг 2. Разбивка диска на разделы
Диск следует разбить по образу и подобию прежнего диска. Я не маньяк партиционирования, поэтому моя схема партиционирования была стандартной:
Итак, приступим к разбивке нового диска:
Раздел /boot должен быть стандартным линукс-разделом, поэтому сразу создаём файловую систему на нём:
И теперь нам необходимо создать LVM-структуру для второго раздела на диске. Назовём новую LVM-группу newmain (впоследствии переименуем):
Теперь мы готовы к созданию файловой системы на новых логических разделах:
Шаг 3. Активная фаза
Прежде чем мы начнём, сделаем обе LVM-группы активными (т.к. мы работаем из под Live CD):
Создадим директории для точек монтирования, и примонтируем к системе старые и новые разделы наших дисков:
Убедимся, что всё в порядке при помощи команды lsblk :
Пару слов об использованных флагах:
Эта процедура может занять некоторое время (зависит от объёма ваших данных). Поэтому здесь вам пригодится приготовленная заранее чашка кофе, которую самое время выпить, а то остынет.
Если всё прошло хорошо, ваши данные были полностью скопированы с сохранением всех метаданных. Теперь необходимо подправить пару конфигурационных файлов и переустановить Grub2 на новый диск, чтобы сделать его загрузочным.
Шаг 4. Делаем новый диск загрузочным
Первое, что нужно сделать, это узнать UUID для старого и нового загрузочных разделов ( /boot ) при помощи команды blkid :
Эти две команды подготовят ваши системные файлы конфигурации к новому диску.
Теперь самое время переименовать LVM-группы и отмонтировать диски:
Единственное, что осталось сделать, это переустановить загрузчик. Это необходимо делать с использованием chroot :
Шаг 5. Последний штрих
На данном этапе все данные уже должны быть перенесены и новый диск должен стать загрузочным. Нужно только перезапуститься, вынуть Live CD из привода, и выбрать новый диск в BIOS для загрузки:
На этом обязательная часть программы окончена и мы успешно перенесли работающую систему на новый диск. Старый диск можно извлекать из компьютера.
Использование старого HDD в качестве медиа-хранилища
Если вы, как и я, после переноса системы, хотите использовать ваш прежний диск как медиа-хранилище, это делается также легко.
Во-первых, переразбейте прежний диск
Мы не станем создавать файловую систему на диске напрямую. Вместо этого мы создадим новую LVM-группу, в которую добавим этот диск. Это позволит нам в будущем легко добавлять новые диски в эту группу без лишней мороки (логический диск при этом останется прежний):
Для того, чтобы сохранить изменения после перезагрузки системы, следует также добавить запись о точке монтирования в /etc/fstab :
Готово!
Теперь можно утверждать, что мы успешно перенесли работающую на xfs систему на новый диск меньшего размера. Как бонус, мы начали использовать прежний диск в качестве медиа-хранилища.
UPDATE 02.04.2018
Так как мы производили перенос системы на SSD, то, как советуют в комментариях, хорошо бы уже после переноса в работающей системе включить периодическое исполнение команды trim (сборщик мусора для SSD-дисков, который позволяет не терять в производительности через время). Для этого необходимо выполнить команду:
Пожалуйста, оставляйте ваши комментарии, если нашли ошибку или знаете способ лучше как выполнить те или иные действия. Надеюсь, данная инструкция окажется вам полезной!
Как без проблем перенести Linux на другой компьютер или поменять оборудование
Обычно, когда мы устанавливаем новую операционную систему, она всегда сопровождает нас, пока наш компьютер работает. Если в системе нет критической ошибки или если мы не хотим изменить себя, в настоящее время нет необходимости в форматировании. Однако, когда мы меняем компьютер или обновляем тот, который у нас есть, с помощью нового оборудования, большинство из нас обычно делают форматирование и установку операционной системы с нуля. Обычно это лучший способ убедиться, что все работает правильно с новым оборудованием. Однако бывают случаи, когда, если мы хотим, мы можем взять нашу операционную систему с собой. Особенно если мы используем Linux.
Windows очень чувствителен к изменениям оборудования. Мы можем изменить Оперативная память or CPU / ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР без проблем, так как для этого не нужны специальные драйверы. Но когда изменение больше, например, графика, необходимо предварительно удалить драйверы. И, когда в материнская плата, мы не сможем перезагрузить компьютер напрямую, пока не переустановим систему.
Конечно, это не исключает, что если что-то пойдет не так, давайте увидим Kernel Panic, эквивалент синего экрана Windows.
Измените оборудование или ПК в системе Linux
Linux гораздо снисходительнее, когда дело касается замены компьютерного оборудования. В зависимости от компонента, который мы собираемся изменить, нам, возможно, придется выполнить те или иные настройки.
Сменить RAM
Если мы собираемся менять только оперативную память, то ничего делать не нужно. Эта память не требует дополнительной настройки или каких-либо драйверов для работы операционной системы. Следовательно, мы можем без проблем расширять или уменьшать эту память.
Что нужно иметь в виду
Единственное, что нам нужно сделать, это убедиться, что вся память распознается в BIOS или UEFI ПК, и все. Когда мы запустим Linux, мы сможем использовать всю эту память. Кроме того, да, мы должны убедиться, что установленная память является минимумом, необходимым для правильной работы системы и программ.
Замените жесткий диск (или переместите Linux на SSD)
Когда мы меняем жесткий диск, мы обычно ищем два преимущества: больше доступного места и лучшую производительность. Особенно когда мы идем в SSD. Обычно, когда мы монтируем новый жесткий диск в ПК, мы устанавливаем операционную систему с нуля. Однако мы можем сохранить всю эту работу, если выберем клонирование диска.
Используя программу клонирования (например, Clonezilla), можно перенести все данные и все разделы со старого диска на новый SSD. Таким образом, у нас может быть наш Linux в том виде, в каком он был у нас, без необходимости переустанавливать его с нуля.
Что нужно иметь в виду
Кроме того, если мы используем SWAP, мы должны проверить, что раздел также был создан и правильно назначен, или изменить и использовать файл подкачки.
Команда «sudo update grub» обычно помогает устранить неполадки в этом разделе.
Сменить процессор или ЦП
Как и в случае с ОЗУ, изменение процессора обычно не влияет на операционный уровень дистрибутива Linux.
Что нужно иметь в виду
В зависимости от производителя и модели нашего процессора может быть выпущен ряд микрокодов для уменьшения уязвимостей или повышения производительности процессора. Обычно они устанавливаются в виде модулей ядра, и, хотя они обычно не становятся работоспособными после переключения ЦП, их может потребоваться удалить.
Заменить материнскую плату
Большинство драйверов материнской платы обычно входят в состав ядра. Обычно для этого не требуется использовать проприетарные драйверы. Поэтому смена материнской платы обычно не вызывает проблем при повторной загрузке 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? Переустановите систему
Если после вышесказанного, после замены части аппаратного обеспечения ПК у нас все еще есть проблемы, то нам остается только одно: переустановить систему.
Мы должны загрузить последнюю версию нашего дистрибутива с его основного сайта, создать загрузочный диск и приступить к установке системы с нуля. Таким образом мы гарантируем, что у вас не возникнет проблем с совместимостью или вам придется выполнять другие настройки.
перенос системы на другое железо при помощи dd
Пробовал использовать Acronis True Image и Norton Ghost, которые благополучно ничем мне не помогли. Решил попробовать заюзать dd. Делал так:
3. По окончании выполнения дампа вытащил флешку и на целевой машине выполнил
Что я забыл сделать? Скопировать MBR? Установить на sda1 флажок загрузочного?
Установить на sda1 флажок загрузочного?
На этот флаг уже никто не обращает внимания.
Сударь, позвольте, но зачем вам dd? Воспользуйтесь tar cp, на мой взгляд это проще.
И типа всё, у нас работающая система. Размеры, расположение разделов уже не важны, лишь бы распакованная система влезла.
А почему ты не сделал сразу dd if=/dev/sdb of=/dev/sdc? Тогда и mbr не надо копировать.
Не занимайся онанизмом, юзай Clonezilla. Оно тебе и MBR, и BIOS boot partition для GPT скопирует, и разделы отресайзит, если размер целевого устройства отличается. Только опции правильно выбери.
Блин, ты еще с флешкой! Это ж вообще задница! Они ж тормозные как незнамо что!
потому что диски находятся в разных машинах =)
я имел ввиду sdc вместо sdc1
На этот флаг уже никто не обращает внимания.
Отнюдь. Я встречался с ситуацией, когда обращает внимание BIOS материнки, хотя вот ему-то должно быть по барабану: его дело тупо MBR загрузить. У Intel (да, именно их боксовые продукты) свои тараканы в голове.
Ну, еще починить fstab нужно, как минимум.
Это если там UUID вместо /dev/sda1? Просто я выпиливаю всегда эти идентификаторы и заменяю файлами устройств, поэтому редко когда руками приходится трогать после такой перезаливки.
Ты скопировал раздел с системой, теперь тебе нужно на новой системе установить загрузчик (grub). Делается это при помощи grub-install /dev/sda из какой-нибудь live-cd убунты или любого другого линукса. После этого уже можно будет поднять систему.
Потом не помешает при помощи fdisk поменять тип раздела /dev/sda1 на 83 (Linux) и пометить его как загрузочный (не обязательно, но лучше сделать); обновить fstab; обновить настройки grub (в ubuntu/debian это делается командой update-grub2 ).
А можно поподробнее, в чем это выражется? И как BIOS реагирует на неразмеченные диски или GPT?
Если там было UUID, то как раз ничего трогать не нужно. Это идентификатор ФС, который скопировался вместе с ней. А вот если там раньше было /dev/sdb1, то придется вручную менять на /dev/sda1.
я выпиливаю всегда эти идентификаторы и заменяю файлами устройств
В современных дистрах никто не гарантирует, что при следующей загрузке порядок устройств сохранится. В частности, usb-устройства, подключенные во время загрузки, могут влезть между устройствами sata. Очень весело получается, когда система не поднимается из-за вставленной в usb флешки (а казалось бы, те времена, когда комп не поднимался из-за забытой в дисководе дискеты, канули в лету вместе с дисководами).
Это был ответ на копирование через tar. В этом случае, UUID менять нужно, т.к. нам в любом случае придется создавать новую ФС.
В том, что если ни на одном разделе нет флага, hdd не считается загрузочным, то есть, вообще. Если хоть где-то есть, грузится mbr, а не br раздела с флагом. Флаг используется просто в принципе. Матерился я сильно, когда на это наступил однажды.
Удивительное рядом! Какому, интересно, гению пришло в голову добавить такую проверку и, главное, зачем?!
а) ну так там диск терабайтный, а у меня флешка на 16 ГБ
перенос системы на другое железо при помощи dd
ну так там диск терабайтный, а у меня флешка на 16 ГБ
tar + scp/rsync + livecd и чуть-чуть подумать головой 🙂
На этот флаг уже никто не обращает внимания.
Расскажи об этом например syslinux-у
> sudo dd if=/dev/sdb1 of=/dev/sdc1 bs=4096
> sudo dd if=/dev/sdc1 of=/dev/sda1 bs=4096
> а) ну так там диск терабайтный, а у меня флешка на 16 ГБ
unixforum.org
Форум для пользователей UNIX-подобных систем
Клонирование Linux на другой ПК
Модератор: SLEDopit
Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 13:51
Re: Клонирование Linux на другой ПК
Сообщение apprentice » 28.09.2009 13:55
в Linux есть штатное средство копирования дисков dd
да, копировать лучше загрузившись с LiveCD
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 14:02
Re: Клонирование Linux на другой ПК
Сообщение rm_ » 28.09.2009 14:08
Подойдёт, dd + netcat, и с одной машины можно расклонировать её диск на все остальные.
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 14:10
Re: Клонирование Linux на другой ПК
Сообщение newsrc » 28.09.2009 14:11
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 14:17
Re: Клонирование Linux на другой ПК
Сообщение skor » 28.09.2009 14:39
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 14:48
Re: Клонирование Linux на другой ПК
Сообщение drBatty » 28.09.2009 14:52
Скоро придёт
Осень
Re: Клонирование Linux на другой ПК
Сообщение newsrc » 28.09.2009 14:54
Re: Клонирование Linux на другой ПК
Сообщение rm_ » 28.09.2009 14:54
Если по сети, то вот так:
На источнике (IP-адрес к примеру 10.0.0.1):
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 14:57
Re: Клонирование Linux на другой ПК
Сообщение newsrc » 28.09.2009 15:06
У человека нет ОС на ПК. А если нет и CD-ROM, то в любом случае ПК разбирать придется. Да и если не гигабитовая сеть, то однозначно дольше будет. В своё время прошел через это: на 28 машин заливал Fedora 6
Re: Клонирование Linux на другой ПК
Сообщение drBatty » 28.09.2009 15:06
Скоро придёт
Осень
Re: Клонирование Linux на другой ПК
Сообщение newsrc » 28.09.2009 15:08
Re: Клонирование Linux на другой ПК
Сообщение drBatty » 28.09.2009 15:11
Скоро придёт
Осень
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 15:22
Re: Клонирование Linux на другой ПК
Сообщение rm_ » 28.09.2009 15:28
Описанный выше вариант само собой выполняется не из «осей» а при загрузке целевых машин с LiveCD. Проверьте, умеют ли Ваши машины грузиться с USB CD/DVD.
Re: Клонирование Linux на другой ПК
Сообщение newsrc » 28.09.2009 15:29
USB-привод CD-ROM? Что мешает с него загрузится с помощью liveCD?
Ну а если сеть, то решение Вам написали.
Re: Клонирование Linux на другой ПК
Сообщение Goodvin » 28.09.2009 15:49
Форумный поиск по слову «Клонирование»:
Вопросы клонирования диска и переноса системы рассматривались многократно.
Re: Клонирование Linux на другой ПК
Сообщение Reznik » 28.09.2009 16:19
Goodvin
Смотрел я эти темы до этого. Там не рассмотрены варианты с переносом системы по сети
Может кто-нить объяснить как это сделать по сети, по пунктам? А то не пойму никак
Re: Клонирование Linux на другой ПК
Сообщение Goodvin » 28.09.2009 16:46
Эти программы позволяют работать с образами через сеть.
Ссылки на них даны именно на этом форуме.
Кроме того, есть темы, где непосредственно рассматриваются вопросы сетевого клонирования/распространения систем.
установить на 10 машин
Перенос системы Ubuntu с одного ноутбука на другой
Вопрос по избитому клонированию
Goodvin
Смотрел я эти темы до этого. Там не рассмотрены варианты с переносом системы по сети
Может кто-нить объяснить как это сделать по сети, по пунктам? А то не пойму никак
Прочитайте перед тем, как задать вопрос:
при создании темы в этом разделе предполагается, что вы обладете базовыми знаниями о работе GNU/linux
и имеете представление об использовании средств настройки, предоставленных вашим дистрибутивом,
а также понимаете назначение и основные принципы работы используемых вами сервисов.
при создании темы с описанием проблемы
— полностью описывайте проблему
— описывайте свои действия, предпринятые для решения проблемы
— приводите свои конфиги, логи или сообщения об ошибках
— указывайте, пожалуйста, свой дистрибутив
Начните уже делать/искать что-либо самостоятельно.