Linux клонирование системного диска

Клонирование жёсткого диска на Linux

То, что вы работаете в операционной системе Linux, не означает, что вы не будете время от времени сталкиваться с проблемами. Всегда хорошо иметь план резервного копирования, на случай, если возникнет проблема. Возможно, редкий вирус Linux будет атаковать; возможно, вы будете жертвами мошенников-вымогателей. Может быть, жесткий диск (HDD) выйдет из строя.

Клонируя жесткий диск Linux, вы создаете образ диска, который можно восстановить позже. Но как вы клонируете свой жесткий диск Linux?

Инструменты клонирования дисков Linux

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

В Linux есть четыре решения для клонирования дисков, которые вы должны рассмотреть:

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

Давайте рассмотрим каждый из четырех основных вариантов клонирования диска в Linux.

1. dd: инструмент для клонирования Native Linux

Возможно, самый мощный инструмент Linux из всех, dd (иногда называемый «разрушитель диска»), может клонировать весь жесткий диск или раздел диска в другой. Но в случае неправильного использования он может удалить содержимое вашего диска.

Таким образом, вы должны использовать с особой осторожностью. Вы найдете dd встроенный в большинство операционных систем Linux. Если нет, установите его из менеджера пакетов. Чтобы клонировать жесткий диск вашего компьютера, используйте команду:

Здесь sdX — это исходный диск, а sdY — место назначения. Числовое значение 64K соответствует команде размера блока, bs. Значение по умолчанию составляет 512 байт, что очень мало, поэтому лучше включить 64K или более 128K в качестве условия. Однако: хотя больший размер блока делает передачу быстрее, меньший размер блока делает передачу более надежной.

Если вы хотите клонировать только раздел вашего диска, используйте

Как вы можете видеть, раздел sda1 (то есть раздел 1 на устройстве sda) будет клонирован в sdb1 (вновь созданный раздел 1 на устройстве sdb), например, вторичный или внешний жесткий диск, подключенный к вашему компьютеру.

Нажмите Enter, чтобы запустить команду. Сколько времени это займет, будет зависеть от размера диска или раздела. Просто убедитесь, что объем назначения достаточно велик для его хранения!

2. Инструмент клонирования разделов Linux, Partimage

Если вы столкнулись с проблемами, пытаясь разобраться с инструкциями с помощью dd, или предпочли бы избежать случайного удаления вашего жесткого диска с опечаткой, partimage также доступен для большинства дистрибутивов и не несет риска «уничтожения диска»!

Однако partimage не поддерживает файловую систему ext4, поэтому избегайте ее использования для клонирования дисков или разделов этого типа. Однако при необходимости его можно использовать для клонирования дисковых форматов Windows (FAT32 или NTFS, хотя это экспериментально), а также для более широко используемой файловой системы Linux ext3 и других более старых альтернатив.

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

Для Ubuntu установите:

Запустите из командной строки:

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

Нажмите вправо на клавиши со стрелками, чтобы перейти к следующему разделу, затем Image file to create/use и дайте ему имя (или введите имя файла изображения, которое будет восстановлено).

Выберите Action to be done (убедитесь, что у выбранной опции есть звездочка) и нажмите F5, чтобы продолжить. На следующем экране выберите уровень сжатия и предпочитаемые параметры. Вы также можете выбрать режим разделения изображений и указать, что должно произойти после создания резервной копии.

Нажмите F5, чтобы продолжить, подтвердите данные, затем нажмите OK, чтобы начать процесс. Скорость этого будет зависеть от мощности вашего компьютера.

Если вы ищете быстрое и грязное, но безопасное решение для клонирования дисков для Linux, используйте partimage.

3. Partclone: ​​программное обеспечение для создания разделов и клонирования

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

Читайте также:  Как разбивать диски для linux

… Где [fstype] — тип файловой системы раздела, который вы хотите клонировать.

Следующая команда создаст образ диска hda1 (жесткий диск 1, раздел 1) с именем hda1.img:

Возможно, вы захотите восстановить это изображение, поэтому используйте

partclone.extfs -r -d -s hda1.img -o /dev/hda1

Более подробную информацию об использовании можно найти на сайте partclone.

4. Клонируйте свой диск Linux с помощью Clonezilla

Для более гибкого решения, почему бы не попробовать Clonezilla? Это популярное решение для аварийного восстановления основано на Partclone и предназначено для ряда задач клонирования дисков. Поддерживаются все ожидаемые файловые системы в Linux, Windows и MacOS (и за ее пределами).

В отличие от dd и Partclone, Clonezilla доступен в виде загрузочного ISO. Вы можете записать это на DVD или USB-накопитель, чтобы полностью клонировать жесткий диск Linux. Clonezilla проста в использовании, с меню на клавиатуре, а не с непонятными командами, так что любой может справиться с этим.

Хотя Clonezilla можно настроить как отдельную утилиту, вы можете предпочесть использовать ее как часть инструмента восстановления Boot CD от Hiren.

Вы также можете использовать Clonezilla на профессиональном уровне, чтобы создавать изображения схожих настроек ПК с одной и той же операционной системой.

Клонировать ваш жесткий диск Linux легко

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

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

Источник

Как клонировать раздел или жесткий диск в Linux

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

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

Как клонировать раздел Linux

С помощью команды dd вы можете скопировать весь жесткий диск или только раздел Linux. Давайте начнем с клонирования одного из наших разделов. В моем случае у меня есть следующие диски: /dev/sdb, /dev/sdc.. Я буду клонировать файл /dev/sdb1/ в файл /dev/sdc1.

Сначала перечислите эти разделы с помощью команды fdisk, как показано ниже.

Теперь клонируйте раздел /dev/sdb1/ в /dev/sdc1, используя следующую команду dd.

Приведенная выше команда говорит dd использовать /dev/sdb1 в качестве входного файла и записать его в выходной файл /dev/sdc1.

Клонирование раздела Linux с помощью команды dd

После клонирования раздела Linux вы можете проверить оба раздела с помощью команды:

Как клонировать жесткий диск Linux

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

Это должно было скопировать диск /dev/sdb с его разделами на целевой жесткий диск /dev/sdc. Вы можете проверить эти изменения, перечислив оба диска с помощью команды fdisk.

Как сделать резервную копию MBR в Linux

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

# dd if=/dev/sda of=/backup/mbr.img bs=512 count=1.

Приведенная выше команда говорит dd скопировать /dev/sda в /backup/mbr.img с шагом 512 байт, а опция count говорит скопировать только 1 блок.

Другими словами, вы говорите dd скопировать первые 512 байт из /dev/sda в предоставленный вами файл.

Резервное копирование MBR в Linux

Вот и все! команда dd — это мощный инструмент Linux, который следует использовать при копировании или клонировании разделов или дисков Linux. Но будьте очень осторожны так как любая неточность может стереть ваши данные.

Источник

Перенос работающей Linux системы на XFS с HDD на SSD меньшего размера

Привет, Хабр! Представляю вашему вниманию русскоязычную версию статьи «Migrating CentOS system from HDD to smaller SSD on XFS filesystem» автора Denis Savenko.

Данная статья является русскоязычной версией ранее мной же опубликованной статьи на английском языке с небольшими корректировками на аудиторию. Сразу оговорюсь — я не являюсь маньяком линукса или даже профессиональным системным администратором, поэтому вполне вероятно, что порой я мог использовать необычные, или даже глупые решения. Я буду очень благодарен вам, если вы укажете мне на них в комментариях, чтобы я мог улучшить данное руководство вместо того, чтобы просто заминусовать статью. Заранее вас за это благодарю.

Читайте также:  Простой vpn для linux

Я думаю я не один, кто в какой-то момент решил преобрести себе SSD-диск для работающей системы. В моём случае это была работающая система на CentOS 7 на моём крошечном домашнем сервере. Далее я хотел перенести её «как есть» на новый диск. Но, как оказалось, это не так то просто сделать, учитывая следующее:

  • Новый SSD диск был гораздо меньшего объёма, чем уже установленный HDD (серьёзно, SSD всё ещё весьма дорог по сравнению с дисковыми накопителями).
  • Разделы на прежнем диске были отформатированы в файловой системе xfs . Это и не удивительно, учитывая тот факт, что CentOS, начиная с 7-ой версии предлагает эту файловую систему «по умолчанию» (наряду и с другими системами на основе RHEL, такими как, собственно, Red Hat Enterprise Linux 7, Oracle Linux 7 или Scientific Linux 7).
  • Работающая система должна остаться без изменений, включая конфигурацию, установленное ПО, права доступа и прочие атрибуты файловой системы.

Позвольте мне пояснить, почему описанные мной выше вещи являются серьёзными усложнениями поставленной перед нами задачи.

Во-первых, если бы размер нового диска был таким же или больше, чем у прежнего, можно было бы применить полное клонирование разделов с данными. Для этого существует масса утилит, таких как dd, ddrescue, partclone или даже clonezilla. Единственное, что нужно было бы сделать после, это подправить пару конфигурационных файлов в загрузочном разделе. Если же вы используете LVM для ваших разделов (что также является опцией по умолчанию в CentOS 7), задача могла бы быть ещё проще — в логический том добавляется новый диск, после чего с использованием команды pvmove данные переносятся на другой физический носитель внутри логического тома, и старый диск изымается из раздела, однако это невозможно при меньшем размере нового физического носителя.

Затем, если бы использовалась файловая система, отличная от xfs , например, достаточно популярная ext4 , можно было бы «сжать» старый раздел диска до размеров нового диска. Затем выполняются какие либо действия из описанных выше и вы в дамках. Однако, изменение размера разделов в сторону уменьшения на xfs невозможно в силу её реализации — вы можете только увеличить разделы при её использовании.

И последнее, но ничуть не менее важное, если бы перед нами не стояло задачи перенести работающую сконфигурированную систему с сохранением всех метаданных, было бы проще просто установить систему с нуля на новый диск, заранее сохранив пару важных файлов. Это не подходило мне по двум причинам — во-первых волосы становились дыбом при мысли, что мне придётся повторить все те же действия, которые я выполнял на протяжении нескольких дней кряду, а во-вторых — это просто не спортивно. Я был уверен, что при должном понимании технических особенностей, перенос работающей системы на другой диск не должен был быть невыполнимой задачей.

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

Этап 1. Подготовка

Вот список того, что нам потребуется для переноса:

  1. Собственно, подлежащая миграции работающая система. В моём случае это была CentOS 7.4, но я уверен, что ситуация не будет отличаться от любой другой линукс-системы, работающей на xfs .
  2. Live CD или флешка с каким-либо дистрибутивом линукс. Для простоты, я буду отталкиваться от того же CentOS 7.4 Live CD. Я предпочитаю версию с Gnome, но это уже дело вкуса. Выбор этого дистрибутива обусловлен тем, что во-первых, он у меня уже был, а во-вторых с ним сразу поставляется нужный нам для переноса набор утилит, а в частности xfsdump . Я не буду останавливаться здесь на том, как создать загрузочный диск или флешку с Live CD дистрибутивом, так как предполагаю, что хабрачитатель должен справиться с этим и без меня.
  3. Объём данных на прежнем накопителе не должен превышать размер нового диска (будь то SSD или любой другой диск меньшего размера). В моём случае занято было всего порядка 10 ГБ, поэтому я даже не задумывался от чего нужно избавляться.
  4. Чашка горячего кофе.

Этап 2. Миграция

Глотнём кофе и приступим к процессу переноса с запуска системы с подготовленного Live CD дистрибутива. Затем откройте терминал и перейдите в режим суперпользователя при помощи команды su —

Далее в данном руководстве предполагается, что все команды выполняются от имени суперпользователя ( root )

Шаг 1. Разрешение удалённого доступа (опционально)

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

Для того, чтобы разрешить удалённый доступ, необходимо задать пароль для пользователя root и запустить SSH демон:

Читайте также:  Мини пк windows 10 celeron

Теперь можно подключиться к целевой машине вашим SSH клиентом (например, PuTTY).

Шаг 2. Разбивка диска на разделы

Вы можете использовать вашу любимую утилиту для этого. Например, в Gnome есть предустановленная утилита для управления дисками. Также в интернетах хвалят gparted , однако я намеренно использовал fdisk , т.к, например, gparted просто не распознавал мой NVMe SSD-диск.

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

  • /boot — стандартный раздел размером 1GB;
  • swap раздел размером 4G;
  • / — корневой раздел, LVM volume group с наименованием «main», занимающий оставшееся пространство на диске.

Итак, приступим к разбивке нового диска:

Раздел /boot должен быть стандартным линукс-разделом, поэтому сразу создаём файловую систему на нём:

И теперь нам необходимо создать LVM-структуру для второго раздела на диске. Назовём новую LVM-группу newmain (впоследствии переименуем):

Теперь мы готовы к созданию файловой системы на новых логических разделах:

Шаг 3. Активная фаза

Прежде чем мы начнём, сделаем обе LVM-группы активными (т.к. мы работаем из под Live CD):

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

Убедимся, что всё в порядке при помощи команды lsblk :

Если вы видите что-то наподобие этого, вы всё сделали верно. И здесь начинается настоящая магия — мы собираемся использовать xfsdump для миграции наших данных. Эта утилита достаточно умная и знает о внутреннем устройстве файловой системы xfs , что позволяет ей копировать только занятые данными блоки, что, в свою очередь, во-первых позволяет нам копировать данные на диск меньшего размера, а во-вторых сильно ускоряет процесс переноса. Итак, давайте сделаем дамп данных при помощи этой утилиты, и на лету развернём эти данные на новом месте:

Пару слов об использованных флагах:

  • -J уменьшает размер фидбека;
  • — сообщает xfsdump и xfsrestore использовать стандартные потоки stdout и stdin соответственно вместо файлов.

Эта процедура может занять некоторое время (зависит от объёма ваших данных). Поэтому здесь вам пригодится приготовленная заранее чашка кофе, которую самое время выпить, а то остынет.

Если всё прошло хорошо, ваши данные были полностью скопированы с сохранением всех метаданных. Теперь необходимо подправить пару конфигурационных файлов и переустановить Grub2 на новый диск, чтобы сделать его загрузочным.

Шаг 4. Делаем новый диск загрузочным

Первое, что нужно сделать, это узнать UUID для старого и нового загрузочных разделов ( /boot ) при помощи команды blkid :

Предполагая, что sda1 — прежний раздел \boot , и nvme0n1p1 — новый, производим замену UUID в конфигурационных файлах на новой точке монтирования:

Эти две команды подготовят ваши системные файлы конфигурации к новому диску.

Теперь самое время переименовать LVM-группы и отмонтировать диски:

Единственное, что осталось сделать, это переустановить загрузчик. Это необходимо делать с использованием chroot :

Шаг 5. Последний штрих

На данном этапе все данные уже должны быть перенесены и новый диск должен стать загрузочным. Нужно только перезапуститься, вынуть Live CD из привода, и выбрать новый диск в BIOS для загрузки:

Если что-то пошло не так и система не загружается, вы всегда можете «откатиться» на старый диск, просто запустившись с Live CD повторно и переименовав LVM-группы обратно, выполнив vgrename -v <,new>main и vgrename -v main , и затем снова перезапуститься.

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

Использование старого HDD в качестве медиа-хранилища

Если вы, как и я, после переноса системы, хотите использовать ваш прежний диск как медиа-хранилище, это делается также легко.

Во-первых, переразбейте прежний диск

Мы не станем создавать файловую систему на диске напрямую. Вместо этого мы создадим новую LVM-группу, в которую добавим этот диск. Это позволит нам в будущем легко добавлять новые диски в эту группу без лишней мороки (логический диск при этом останется прежний):

Для того, чтобы сохранить изменения после перезагрузки системы, следует также добавить запись о точке монтирования в /etc/fstab :

Готово!

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

UPDATE 02.04.2018

Так как мы производили перенос системы на SSD, то, как советуют в комментариях, хорошо бы уже после переноса в работающей системе включить периодическое исполнение команды trim (сборщик мусора для SSD-дисков, который позволяет не терять в производительности через время). Для этого необходимо выполнить команду:

Это включит на новой системе исполнение trim раз в неделю на любой systemd системе. В случае, если вы или ваша система не используете systemd , есть исчерпывающее руководство от DigitalOcean на почти любой случай.

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

Источник

Оцените статью