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

42

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

  1. Clonezilla великолепна, но не поддерживает такую ​​функциональность.
  2. Также ddи PartImage не поддерживают это требование.
  3. rsync не будет копировать MBR, поскольку MBR не является файлом.

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

Какие-либо предложения?

Maythux
источник
2
Только один вопрос, почему нужно быть клоном? Если это для UUID, то не возражаете против сжатия файловой системы перед выполнением копирования dd? Если вы не возражаете против сжатия, просто запустите resize2fs, чтобы получить файловую систему там, где она меньше целевого диска, а затем скопируйте ее. С другой стороны снова запустите resize2fs, чтобы развернуть и заполнить новый диск.
darkdragn

Ответы:

36

Вы явно не можете клонировать больший раздел в меньший (используя ddи т. П.), Поскольку там просто недостаточно места.

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

rsync -av /mount/point/of/large/partition/ /mount/point/of/small/partition

Изменить: еще раз: вы не можете клонировать больший раздел на меньший раздел . (Но продолжайте читать, ваша проблема может быть решена.)

Причина проста: ваш исходный раздел больше, чем целевой раздел. Что вы ожидаете? Должны ли некоторые блоки просто быть отброшены? Какие? А откуда ddзнать? Конечно, вы можете использовать dd«s bs=и count=опции для копирования только первый так-так много блоков из исходного раздела таким образом, что она помещается на целевом разделе, но вы будете в конечном итоге с разбитой перегородкой. Это, конечно, не то, что вы хотите.

Так, так как вы не можете клонировать раздел большего размера на меньший раздел, единственное , что вы можете сделать , это первый уменьшить размер раздела исходного размера меньше или равна вашей целевой раздел с чем - то вроде gpartedчто осведомлен о особенности файловой системы, так что вы не потеряете данные. И только тогда вы можете использовать ddдля клонирования раздела. В идеале новый размер исходного раздела должен быть равен размеру вашего целевого раздела (а не только меньшего или равного ), иначе у вас останется некоторое нераспределенное пространство на целевом разделе после клонирования.

Также обратите внимание, что вы не должны просто копировать MBR большего диска в MBR меньшего диска (или наоборот, в этом отношении). MBR, который имеет размер 512 байт и является первым разделом вашего жесткого диска, содержит информацию о расположении жесткого диска:

  • 446 байт - Bootstrap.
  • 64 байта - таблица разделов.
  • 2 байта - подпись.

(Обратите внимание, что 446+64+2=512.)

Если вы настаиваете на клонировании MBR, то клонируйте только первые 446 байтов следующим образом:

dd if=/dev/source of=/tmp/mbr.bak bs=512 count=1
dd if=/tmp/mbr.bak of=/dev/target bs=446 count=1

... заменяя /dev/sourceи /dev/targetна имена устройств исходного и целевого жестких дисков, например, /dev/sdaи /dev/sdb, соответственно. ( Более подробная информация доступна здесь. )

Тем не менее, правильный способ сделать это будет сделать чистую переустановку Grub (или все, что у вас есть на MBR) на новом жестком диске.

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

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

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

  3. Для каждого раздела на исходном диске введите команду

    dd if=/dev/sdaX of=/dev/sdbY
    

    ... для клонирования раздела /dev/sdaXс исходного диска в соответствующий раздел /dev/sdbYна целевом диске (конечно, замените имена устройств соответственно).

  4. Если вы настаиваете также на клонировании MBR, используйте две ddкоманды, написанные выше в этом посте (те, что с /tmp/mbr.bakматериалом). Однако имейте в виду, что чистая переустановка Grub будет лучше.

Malte Skoruppa
источник
2
rsync не будет копировать MBR, поскольку MBR не является файлом, поэтому rsync не предназначен для клонирования. Мне нужно клонировать жесткий диск, а не делать резервную копию;)
Maythux
2
Да, rsyncэто действительно не для клонирования. Именно это я и говорил - внимательно прочитайте мой пост. ;) Я отредактировал свой пост, чтобы объяснить, как можно клонировать все разделы, а также MBR. Надеюсь, это ближе к тому, что вы хотите.
Malte Skoruppa
1
Как кто-то делает чистую установку Grub?
Кен Шарп
1
@KenSharp См. Здесь, например: help.ubuntu.com/community/Grub2/Install
Malte Skoruppa
1
@gerrit Использование parted/ gpartedдля шага 1 прекрасно. Как это часто бывает, есть много способов достичь цели. fdisk/ cfdiskявляются более «базовыми» инструментами, и в приведенном выше описании я просто пытался сослаться на самый базовый инструмент, который бы выполнял эту работу.
Malte Skoruppa
14

Точное клонирование невозможно, так как Malte Skoruppa уже опубликован. Однако clonezilla может выполнить эту задачу, если диск большего размера не заполнен (Мальте уже упоминал об этом).

В основном вам нужно включить расширенные опции и «игнорировать» предупреждение о меньшем диске. Смотрите Clonezilla docs для подробностей со скриншотами. У меня возникла та же проблема при восстановлении резервной копии жесткого диска объемом 160 ГБ на твердотельный накопитель объемом 64 ГБ. Для меня это сработало хорошо.

Другим решением, которое должно привести к желаемому результату, было бы восстановление на диск того же размера и перераспределение в соответствии с новой схемой раздела на меньший диск. Посмотрите jsm-techblog.blogspot.de для деталей, как это сделать.

Деннис Нолте
источник
@DennisNolte Какой расширенный параметр необходимо включить в Clonezilla? Читая документы, я бы предположил, -k1что создаст таблицу разделов пропорционально на целевом диске и включит опцию -rавтоматического изменения размера файловой системы в разделе. Это верно?
Pro Backup
Я больше не уверен на 100%, но это были бы варианты, которые я бы попробовал, если бы повторил то же самое, да. Однако мне потребовалось 2 или 3 попытки, пока это не сработало правильно, и, к сожалению, я не запомнил, какие шаги я предпринял, кроме использования опций авансов.
Деннис Нольте
Я не смог заставить это работать, используя k1опцию, однако -icdsопция работала для меня. Я выложу ответ с более подробной информацией.
bbodenmiller
Я добавил подробности о том, как мне это удалось, по адресу askubuntu.com/a/504778/310789 .
bbodenmiller
Clonezilla может сделать это с диска на диск, но только в экспертном режиме (параметр -icds). @ProBackup помните об использовании -k1, в моем случае он генерирует segfault (Clonezilla Live 20160627). Вместо этого используйте Gparted до (и после) клона, чтобы оставить (и вернуть) столько нераспределенного пространства, сколько необходимо, а затем клон, пропустив проверку дискового пространства (-icds). Я перечислил шаги, чтобы сделать клон на меньший диск здесь (пропустите части Win7 о MBR, если у вас только Linux).
chirale
7

Gparted должен делать работу

  1. После изменения размера с помощью gparted загрузитесь с диска, чтобы дать ОС возможность исправить любые ошибки перед созданием образа с помощью Clonezilla.

  2. Затем запускает Clonezilla и делает копию необходимых разделов жесткого диска

Еще один вариант, который я нашел отличным для меня: MondoRescure

Mondo Rescue - это решение для аварийного восстановления GPL.

Он поддерживает ленты, диски, сеть и CD / DVD в качестве носителя для резервного копирования, несколько файловых систем, LVM, программное и аппаратное обеспечение Raid.

Простое руководство можно найти здесь

Я выложу несколько скриншотов:

ШАГ 1 РЕЗЕРВНОЕ (СКРИНШОТ РАЗДЕЛА)

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

введите описание изображения здесь

2. Если вы выполняете резервное копирование на CD / DVD- + R [W], то Mondo спросит вас, поддерживает ли ваш CD-рекордер технологию BurnProof, находится ли он в ноутбуке или иным образом эксцентричен. Если вы выполняете резервное копирование на ленточный стример, вы не увидите это сообщение

3. Сколько сжатия вы хотите? Нет, если ваш стример имеет встроенное аппаратное сжатие. Максимум, если ваш процессор невероятно быстрый. Среднее значение должно подойти для большинства ситуаций.

введите описание изображения здесь

4. Если вы хотите сделать резервную копию всего компьютера (за исключением / sys, / run и / proc, а также / tmp), оставьте это как / по умолчанию. В противном случае укажите подмножества (например, / usr / local | / home), которые обязательно будут помещать канал между каждым путем.

введите описание изображения здесь

5. Если вы выполняете резервное копирование всего компьютера, вы можете исключить определенные каталоги, например / shared / MP3. Пожалуйста, укажите их в диалоговом окне «Исключить каталоги». Пожалуйста, вставьте канал между каждым путем, например / shared / private | / scratch | / nfs | / windows

введите описание изображения здесь

6. Ваше ядро ​​в здравом уме? Пользователи Red Hat, Mandrake, SuSE, Debian и Slackware, в общем, должны сказать «да», потому что эти производители хороши в создании надежных ядер. Если вы используете Gentoo или LFS, то ваше ядро ​​может быть нестандартным, и в этом случае скажите «нет», чтобы использовать отказоустойчивое ядро ​​Mondo (предоставляется отдельно).

введите описание изображения здесь

7. Если вы хотите проверить архивы после записи их в СМИ, скажите «да» здесь. Если вы абсолютно уверены в своем оборудовании и дистрибутиве Linux, скажите «нет» ... и немного помолитесь.

введите описание изображения здесь

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

введите описание изображения здесь

9. Начнется процесс резервного копирования. Сначала нужно выполнить несколько задач перед резервным копированием, но резервное копирование в основном выполняется. Чтобы упростить процесс резервного копирования, вам был задан ряд вопросов. В следующий раз, если хотите, вы можете вызвать mondoarchive с различными ключами командной строки, чтобы управлять его поведением, вместо того, чтобы отвечать на ряд вопросов. Смотрите man-страницу для деталей.

введите описание изображения здесь

10.Mondo создаст каталог всех файлов для резервного копирования. Это может занять до пяти минут. Список файлов будет разделен на наборы, примерно 4 МБ (до сжатия) файлов на набор. Обычно это занимает одну минуту.

введите описание изображения здесь

11.Мондо звонит Минди. Mindi генерирует образ загрузочного носителя и образы вспомогательных дисков с данными, которые основаны на вашем существующем дистрибутиве Linux и файловой системе. Таким образом, вы можете быть уверены, что инструменты Mondo будут совместимы с вашими существующими файловыми системами и двоичными файлами: инструменты Mondo - ваши инструменты. Минди бежит до пяти минут.

введите описание изображения здесь

12. Наконец, Mondo начинает резервное копирование вашего компьютера. Этот процесс может занять несколько минут или несколько часов, в зависимости от того, сколько данных вы архивируете, какова скорость вашего процессора, сколько у вас оперативной памяти и так далее. Он будет создавать резервные копии ваших обычных файлов, а затем ваши большие файлы (файлы, размер которых превышает примерно 32 МБ). Если вы решили проверить свои резервные копии, Mondo сделает то же самое.

введите описание изображения здесь

ШАГ 2 ВОССТАНОВЛЕНИЕ (РАЗДЕЛЕНИЕ КЛОНА)

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

введите описание изображения здесь

2. Нажмите «ОК», когда вставили кассету / CD. Если вы создали резервную копию ленты, самой ленты должно быть достаточно. Если вы сгенерировали резервную копию CD, первого CD должно быть достаточно. В противном случае вам может понадобиться загрузочный носитель.

введите описание изображения здесь

3. Отметьте файлы и каталоги, которые вы хотите восстановить. Используйте кнопки «Больше» и «Меньше», чтобы открывать и закрывать подкаталоги.

введите описание изображения здесь

4. Укажите место, куда нужно восстановить файлы. В общем, '/' подходит. Если вы не хотите перезаписывать более новые версии восстанавливаемых файлов, укажите / tmp / BKP или аналогичный путь восстановления.

введите описание изображения здесь

5.Mondorestore получит информацию о конфигурации с носителя. (Пример экрана предназначен для пользователей ленты. Пользователи компакт-дисков увидят что-то другое.)

введите описание изображения здесь

6.Данные будут восстановлены на жесткий диск - сначала обычные файлы, затем любые большие (32 МБ или более) файлы в наборе для восстановления.

введите описание изображения здесь

камил
источник
Это кажется интересным. Я попробую, а потом
верну
@Maythux отзыв с результатами?
Highmastdon
Вы должны сначала записать все на диск?
Кен Шарп
Для тех, кто любит прыгать и пробовать что-то, чтобы заставить mondo работать, вам нужно загрузить и установить последние версии lib-projectbuilder-perl, libmondorescue-perl, mindi-busybox, mindi и mondo из MondoRescue ссылку выше и установите их в таком порядке, чтобы избежать неудовлетворенных зависимостей. Доступны пакеты .deb, поэтому вам не нужно компилировать их все из исходного кода, если вы этого не хотите.
Старейшина Гик
Похоже, что в текущей версии пользовательский интерфейс версии (1.5) не указан, и тест для меня не удался.
Старейшина Гик
4

«Псевдоклонирование» жесткого диска большего размера может быть выполнено с помощью Clonezilla. Эффективно вы можете сохранять и восстанавливать разделы диска. Следующие шаги (разработанные для передачи с жесткого диска на твердотельный накопитель) помогут вам:

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

  2. Затем запускается Clonezilla и создается копия отдельных разделов жесткого диска (с использованием параметра saveparts), которые временно сохраняются на внешнем USB-диске. Обратите внимание, что необходимо сохранять разделы (saveparts), а не создавать образ всего диска (saveisk).

  3. Когда SSD установлен на целевой машине, второй трюк заключается в том, чтобы еще раз использовать менеджер разделов для создания желаемой структуры разделов на SSD.
  4. Затем Clonezilla используется для восстановления сохраненных разделов (с помощью restreparts) на SSD.

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

CentaurusA
источник
3

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

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

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

Установите новый целевой диск вместе с оригинальным диском на свой компьютер.

  • загрузочный компьютер с Ubuntu Live CD.
  • По назначению диск. используйте gparted create: ext4 (или любую новую быструю файловую систему, на которую вы решите перейти) (том, а также том подкачки и swap - файловая система
  • В gparted установите загрузочный флаг на новый том

В моем примере источник (оригинальный диск) - / dev / sda, а пункт назначения (новый меньший диск) - / dev / sdb. В вашей настройке он может отличаться

монтировать src только для чтения в / mnt / source

  • mkdir / mnt / source; mount -o ro / dev / sda / mnt / souce

смонтировать диск назначения в / mnt / destination

  • mount / dev / sdb1 / mnt / destination /

скопировать файловую систему src в целевую файловую систему с помощью:

  • rsync -log /mnt/destination/rsync-copy.log --progress -avr --exclude = / mnt / source / dev / -A -H -X --numeric-ids / mnt / source / * / mnt / destination /

Ubuntu использует uuid вместо имени устройства, чтобы найти и смонтировать диск, так как у нас есть новый диск, мы хотим изменить fstab назначения, чтобы использовать новые диски uuid для монтирования диска

  • ls -la / dev / disk / by-uuid

    Теперь измените uuid на / и замените его в / mnt / destination / etc / fstab. не забудьте изменить файловую систему для точки монтирования, если вы решили изменить ее на нечто отличное от оригинального диска

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

  • grub-install / dev / dev / sdb

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

для загрузки некоторых необходимых модулей grub - insmod ext2 - insmod linux перечисляет ваши дисковые устройства - ls

выбрать правильное устройство (в моем примере это hd0, msdos1)

  • установить root = (hd0, msdos1)

найдите точное имя vmlinuz-xxx и initrd-xxx, чтобы настроить grub для использования

  • ls / boot /

    посмотрите и используйте правильное имя для vmlinuz и initrd, которое вы получили из ls выше, и используйте их вместо примера, который я использую здесь ниже

  • linux /boot/vmlinuz-2.6.32-5-amd64 root = / dev / sda single

    если / dev / sda - это устройство, то диск будет диском rootfs в следующий раз, когда вы перезагрузите> компьютер только с диска dst

  • initrd /boot/initd.img-2.6.32-5-amd64

  • ботинок

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

  • обновление-личинка
Tomodachi
источник
3

Вы можете перенести свои данные на диск меньшего размера, используя Clonezilla и GParted .

Использование GParted Live CD позволяет сократить ваши разделы так, чтобы они поместились на новом диске. Переместите разделы так, чтобы пустое (серое) пространство находилось в конце / справа от вашего диска. Если перед первым разделом уже было пустое место, оставьте это место, так как оно может содержать загрузочную или другую скрытую информацию.

С помощью Clonezilla сделайте device-deviceклон. Выберите дополнительные параметры и включите -icdsпараметр, чтобы пропустить проверку размера диска. Продолжите работу с клоном, удалите старый диск и попытайтесь загрузиться с нового диска. Если вы получаете ошибки, попробуйте -fsck-src-partопцию, которая поможет вам исправить ошибки на исходном диске.

Из документов Clonezilla :

Если вы уверены, что все данные из образа могут уместиться на меньшем диске, то есть они не будут записаны на неправильное дисковое пространство, вы можете проверить опцию «-icds». Предупреждение! Чтобы выбрать эту опцию, вы должны знать, что вы делаете!

Один FAQ я прочитал предложил использовать как -icdsи -k1варианты с Clonezilla , однако , что не работает для меня. Другие упоминали, что вы можете копировать разделы с помощью GParted, однако он не может копировать все типы разделов, и я не смог загрузить свою машину после использования этого метода, вероятно, из-за того, что некоторая скрытая информация между разделами не была скопирована.

bbodenmiller
источник
1

Может быть, не правильный ответ на вопрос, но я прихожу на эту страницу, пытаясь решить аналогичную проблему:

Я хотел клонировать старую компактную флэш-карту емкостью 256 Мбайт в 32-мегабайтную, которая вышла из строя, она содержит небольшое устройство Linux, которое производит небольшие пружинные витки.

Решено так:

(Конечно, эффективное пространство, используемое в 256 МБ, было <32 МБ, поэтому оно хорошо вписывается)

  1. Создайте образ флэш-карты 256 МБ с помощью 'dd' (т.е. при условии, что карта подключена в / dev / sdb):

    dd if=/dev/sdb of=image256.iso
  2. Используйте unetbootin, чтобы прочитать ISO-образ 'image256.iso' (опция Diskimage).

  3. Выберите USB-накопитель, на котором находится карта 32 МБ, и перейдите к сбросу образа на карту 32 МБ.

Вот и все, 32-мегабайтная карта снова успешно запустила мою машину.

НТН

tfonrouge
источник
0

Вы можете попытаться сделать это в два шага: сначала превратите клон Системы в Разреженный образ (образ увеличивается при добавлении в него большего количества материала). Теперь восстановите этот образ на второй меньший диск.

konqui
источник
0

это можно сделать. С помощью живого компакт-диска просто уменьшите файловую систему (resize2fs), чем lvm (если есть) последнего раздела (например, / dev / sdc3) с большого диска, чтобы он мог поместиться на маленьком диске.

С помощью fdisk удаляйте и воссоздайте с меньшими секторами последний раздел (/ dev / sda3), поэтому последний сектор большого диска имеет то же значение, что и последний сектор малого диска.

Затем сделайте ваш # dd if = big of = small bs = 10M, пока не закончится свободное место.

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

Chaoss
источник
0

После сжатия файловой системы на большем диске с помощью GParted я поместил два диска в корпус RAID в режиме зеркалирования, где больший диск является источником, а меньший диск является целью. Мне просто нужно было нажать кнопку сброса внутри корпуса (не менять режим, т.е. Raid 1 на Raid 0), чтобы начать клонирование. Работал отлично! :) Я использовал чехол GW3.5AX2-SU3 / MB Raid.

Rey
источник
0

я публикую свой опыт сокращения загрузочного диска с 250 ГБ (SDA) до 120 ГБ (SDC) диска

sda содержит 2 раздела:

  • sda1 -> / boot (ext3)
  • sda2 -> lvm2: / (245 ГБ) и своп (5 ГБ)

так что я делаю:

  • дд сда мбр в сдк
  • fdisk sdc и запишите изменения, чтобы создать структуру в sdc
  • дд sda1 до sdc1

тогда как мой gparted НЕ работает с lvm:

со спасательного диска:

  • первый разбор VG / LV00
  • e2fsck VG / LV00
  • resize2fs / VG / LV00 xxxxxxxxK (я даю на 1 ГБ больше места)
  • lvreduce -L xxxxxxxxxK VG / LV00 (я даю на 1 ГБ больше места для fs)
  • pvresize / dev / sda2 --setphysicalvolumesize xxxxxxxxxxxxK (я даю 1 ГБ больше, чем пространство LV) (у меня здесь ОШИБКА ... так:

    • pvs -v --segments / dev / sda2 (чтобы увидеть сегменты)
      • pvmove --alloc в любом месте / dev / sda2: сегмент_мин-сегмент_макс (из сегментов, которые я видел "справа" диска)

Но все же раздел был большим, так как я только сокращаю FS-LV-VG, так:

я воссоздаю раздел с помощью fdisk:

fdisk /dev/sda 
d --> 2
n --> p --> 2 --> default --> (new reduced
size!!!)
 w

Затем система предложит использовать старую таблицу разделов до следующей перезагрузки. Но я забыл перезагрузить и сделать образ:

dd if = / dev / sda2 of = / dev / sdc2 bs = 4096 (на данный момент я подумал, что что-то не так, и я не смог загрузиться с sdc, так как таблица разделов не отражает конец нового sda2)

НО все было в порядке и после перезагрузки, и даже система выбирает раздел sdc для загрузки (он жалуется на дубликаты PV, LV и / boot)

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

oso_togari
источник
Это ответ или вопрос?
Сет
обе вещи, я думаю ...
oso_togari
0

Отказ от ответственности: я оригинальный автор WereSync

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

Для установки WereSync используйте pip:

pip install weresync

Оттуда вы можете просто использовать команду WereSync

 weresync -C -g 2 -E 1 /dev/sda /dev/sdb

Приведенная выше команда копирует данные из / dev / sda в / dev / sdb. В -Cфлаг марки, WereSync должны проверить , если разделы на двух дисках эквивалентны, и если они не WereSync должны скопировать разделы с / DEV / SDA в / DEV / SDB и изменять их размер , чтобы они поместились. UUID новых разделов будут другими. Система, используемая для проверки правильности разделов, может быть привередливой, поэтому после первого резервного копирования я рекомендую опустить этот флаг.

-gИ -Eкоманды могут быть опущены, но установка загрузчика почти наверняка не в этом случае.

-g относится к «разделу grub», или раздел grub, на который следует установить. Обычно это раздел, смонтированный на /. Поэтому, если у вас есть / dev / sda2, смонтированный в /, вы переходите -g 2к WereSync, как в примере выше. Если это не указано, WereSync попытается самостоятельно найти нужный раздел, но это может привести к ошибкам. Я рекомендую просто передать флаг.

-Eотносится к разделу EFI. Если ваш раздел EFI находится в / dev / sda1, перейдите -E 1к WereSync, как в приведенной выше команде.

Если у вас есть отдельный раздел для папки / boot, вы должны сообщить об этом и WereSync. Если у вас это есть в / dev / sda3, перейдите -B 3к WereSync.

Более подробную информацию о возможных флагах этой команды можно найти в документации по команде WereSync .

DonyorM
источник
Можете ли вы добавить livecd?
Тал
0

Я столкнулся с этой проблемой, потому что обновление Win 10 до 1607 прервалось после перезагрузки из-за того, что мой NVMe (Samsung 950 Pro) не был распознан, поэтому я клонировал NVMe на другой (больший) внутренний диск (в моем случае «Toshiba») , обновил Win 10 и восстановил систему обратно в NVMe.

Вот шаги, которые мне нужно было сделать, чтобы добиться этого (так как восстановление с -icdsне работало).

Инструменты:

  • Windows 10 1607 DVD (битовая глубина и язык в зависимости от вашей текущей ОС)
  • Clonezilla Live DVD ( 2.4.5+ )
  • или Clonezilla Live DVD ( 20160203-xenial + ), так как он может загружаться с UEFI, установленным в BIOS
  • (необязательно) GParted Live DVD ( 0.27.0-1 )

Приготовление:

  1. записать все инструменты на CD / DVD
  2. запустить Clonezilla и клонировать (диск в образ) NVMe в образ (например, на внешнем диске)

Заметка:

Если вы использовали Clonzila из стабильной ветви, вы должны перейти в режим загрузки Legacy в BIOS, чтобы иметь возможность загрузки с компакт-диска. В противном случае, если вы используете загрузку из альтернативной ветки, она должна поддерживать загрузку UEFI.

Отказ от ответственности:

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

Процедура:

  1. запустите Clonezilla и клонируйте (диск на диск) NVMe на Toshiba (в моем случае, другой внутренний диск, который я предварительно очистил / скопировал)
  2. В первый раз я думаю, что у меня были некоторые конфликты в Windows с NVMe, все еще имеющим информацию о загрузке Win, поэтому на этот раз я сразу же после первоначального клонирования в Toshiba (так, до перехода к загрузке UEFI) удалил все разделы на диске NVMe

    ~ удаление легко выполняется в оболочке Clonezilla с помощью:

    sudo su
    dd if=/dev/zero of=/dev/nvme0n1 bs=512 count=1
    

    ~ альтернативно, загрузитесь в GParted и сделайте это визуально

  3. (переключиться на загрузку UEFI в BIOS)

  4. загрузиться (Toshiba будет использоваться)
  5. запустите Win 10 1607 установочный DVD и выберите «Установить», проверьте «Загрузка обновлений» и «Сохранить приложения и данные». Это должно обновить Toshiba до последней версии Win 10.
  6. (переключитесь на загрузку Legacy в BIOS), на всякий случай сделайте резервную копию Toshiba в образ (через Clonezilla)
  7. поскольку копирование MBR для меня ничего не дало, GPT важен в этой истории, поэтому войдите в оболочку (Clonezilla) и скопируйте GPT из Toshiba в NVMe с помощью

    sudo su
    sgdisk /dev/sda -R /dev/nvme0n1
    sgdisk -G /dev/nvme0n1`
    

    ( объяснение )

  8. поскольку Clonezila (даже с ключом-эксперта -icds) отказывается восстанавливать разделы, снова войдите в оболочку и выполните:

    partprobe #forces kernel to reload partition infos
    fdisk -l #shows all disks info
    dd if=/dev/sda1 of=/dev/nvme0n1p1 bs=64K status=progress
    dd if=/dev/sda2 of=/dev/nvme0n1p2 bs=64K status=progress
    dd if=/dev/sda3 of=/dev/nvme0n1p3 bs=64K status=progress
    ...
    

    ( больше информации )

  9. сделайте резервную копию Tosiba MBR и GPT:

    sgdisk --backup=sda.gpt /dev/sda
    
  10. скопируйте резервную копию в безопасное место (чтобы мы могли восстановить ее, а не весь образ диска, который мы сделали на шаге 6)

    mkdir /mnt/usb
    (put in usb flash or similar)
    mount /dev/sdb /mnt/usb
    cp sda.gpt /mnt/usb
    umount /dev/sdb`
    
  11. очистить информацию раздела Toshiba, чтобы она не вызывала конфликтов с Windows

    dd if=/dev/zero of=/dev/sda bs=512 count=1
    
  12. (переключитесь на загрузку UEFI в BIOS) загрузитесь с DVD-диска Windows 10 (1607), выберите «Восстановить»> «Устранение неполадок»> «Командная строка» и выполните все эти действия:

    bootrec /fixboot
    bootrec /scanos
    bootrec /fixmbr
    bootrec /rebuildbcd
    exit
    

    ( больше информации )

  13. перезагрузите Windows 1607 на диске NVMe

  14. Выиграть!
  15. (повторно инициализировать Toshiba в разделе «Управление дисками»)
  16. (необязательно) резервное копирование обновленного диска NVMe (клонировать в образ с помощью Clonezilla)
Сарань
источник