Как использовать DD для переноса данных со старого диска на новый?

Как использовать DD для переноса данных со старого диска на новый?

Я обновляю внутренний жесткий диск SATA на моем ноутбуке с 40G на 160G. У меня есть настольный компьютер Linux/Ubuntu с картой SATA. На самом деле я хотел бы сделать то же самое для пары коробок CentOS и FreeBSD на работе, и, похоже, это будет иметь то же самое решение.

Я слышал, что могу использоватьДДдля зеркалирования раздела 40G на диск 160G или для сохранения раздела 40G как образа на локальной системе, а затем копирования этого образа 40G на диск 160G.

Может ли кто-нибудь описать, как это сделать? Мне нужны какие-либо другие утилиты, такие какgparted

решение1

Обычно я предлагаю такое решение, как «подключить второй жесткий диск с помощью внешнего корпуса, загрузиться с компакт-диска Linux, а затем использовать команду, например, » dd if=/dev/sda of=/dev/sdb bs=1G, но поскольку вы хотите использовать ту же технику для работы, у меня есть решение, которое может оказаться лучшим.

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

Идея в том, что вы загружаетесь с CD Clonezilla и имеете довольно большой (больше, чем исходный диск) внешний USB-накопитель. Clonezilla проведет вас через создание образа существующего диска, после чего вы выключаете машину, заменяете диск, затем снова загружаетесь в Clonezilla, и она проведет вас через восстановление данных.

Это дает вам возможность А) поместить образ на больший диск и Б) сохранить резервную копию данных.

решение2

Вашей первой задачей будет подключение обоих дисков к существующей системе Linux или подключение нового диска к исходной системе.

Ты должен бытьоченьбудьте осторожны, так как очень просто скопировать чистый диск поверх хорошего!

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

dd if=/dev/hdx of=/dev/hdy

Где hdxваш диск 40G и hdyгде ваш диск 160G. Вы заметите, что нет номеров разделов, таких как /dev/hdx1. Это копирует весь диск, информацию о разделах и все.

Ваш новый диск будет таким же, как и старый, выделено 40 ГБ. Он должен загрузиться сразу после установки обратно в ваш ноутбук. Надеюсь, вы использовали LVM? В противном случае надеюсь, что вы не использовали все разделы? Чтобы пройти этот момент, требуется гораздо больше информации.

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

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

решение3

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

  1. Место назначения должно быть точно такого же размера или больше, чем исходное.
  2. После копирования вам нужно будет изменить размер разделов, чтобы использовать дополнительное пространство.
  3. Вы будете тратить время на копирование свободного места
  4. Любая фрагментация, имеющаяся на старом диске, сохраняется.

Использование программы создания образов, такой как Ghost4Linux, partclone или clonezilla, по крайней мере решает проблемы 2 и 3. Вы также можете просто отформатировать новый диск, смонтировать его и скопировать все файлы cp -ax(как root), а затем переустановить загрузчик на новом диске. Этот метод не страдает ни от одного из вышеперечисленных недостатков.

решение4

Вы спрашивали, как это сделать с помощью dd, но у меня лучше получилось передать выводсвалкаввосстановить. Учитывая источникad1s1aи цельad2s1a:

$ mount /dev/ad2s1a /target
$ cd /target
$ dump -0Lauf - /dev/ad1s1a  | restore -rf -

Я пробовал это на FreeBSD, на самом деле я нашел это наФорум FreeBSD

Связанный контент