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

 

Команда dd Linux

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

Для решения всех этих задач используется утилита dd linux, которая просто выполняет копирование данных из одного места в другое на двоичном уровне. Она может скопировать CD/DVD диск, раздел на диске или даже целый жесткий диск. В этой статье мы рассмотрим что из себя представляет команда dd linux, основные ее опции и параметры, а также как ею пользоваться.

Как работает команда dd?

Сначала нужно понять как работает команда dd и что она делает. Фактически, это аналог утилиты копирования файлов cp только для блочных данных. Утилита просто переносит по одному блоку данных указанного размера с одного места в другое. Поскольку в Linux все, в том числе, устройства, считается файлами, вы можете переносить устройства в файлы и наоборот.

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

Команда dd

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

$ dd if= источник_копирования of= место_назначения параметры

С помощью параметра if вам нужно указать источник, откуда будут копироваться блоки, это может быть устройство, например, /dev/sda или файл — disk.img. Дальше, с помощью параметра of необходимо задать устройство или файл назначения. Другие параметры имеют такой же синтаксис, как if и of.

Теперь давайте рассмотрим дополнительные параметры:

  • bs — указывает сколько байт читать и записывать за один раз;
  • cbs — сколько байт нужно записывать за один раз;
  • count — скопировать указанное количество блоков, размер одного блока указывается в параметре bs;
  • conv — применить фильтры к потоку данных;
  • ibs — читать указанное количество байт за раз;
  • obs — записывать указанное количество байт за раз;
  • seek — пропустить указанное количество байт в начале устройства для чтения;
  • skip — пропустить указанное количество байт в начале устройства вывода;
  • status — указывает насколько подробным нужно сделать вывод;
  • iflag, oflag — позволяет задать дополнительные флаги работы для устройства ввода и вывода, основные из них: nocache, nofollow.

Это были все основные опции, которые вам могут понадобиться. Теперь перейдем ближе к практике и рассмотрим несколько примеров как пользоваться утилитой dd linux.

Как пользоваться dd?

Обычные пользователи используют команду dd чаще всего для создания образов дисков DVD или CD. Например, чтобы сохранить образ диска в файл можно использовать такую команду:

sudo dd if=/dev/sr0 of=~/CD.iso bs=2048 conv=noerror

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

dd if=/dev/sda of=~/disk.img

В вашей домашней папке будет создан файл с именем disk1.img, который в будущем можно будет развернуть и восстановить испорченную систему. Чтобы записать образ на жесткий диск или раздел достаточно поменять местами адреса устройств:

dd if=~/disk.img of=/dev/sda

Очень важная и полезная опция — это bs. Она позволяет очень сильно влиять на скорость работы утилиты. Этот параметр позволяет установить размер одного блока при передаче данных. Здесь нужно задать цифровое значение с одним из таких модификаторов формата:

Команда dd linux использует именно такую систему, она сложная, но от этого никуда не деться. Ее придется понять и запомнить. Например, 2b — это 1 килобайт, и 1k, это тоже 1 килобайт, 1М — 1 мегабайт. По умолчанию утилита использует размер блока — 512 байт. Например, чтобы ускорить копирование диска можно брать блоки размером по 5 мегабайт. Для этого применяется такая команда:

dd if=/dev/sda of=~/disk.img bs=5M

Следующий параметр — это count. С помощью него можно указать сколько блоков необходимо скопировать. Например, мы можем создать файл размером 512 мегабайт, заполнив его нулями из /dev/zero или случайными цифрами из /dev/random:

Читать статью  Как увеличить свободное место на системном диске с Windows 10

sudo dd if=/dev/zero of=file.img bs=1M count=512

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

sudo dd if=/dev/sda of=mbr.img bs=1b count=1

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

Если образ диска слишком большой, можно перенаправить весь вывод нестандартный поток вывода утилиты gzip:

dd if =/dev/sda2 | bzip2 disk.img.bz2

Также можно использовать утилиту dd linux для копирования файлов, хотя это и не является ее прямым предназначением:

dd if=/home/sergiy/test.txt of=/home/sergiy/test1.txt

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

sudo dd if=/dev/zero of=/dev/sdb

Такое использование dd приводит к тому что весь диск будет полностью стерт.

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

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

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

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

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

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

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

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

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

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

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

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

dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync

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

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

dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync

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

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

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

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

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

Читать статью  Фитнес оборудование для эффективных тренировок дома

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

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

sudo apt install partimage

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

sudo partimage

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

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

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

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

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

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

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

sudo apt install partclone
partclone.[fstype]

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

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

partclone.ext3 -c -d -s /dev/hda1 -o 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 легко

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

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

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка / 5. Количество оценок:

Оценок пока нет. Поставьте оценку первым.

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

duplicate background featured

LinuxCool.net

Когда приходит время стереть, создать резервную копию или восстановить данные в Linux, вы можете выбрать несколько приложений. GParted — один из самых проверенных вариантов. GNOME Disks — более современная альтернатива, которая отлично смотрится в среде рабочего стола GNOME. Но независимо от того, какую операционную систему Linux вы используете, есть один вариант, который всегда работает — dd.

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

Зачем использовать dd?

Независимо от того, работаете ли вы на настольном компьютере или на сервере, dd просто работает. dd начинался как команда Unix, поэтому, помимо Linux, он поддерживает другие Unix-подобные операционные системы, такие как FreeBSD и macOS.

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

Читать статью  Acronis Disk Director: разбиваем диски без проблем

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

Вы нервничаете? Хорошо. Даже когда вы станете экспертом по dd, всегда нужно вводить команды аккуратно. Невнимательность может, в худшем случае, испортить оборудование, а в более вероятном — привести к потере данных. Итак, давайте приступим.

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

Клонирование диска — это надежный способ создания резервной копии компьютера. Вы можете сделать резервную копию данных на переносной жесткий диск или в Dropbox, но это сохранит только ваши файлы.

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

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

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

Начните с открытия терминала. Для выполнения любых команд dd вам понадобятся права администратора. Вы можете ввести su для входа в систему от имени администратора или ввести sudo в начале команды dd.

Когда вы будете готовы к копированию, введите команду ниже. Обратите внимание, что при этом будут удалены все существующие данные на втором диске, поэтому не забудьте предварительно создать резервную копию.

dd if=/dev/sdX of=/dev/sdY

Теперь давайте разберемся, что происходит. dd — это команда. if — это вход, то есть место, которое вы хотите скопировать. of — это выход или место, которое вы заменяете своей копией.

Прочтите: Установите Google Assistant на любой ПК под управлением Windows, Mac или Linux

sdX и sdY означают диски, с которыми вы взаимодействуете. Дискам часто присваивается имя, например /dev/sda, /dev/sdb или /dev/sdc. Имена можно узнать с помощью редактора разделов. Или, поскольку вы уже находитесь в терминале, вы можете использовать команду lsblk.

Создание образа диска

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

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

dd if=/dev/sdX of=path/to/your-backup.img

Чтобы сэкономить место, можно попросить dd сжать резервную копию.

dd if=/dev/sdX | gzip -c > path/to/your-backup.img.gz

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

Восстановление диска с помощью dd

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

dd if=/dev/sdY of=/dev/sdX

При восстановлении из файла образа применяется та же концепция:

dd if=path/to/your-backup.img of=/dev/sdX

Если ваш файл образа сжат, то все происходит немного иначе. Вместо этого используйте эту команду:

gunzip -c /path/to/your-backup.img.gz | dd of=/dev/sdX

Чтобы было понятно, gunzip — это «g unzip», то есть противоположность «g zip». Эта команда распаковывает вашу резервную копию. Затем dd заменяет существующий диск этим образом.

Параметры для рассмотрения

Вы можете изменить команду, добавив в конец параметр. По умолчанию dd может занять некоторое время для передачи данных. Вы можете ускорить процесс, увеличив размер блока. Для этого добавьте bs= в конце.

dd if=/dev/sdX of=/dev/sdY bs=64

Этот пример увеличивает размер блока по умолчанию с 512 байт до 64 килобайт.

conv=noerror указывает dd продолжать работу, несмотря на возникающие ошибки. По умолчанию dd остановится, что приведет к созданию неполного файла. Помните, что игнорирование ошибок не всегда безопасно. Результирующий файл может быть поврежден.

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

При желании вы можете объединить эти две последние функции как conv=noerror,sync. После запятой пробел не ставится.

Знакомство с dd

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

Нужна дополнительная информация по работе с dd? Вики-страница довольно подробна. Также есть отличная статья на вики Arch Linux. Опять же, неважно, используете ли вы Arch или нет. dd работает одинаково независимо от операционной системы Linux.

Источник https://losst.pro/komanda-dd-linux

Источник https://ip-calculator.ru/blog/ask/klonirovanie-zhyostkogo-diska-na-linux/

Источник https://linuxcool.net/instrukczii/kak-legko-klonirovat-i-vosstanavlivat-obraz-diska-linux-s-pomoshhyu-dd/