1

У меня есть 2 SSD. Моя система (Ubuntu 12.04) установлена на одной, и я хочу клонировать ее на другую. Проблема в том, что в настоящее время система находится на диске 128 ГБ, а новая - только 120 ГБ. Можно ли создать образ с помощью dd для накопителя меньшей емкости?

4 ответа4

5

Как сделать то, что вы просили сделать:

  1. используйте gparted, чтобы изменить размер системного раздела менее 120 ГБ ... предпочтительно, если это возможно, значительно меньше 120 ГБ, чтобы убедиться, что он действительно меньше общего размера целевого диска.

  2. dd if=/dev/sda bs=8M of=/dev/sdb , предполагая, что ваши исходный и целевой диски - sda и sdb соответственно. делайте это из безопасного режима или из среды активной загрузки, а не из исходной ОС, работающей с обычным многопользовательским входом в систему.

    ИЛИ , если у вас есть доступ к сети в вашей среде начальной загрузки, а юниверс - в ваших источниках: apt-get install pv ; pv < /dev/sda > /dev/sdb . Разница между этой командой и командой dd, для ваших целей здесь, в том, что она дает вам PROGRESS BAR ... :)

Тем не менее, возможно лучший способ сделать то, что вы действительно хотите сделать:

  1. сделать чистую установку Ubuntu на целевом диске. (Есть более эффективные способы получить загрузочный сектор на новом диске, но я собираюсь сделать это для «дружественных новичков» здесь.)

  2. смонтировать оба диска из среды активной загрузки и rsync -harv --progress /path/to/source/ /path/to/target/ . Обратите внимание, что вы ДЕЙСТВИТЕЛЬНО хотите находиться здесь, в живой загрузочной среде, а не в работающей системе, иначе вам придется иметь дело с такими вещами, как devfs, procfs и т.д., Не говоря уже о файлах, которые могут изменяться / исчезать во время вашей rsync.

1

ШАГОВ

  1. Если это вообще возможно, сделайте резервную копию исходного диска (128 Гб).

  2. Используйте Gparted USB для загрузки, а затем используйте его для сжатия раздела исходного диска (128 ГБ) до размера, меньшего целевого (120 ГБ).  Если у вас полный накопитель, скажем, 128 ГБ без места, то вам может потребоваться сжать (сжать) некоторые файлы данных или скопировать на другой временный USB-накопитель, чтобы получить менее 120 ГБ (размер целевого диска) , В противном случае вы не сможете вставить исходное содержимое в целевой диск. Это просто не подходит.

    Оставьте немного свободного места на всякий случай (1 Гб, может быть, для перевода геометрии или чего-то еще. Мой диск одного размера, но у dd и Gparted другой размер, немного другой).

  3. Как только раздел исходного диска был уменьшен до размера меньше целевого диска, вы можете выполнить dd . Удостоверьтесь, что вы копируете исходный текст в целевой, иначе вы будете очень несчастны. (Если источником является /dev/sda, убедитесь, что диск 128 ГБ теперь с разделом менее 120 ГБ ... Ваша цель - /dev/sdb новый диск 120 Гб.)

    dd if=/dev/sda of=/dev/sdb bs=4096 conv=notrunc,noerror

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

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

Как только он закончится, он может сказать вам, что вам не хватает места. Это нормально; вы копируете на меньший диск. Но поскольку вы копируете меньший раздел, все данные копируются. dd пытается скопировать все 128 ГБ на 120 ГБ и выдает ошибку. Не беспокойся; нет повреждения дисков. Теперь удалите Gparted USB, извлеките исходный диск и загрузитесь на новый диск 120 Гб, проверьте содержимое, и если у вас останется свободное место, вы можете разархивировать ранее заархивированные файлы.

0

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

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

Одно простое решение, на которое ссылается Оттавио Кампана в комментариях:

  1. Загрузите систему с LiveCD
  2. Создайте файловую систему на новом диске
  3. Смонтируйте оба диска и скопируйте старый на новый с помощью cp -a

Затем вам нужно будет установить загрузчик (например, GRUB) на новый диск, если он будет вашим основным.

Комментарий Бенни Хилла содержит ссылку на аналогичный вопрос с ответами, предлагающими другие решения.

0

Единственный жизнеспособный вариант, о котором я могу подумать, - это если вы изменили размер раздела ext4, чтобы в конце у вас было 119 ГБ данных и 9 ГБ свободного места. Затем вы можете использовать DD с командами bs = и count =, чтобы скопировать 120 ГБ данных на диск. (У вас останется 1 ГБ свободного места, которое вы сможете затем изменить размер (я сделал это только для безопасности))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .