Нажмите "Enter", чтобы перейти к содержанию

Копирование разделов диска: 10 лучших программ для клонирования жесткого диска

Содержание

как обойтись загрузочной флешкой там, где раньше нужен был Акронис / Хабр

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

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

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

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

В большинстве случаев это было не фатально. Вместо привычного foobar всегда можно послушать музыку на Rhythmbox. Вместо Microsoft Office есть OpenOffice. Да, его совместимость с продуктом корпорации зла порой оставляет желать лучшего, но им вполне можно пользоваться для решения повседневных задач среднестатистического пользователя. Обо всяких Файрфоксах, Операх и Хромах я вообще молчу.

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

Программой, которая использовалась в таких ситуациях, был Acronis. Интуиция подсказывала, что на выяснение того, как обойтись без него, уйдёт не меньше недели, а результат обычно был нужен край через полчаса, поэтому выяснение откладывалось, откладывалось и откладывалось.

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

И отправился гуглить.

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

Теперь, когда ужасы гугления позади, я понимаю, что всё действительно достаточно просто и хочу оформить результаты своих изысканий в виде краткого руководства по работе с образами дисков в GNU/Linux, обращённого в первую очередь к тем, кто привык к Акронису или другой подобной ему программе. Мне в свое время такой документ бы очень сильно помог, надеюсь, что он поможет и кому-то ещё.

Acronis

В Акронисе всё было просто и понятно: оконный интерфейс, подсказки и предшествующий опыт работы с образами компакт дисков делали процесс несложным. Снял образ, вставил новый винт, развернул образ на него — даже и рассказывать то не о чем. В случае с Линуксом процесс захлебнулся на этапе снятия образа — как это сделать было абсолютно неясно. Специальной программки с подсказками не нашлось, программки, которая добавляла в список устройств виртуальный DVD — наподобие Daemon Tools тоже. Да и сам список устройств оказался достаточно проблематичен, поэтому начать можно прямо с него.

Просмотр перечня накопителей

Для каждого подключенного накопителя (винчестера, флешки) в директории /dev можно найти соотвествующий ему файл. Его название состоит из букв
sd
и буквы, обозначающей номер устройства. То есть винчестеру, подключенному к первому каналу, будет соответствовать файл sda, второму sdb и так далее. Соответственно самый простой способ посмотреть список устройств — ls -1 /dev/sd[a-z]. Эта команда покажет список накопителей, но не даст нам никакой информации о них. А нам нужно хотя бы увидеть список разделов.

Просмотр перечня разделов на накопителе

Каждому разделу в директории dev тоже соотвествует файл. Его название строится из названия файла, соотвествующего накопителю и номера раздела. То есть для накопителя sda, на котором есть 2 раздела, в директории /dev будет создано 2 файла — sda1 и sda2. Посмотреть перечень разделов на накопителе sda можно командой ls -1 /dev/sda[0-9] полный перечень разделов на всех устройствах получается на выводе команды ls -1 /dev/sd[a-z][0-9]
, а если есть необходимость включить в перечень и сами устройства, то можно просто написать ls -1 /dev/sd*, что значительно менее осмысленно, зато коротко и главное работает. Или, как подсказывают в комментариях, есть ещё вариант cat /proc/partitions

Часто владелец может опознать диск просто по такому перечню (это когда дисков у него не 452), но если этого недостаточно, то можно воспользоваться программой hdparm.

Конкретно hdparm -I /dev/sda выведет подробную информацию об устройстве /dev/sda.

Эту же информацию, но в рассеянном по разным файлам виде, можно найти в директории /sys/block/sda. Например модель диска находится в файле /dev/block/sda/device/model.

Если и этого недостаточно, то остается только по очереди монтировать устройства и смотреть что на них записано. Но это уже совсем другая история.

Снятие образа

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

Общие рекомендации

Образом диска мы обычно называем копию диска на уровне разделов или всего устройства. И если пользователь Windows в ответ на вопрос, как эту копию сделать, обычно слышит рекомендацию воспользоваться специализированным софтом, то в Линуксе всё не так.

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

Так оно и есть. Пусть нам надо снять образ раздела /dev/sda2 (на нём Windows 7 обычно держит диск С:) и сохранить его в файл с названием win_c.img.

Для этого достаточно написать cp /dev/sda2 win_c.img. Или cat /dev/sda2 >win_c.img

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

Правильный способ

Как вы наверное уже догадываетесь, добиться желаемого можно не одним и даже не двумя, остроумными и не очень способами, но правильнее и проще всего на мой взгляд, использовать утилиту ddrescue. Что существенно важно — имеется в виду GNU ddrescue, а не давно уже устаревший оригинал.

Она, также как и cp, занимается копированием файлов, но в случае нахождения ошибок, ddrescue не прервёт работу с радостным сообщением о том, что пациент скорее мёртв, чем жив, а запомнит место с ошибкой, чтобы вернуться к нему позже и попробовать прочитать заново. Теперь уже медленно и нежно.

Используется ddrescue следующим образом:
ddrescue <ключи> <файл который копируем> <новый файл, в который скопируем старый> <лог файл>

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

Команда, которая выполнит операцию, аналогичную описанной выше, будет выглядеть так:

ddrescue /dev/sda2 win_c.img win_c.img.log

Кстати, в данный момент я молчаливо подразумеваю, что жёсткий диск, с которого мы снимаем копию более-менее исправен и фокусов не выкидывает. Если с диском есть серьёзные проблемы, то лучше предварительно ознакомиться с подробностями использования ddrescue, например тут. и применить эти знания при снятии образа.

Неправильный способ

Часто можно встретить рекомендации использовать для копирования файла устройства или раздела программу под названием dd.
Как правило, для снятия образа предлагается сделать что-то вот такое:

dd if=/dev/sda2 of=win_c.img

Не делайте так! Хотя семантически подход верен (произойдёт копирование одного файла в другой), последствия могут быть очень печальны. Да, dd превосходит cp в том отношении, что при обнаружении ошибки cp прекратит работу, а dd не прекратит, но если на диске есть битые или просто плохо читаемые сектора, то dd будет продолжать попытки считать их содержимое пока из винчестера не повалит дым.

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

Короче, используйте ddrescue. А если кроме dd ничего нет, не забывайте про аргумент noerror.

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

Просмотр содержимого образа раздела (логического диска)

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

Итак, у нас уже есть образ, снятый с диска C: операционной системы Windows 7. Мы назвали образ win_c.img и хотим увидеть его содержимое в заранее созданной директории /mnt/win_c. Для этого надо ввести команду mount -o loop win_c.img /mnt/win_c.

Вот так можно убедиться, что образ, который вы собираетесь накатить на винчестер очередного розового ноутбука, является образом именного того диска C: который ожидается увидеть на данной конкретной машине. Ну, или можно просто скопировать с него файлы без которых никак нельзя обойтись и отправить этот образ во внешнюю тьму. А на ноутбук поставить последнюю Убунту или Федору.

But we can go deeper.

Просмотр содержимого образа физического диска

А вот с монтированием образа диска целиком всё не так просто. Ужасная правда состоит в том, что монтировать файлы из произвольного места файловой системы ядро не умеет и аргумент -o loop, команды mount, сигнализирует о том, что сначала надо связать образ с файлом виртуального устройства в директории /dev, и потом уже присоединить содержимое этого устройства к файловой системе.

Файлы виртуальных устройств создаются заранее (на этапе загрузки системы) и имеют названия loop0, loop1, loop2 и так далее по нарастающей.

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

losetup /dev/loop0 win_c.img
mount /dev/loop0 /mnt/win_c

Но вот для того, чтобы посмотреть содержимое образа в котором есть несколько разделов, этого недостаточно. Дело в том, что если выполнить команду losetup для такого файла, то с устройством /dev/loop0 будет связан весь образ целиком. То есть это устройство будет эквивалентом /dev/sda, а нам нужны эквиваленты /dev/sda1 и /dev/sda2.

Обладатели свежих версий программы losetup (читай гентушники и арчеводы) могут выполнить losetup c аргументом —partscan, что приведёт к автоматическому созданию в директории /dev файлов, соответствующих разделам образа. То есть /dev/loop0p1, /dev/loop0p2 и так далее до самого горизонта. И вот уже эти файлы можно отдавать команде mount.

losetup —partscan /dev/loop0 drive.img
mount /dev/loop0p2 /mnt/win_c

Те же, кому не так повезло с дистрибутивом, могут воспользоваться программой kpartx, которая сделает то же самое, но положит файлы соотвествующие разделaм не в директорию /dev, а в директорию /dev/mapper, откуда их можно монтировать и просматривать.

kpartx -a /dev/loop0 drive.img
mount /dev/mapper/loop0p2 /mnt/win_c

But we can go even deeper than that…

Автоматическое создание файлов разделов при выполнении команды losetup


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

Включается она если параметр модуля loop max_part не равен нулю. Задать этот параметр можно только при загрузке модуля, поэтому если система уже запущена, модуль надо выгрузить из памяти и загрузить снова с уже заданным параметром. Для этого нужно выполнить следующие две команды.

modprobe -r loop
modprobe loop max_part=63

Однако в некоторых дистрибутивах (напривер в Убунте) модуль loop вкомпилирован в ядро намертво и поэтому для установки параметра придётся вписать loop.max_part=63 в командную строку ядра и перезагрузить систему.

Развёртывание образа на физический носитель

А теперь о том, как собственно накатить образ на другой диск. Как и раньше надо руководствоваться тем, что диски и разделы представлены в виде файлов. И если для снятия образа нужно было создать копию файла устройства или раздела, то для того, чтобы закатать этот образ обратно надо провести операцию копирования в обратную сторону. То есть вместо cp /dev/sda2 win_c.img написать cp win_c.img /dev/sda2. Ну и лучше помнить о советах, изложенных в руководстве по снятию образа. А именно пользоваться ddrescue и не пользоваться dd.

ddrescue —force win_c.img /dev/sda2 win_c_restore. img.log
Конечно следует помнить, что раздел в который мы восстанавливаем образ (в данном случае /dev/sda2) должен быть не меньше файла с образом. Eсли же раздел окажется больше этого файла, то проблем при восстановлении не будет, но в разделе останется неразмеченное пространство. И придётся либо смириться с этим фактом, либо увеличить размер файловой системы до размера раздела каким-нибудь специализированным софтом (увеличивать, впрочем, обычно гораздо проще и быстрее, чем уменьшать).

Сжатие образа раздела (логического диска)

Особенно приятной чертой Акрониса является способность не писать в файл образа куски диска или раздела, которые не содержат файлов. Это позволяет ужать образ до реального объёма данных в разделе или на диске.

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

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

Sparse файлы

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

Подготовка раздела или устройства к сжатию

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

Но выяснять количество свободного места и передавать его программе, создающей файл, к счастью не обязательно, да и искать программу, создающую файл с нулями, не понадобится. В директории /dev есть безразмерный файл zero, который, как нетрудно догадаться по названию, является неисчерпаемым источником бинарных нулей. Остаётся только скопировать его в нужное место.

Так как файл безразмерен, копирование будет продолжаться до тех пор, пока копия не заполнит всё доступное ей пространство, то есть все свободное место в разделе, что нам собственно и требовалось.

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

Для создания файла с бинарными нулями можно выполнить команду cp /dev/zero zerofile или cat /dev/zero > zerofile.

Создание sparse файла образа устройства или раздела

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

Как быть в случае сжатия образа повреждённого диска

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

С копированием файла прекрасно справится cp, которая умеет делать sparse файлы не хуже ddrescue. cp —sparse win_c.img win_c_sparse.img

Конечно, для проведения этих операций потребуется много свободного пространства, но так всё-таки значительно лучше, чем вообще никак.

Заключение

А теперь в сжатом виде о том, что можно почерпнуть из данного руководства.

  1. В Линуксе каждому накопителю и каждому разделу на накопителе соответствует файл.
  2. Так как образ является побайтовой копией содержимого диска или раздела, для его создания достаточно сделать копию соответствующего файла любой программой, умеющей делать копии.
  3. Лучше всего для снятия копии файла, соотвествующего разделу или накопителю, подходит программа GNU ddrescue.
  4. Для восстановления образа достаточно скопировать его обратно.
  5. Для просмотра содержимого образа достаточно смонтировать его в директорию по выбору, также, как система монтирует устройства при загрузке.
  6. Образы разделов и образы накопителей целиком монтируются по разному и не совсем так, как монтируются реальные накопители и разделы.
  7. Для получения сжатого образа раздела нужно особым образом скопировать заранее подготовленный раздел в файловую систему, поддерживающую sparse файлы.
И о том, что из данного руководства почерпнуть нельзя.

  1. Существует специализированный программный комплекс под названием Clonezilla, а также основанный на нём дистрибутив, предназначенный для резервного копирования и восстановления разделов жёсткого диска.
  2. Существуют утилиты ntfsclone и partclone которые владеют знаниями об устройстве файловых систем и используют эти знания например для того, чтобы не писать в бэкап пустое пространство.
P.S. На всякий случай даю ссылку на Slax — дистрибутив, который я ставлю на загрузочные флешки. Он умеет копировать себя в оперативную память и в нём по умолчанию есть ddrescue.

DMDE — Копировать секторы

Содержание · Работа · Меню · Сервис


Копировать секторы

Работа с повреждёнными дисками   Открытие образов дисков

Инструмент для создания и заливки образов дисков, клонирования дисков, создания дампов.

Если в качестве места для записи указан файл, будет создан файл-образ.

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

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

Источник и место для записи
Диск Выбор диска, тома, образа, массива RAID в качестве источника/места для записи
РазделВыбор раздела в качестве источника/места для записи (Диск — для смены устройства). Чтобы целиком выбрать текущий диск или массив, следует указать верхний пункт в списке разделов
ФайлИспользовать файл в качестве источника/места для записи
РедакторИспользовать объект, открытый в Дисковом редакторе, в качестве источника
ВыделениеИспользовать выделенный в дисковом редакторе блок в качестве источника

Поля ввода Начальный сектор/байт, Конечный сектор/байт, Число секторов/Размер в байтах заполняются автоматически при выборе источника/приемника с помощью кнопки. Если в качестве источника выбран Файл или Редактор, то значения полей указываются в байтах.

Можно вручную задать диапазон для копирования внутри источника и начальное смещение для приемника. Начальный сектор источника копируется в Начальный сектор приёмника независимо от направления копирования. При выборе раздела начальный сектор задаёт смещение относительно начала раздела (не устройства).

Кнопка Разделить позволяет разделить файл назначения на части. При этом также создается файл конфигурации RAID raidinfo.ini для последующего открытия раздробленного образа или для продолжения записи образа (открыть или указать с помощью опции Диск — Образы дисков / Логи).

С помощью кнопки Диск в качестве источника или приёмника также можно выбрать файл (образ диска). В этом случае можно указать параметры копирования, доступные только для диска.

Если в качестве источника используется Редактор или Выделение, некоторые логические ошибки (такие как недопустимые номера кластеров или секторов) игнорируются без вывода сообщений.

Параметры

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

Опция «использовать лог для продолжения» позволяет пропустить уже скопированные секторы (опция доступна только в Professional Edition). В частности, если настройки копирования и параметры не изменены, то при новом запуске копирование будет продолжено с последней позиции. Также возможно копирование в несколько проходов с уменьшением перескока на бэдах, предварительное копирование важных областей, копирование в разных направлениях.

Если изменить параметры ввода-вывода (уменьшить прыжок через секторы, увеличить число автоповторов с 0 или уменьшить размер буфера ввода-вывода при 0 повторов), то при новом запуске начнётся копирование секторов, пропущенных раннее из-за перескока на бэдах.

Опция «Повторить копирование плохих секторов лога» (доступно только в Professional Edition) — для повторного копирования сбойных секторов, когда скопированы все пропущенные секторы. При каждом запуске копирование сбойных секторов начинается сначала, продолжение невозможно.

Сбросить лог, когда скопировано число секторов: принудительный сброс отчёта на диск (обновление лог-файла) каждый раз после копирования указанного числа секторов.

Кнопка «Параметры» позволяет настроить параметры ввода-вывода для обработки ошибок (повторы, перескоки на бэдах и др.)

Обратный ход: копирование в направлении от конца к началу. Используется для создания образа при проблемах с диском.

В два потока: выполнение чтения и записи в параллельных потоках для увеличения скорости. Не следует использовать опцию для копирования дисков с ошибками.

Поле ввода Продолжить с сектора/байта определяет позицию, начиная с которой будет продолжено копирование. Позиция указывается относительно начала источника. В случае обратного хода копирование начнётся перед указанной позицией и продолжится в направлении к началу (например, если установлено значение 10, то скопируется сектор 9 и далее к началу).

Опция Заблокировать источник при копировании блокирует тома источника, запрещает работу с файловой системой, чтобы предотвратить изменения во время копирования (только в Windows).

Меню

Сохранить/Загрузить: сохранить/загрузить настройки в файл/из файла.

Экспортировать лог в ddrescue mapfile: конвертировать лог-файл в формат файла ddrescue mapfile.

Экспорт плохих и пропущенных диапазонов из журнала: получить список плохих и нескопированных секторов. В дальнейшем список можно использовать для получения информации о поврежденных файлах, расположенных в плохих секторах (см. Восстановление данных).

Клонирование диска — ArchWiki

Клонирование диска — это процесс создания образа раздела или всего жесткого диска. Это может быть полезно для копирования диска на другие компьютеры или для целей резервного копирования и восстановления.

Примечание. Клонирование диска между дисками с разными размерами логических секторов не рекомендуется.

  • Переход на диск с меньшим размером логического сектора (например, с 4096 байт до 512 байт) потребует пересоздания таблицы разделов, поскольку границы разделов указаны в номерах секторов.
  • Переход на диск с большим размером логического сектора (например, с 512 байт до 4096 байт) может быть вообще невозможен, если размер блока файловой системы меньше размера логического сектора целевого диска или не делится на него.

Совет: Со временем файловые системы получают новые функции, и утилиты mkfs меняют свои значения по умолчанию, но не все новые функции можно включить без переформатирования. Таким образом, при перемещении данных на новый диск вместо клонирования блочных устройств или файловых систем рассмотрите возможность создания новой файловой системы и копирования только файлов (и их атрибутов, списков ACL, расширенных атрибутов и т. д.), например. rsync.

Клонирование на уровне блоков

Использование dd

См. dd#Клонирование и восстановление диска и Альтернативы основным утилитам#dd.

Использование ddrescue

По возможности восстановление данных с дисков следует выполнять с использованием их родного интерфейса: SATA или, для старых дисков, IDE. Результаты могут отличаться при использовании USB-адаптеров.

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

Чтобы клонировать неисправный или умирающий диск, дважды запустите ddrescue . Для первого раунда скопируйте каждый блок без ошибок чтения и сопоставьте ошибки с escape.map .

 # ddrescue --force -n /dev/sd  X  /dev/sd  Y  Rescue. map
 

, где X — буква раздела источника, а Y целевого блочного устройства.

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

 # ddrescue --force -d -r3 -n /dev/sd  X  /dev/sd  Y  Rescue.map
 

В некоторых случаях контроллер диска или USB-адаптер могут блокироваться при попытке чтения определенного сектора. Параметр -i может использоваться для указания ddrescue начать чтение после этой позиции.

Теперь вы можете проверить файловую систему на наличие повреждений и смонтировать новый диск.

 # fsck -f /dev/sd  Y 
 

Клонирование файловой системы

Эта статья или раздел нуждается в дополнении.

Причина: Добавить xfs_copy(8). (Обсудите в Talk:Клонирование диска)

Использование e2image

e2image — это инструмент, включенный в e2fsprogs для целей отладки. Его можно использовать для эффективного копирования разделов ext2, ext3 и ext4, копируя только используемые блоки. Обратите внимание, что это работает только для файловых систем ext2, ext3 и ext4, а неиспользуемые блоки не копируются, поэтому это может быть бесполезным инструментом, если вы надеетесь восстановить удаленные файлы.

Чтобы клонировать раздел с физического диска /dev/sda , раздел 1, на физический диск /dev/sdb , раздел 1 с e2image, запустите

 # e2image -ra -p /dev/sda1 /dev/sdb1
 

Совет: GParted использует e2image для эффективного копирования разделов ext2/3/4.

Универсальные решения для клонирования

Эта статья или раздел нуждаются в улучшении языка, синтаксиса вики или стиля. См. Help:Style для справки.

Причина: Этот список приложений не соответствует шаблону:App#Style и может быть лучше в виде таблицы. (Обсудите в Talk:Клонирование диска)

Эти приложения позволяют легко создавать резервные копии целых файловых систем и восстанавливать их в случае сбоя, обычно в виде Live CD или USB-накопителя. Они содержат полные образы системы для одного или нескольких конкретных моментов времени и часто используются для записи заведомо исправных конфигураций. См. Википедия: Сравнение программ для клонирования дисков для их сравнения.

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

  • Clonezilla — программа для создания образов и клонирования разделов и дисков, которая помогает при развертывании системы, резервном копировании и восстановлении с нуля.
    • Комплексное решение для резервного копирования и восстановления: возможность создавать образы и восстанавливать целые диски, включая загрузочный сектор, загрузчик, таблицу разделов… для различных операционных систем, включая Windows
    • Поддерживает BIOS и UEFI, MBR и GPT
    • Поддерживает большинство файловых систем (ext2-3-4, reiserfs, reiser4, xfs, jfs, btrfs, f2fs, FAT12-16-32, NTFS, HFS+, UFS и другие) и LVM2
    • Уведомление о свободном пространстве при использовании Partclone (по умолчанию), Partimage (необязательно), ntfsclone (необязательно), в противном случае возвращается к dd для копирования на уровне блоков (контейнеры dm-crypt/LUKS, неподдерживаемые файловые системы. ..)
    • Поддерживает многопоточное сжатие с различными форматами (включая zstd) и уровнями
    • Поддерживает шифрование резервной копии
    • Многоадресный сервер для восстановления сразу на несколько машин
    • Выделенный LiveCD доступен для загрузки с компакт-диска, USB-накопителя или сервера PXE
    • Входит в состав установочного носителя Arch Linux.
https://clonezilla.org/ || clonezilla
  • Deepin Clone — инструмент Deepin для резервного копирования и восстановления. Он поддерживает клонирование, резервное копирование и восстановление диска или раздела.
https://www.deepin.org/en/original/deepin-clone/ || deepin-clone
  • FSArchiver — безопасный и гибкий инструмент резервного копирования/развертывания файловой системы
    • Поддержка основных и расширенных атрибутов файла
    • Поддержка основных атрибутов файловой системы (метка, uuid, размер блока) для всех файловых систем Linux
    • Поддержка нескольких файловых систем в одном архиве
    • Поддержка всех основных файловых систем Linux (extfs, xfs, btrfs, reiserfs и т. д.) и FAT (для резервного копирования/восстановления системных разделов EFI)
    • Экспериментальная поддержка клонирования файловых систем ntfs
    • Контрольная сумма всего, что записано в архиве (заголовки, блоки данных, целые файлы)
    • Возможность восстановить поврежденный архив (просто пропустит текущий файл)
    • Многопоточное сжатие lzo, lz4, gzip, bzip2, xz/lzma и zstd
    • Поддержка разделения больших архивов на несколько файлов с фиксированным максимальным размером
    • Шифрование архива с помощью пароля. На основе Blowfish из libgcrypt
    • Поддержка восстановления на больший или меньший раздел (если есть достаточно места для хранения данных)
    • Поддержка шаблонов исключения для фильтрации того, что архивируется/восстанавливается
    • Работает с каталогами (создание своего рода сжатого архива с контрольной суммой)
    • Входит в состав установочного носителя Arch Linux
https://www. fsarchiver.org/ || fsarchiver
  • Mondo Rescue — решение для аварийного восстановления, позволяющее создать резервный носитель, который можно использовать для повторного развертывания поврежденной системы.
    • Резервные копии на основе образов, поддерживающие Linux/Windows.
    • Степень сжатия регулируется.
    • Может выполнять резервное копирование работающих систем (без остановки).
    • Можно разделить изображение на несколько файлов.
    • Поддерживает загрузку с Live CD для выполнения полного восстановления.
    • Может выполнять резервное копирование/восстановление через NFS, с компакт-дисков, ленточных накопителей и других носителей.
    • Может проверять резервные копии.
http://www.mondorescue.org/ || мир AUR
  • Partclone — Инструмент, который можно использовать для резервного копирования и восстановления раздела с учетом только используемых блоков.
    • Поддерживает ext2, ext3, ext4, hfs+, reiserfs, reiser4, btrfs, vmfs3, vmfs5, xfs, jfs, ufs, ntfs, fat(12/16/32), exfat, f2fs, nilfs
    • Поддерживает специальные функции pipe, stdin и stdout для сценариев (сжатие, шифрование…)
    • Режим восстановления пытается пропустить плохие блоки и создать резервную копию только хороших блоков, возможность создания файла журнала домена GNU Ddrescue с исходного устройства
    • Доступен интерфейс ncurses
    • Контрольная сумма всех резервных блоков определяется crc32
    • Входит в состав установочного носителя Arch Linux
https://partclone.org/ || partclone
  • Partimage — утилита клонирования дисков ncurses для сред Linux/UNIX.
    • Есть Live CD.
    • Поддерживает самые популярные файловые системы в Linux, Windows и Mac OS.
    • Сжатие.
    • Сохранение на несколько компакт-дисков или DVD-дисков или по сети с использованием Samba/NFS.
    • Разработка остановлена ​​в пользу FSArchiver.
https://www.partimage.org || partimage
  • Redo Backup and Recovery — приложение резервного копирования и аварийного восстановления, которое запускается с загрузочного образа компакт-диска Linux.
    • Возможность резервного копирования и восстановления разделов диска на «голое железо».
    • Использует xPUD и Partclone для серверной части.
http://www.redobackup.org/ ||
  • System Tar & Restore — резервное копирование и восстановление вашей системы с помощью tar или перенос с помощью rsync
    • Интерфейсы GUI и CLI
    • Создает .tar.gz , .tar.bz2 , .tar.xz или .tar архивы
    • Поддерживает шифрование openssl/gpg
    • Использует rsync для передачи работающей системы
    • Поддерживает Grub2, Syslinux, EFISTUB/efibootmgr и Systemd/bootctl
https://github. com/tritonas00/system-tar-and-restore || system-tar-and-restore AUR

См. также

  • Википедия: Список программ для клонирования дисков
  • Ветка форума Arch Linux

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

Марин Тодоров

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *