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

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

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

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

7 Solutions collect form web for “Как я могу использовать DD для переноса данных со старого диска на новый диск?”

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

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

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

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

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

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

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

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

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

Все мои серверы и ноутбуки отображаются на рабочем месте с помощью Clonezilla . Существует два способа его использования: один из которых использует выделенный сервер и, вероятно, переполнен для вас, а другой – загрузочный компакт-диск и внешний жесткий диск.

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

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

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

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

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

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

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

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

Чтобы просто скопировать раздел, вы можете использовать dd if=/dev/srcDrive of=/dev/dstDrive или что-то вроде этого. Я бы рекомендовал вам прочитать его страницу . Извините, я не могу дать больше информации, так как я сейчас работаю.

Один простой пример:

 dd if=/dev/sda of=/dev/sdb 

Но если у вас есть особые потребности, вам действительно нужно прочитать man-страницу (man dd) или выполнить поиск в Google.

Другой идеей может быть использование rsync (не забудьте установить правильные параметры, например -az [упаковывает файлы вместо копирования одного файла за другим] или –numeric-ids [использует uid / gid вместо имен, таких как «root»] и, возможно, некоторые другие). Ссылка содержит много примеров.

Если на новом жестком диске нет разделов, вы можете использовать gparted или palimpset.

Когда вы не уверены, я отформатировал бы жесткий диск, а затем синхронизировал данные с rsync.

Ну, я сделал миграции, похожие на это, загрузившись с обоими дисками и Live cd.

  1. Вы воссоздаете информацию раздела первого диска во втором, возможно, сделав некоторые разделы более крупными, чтобы использовать дополнительное пространство, и так далее.
  2. Затем предположим, что у вас есть / dev / sda {1,2,3,4} и вы хотите скопировать их в / dev / sdb {1,2,3,4}, вы mkdir / mnt / sd {a, b} {1 , 2,3,4} и монтировать каждый раздел в каждом каталоге (или если вы хотите сделать это один за другим, вы можете сделать / mnt / origin / mnt / destination и mount / umount каждую пару)
  3. Затем вы делаете cp -avr / mnt / origin /. / mnt / destination / (или cp -avr / mnt / sda1 /. / mnt / sdb1 /
  4. Подождите, пока вы просматриваете Интернет.
  5. Помните себя, чтобы переустановить grub, lilo или какой-нибудь используемый вами менеджер загрузки.

В этом случае вы будете дефрагментировать файлы по мере их копирования, вы также можете изменить файловые системы в разделах (перенести с reiserfs или ext3 на ext4 и т. Д.), Но, пожалуйста, не забудьте отредактировать / etc / fstab после копирования новая ситуация.

  • Деградированные области некоторых пользовательских интерфейсов, включая пиксельные или зубчатые шрифты
  • SSH позволяет мне войти в систему с паролем, хотя я установил «PasswordAuthentication no»
  • `kill -s TERM` работает,` kill -s ABRT` получает «Операция не разрешена»
  • Как изменить разрешение экрана во FreeBSD11 в качестве гостевого?
  • Что означает «первая карта Ethernet» в мире BSD?
  • Поле имени пользователя изменено на passwd
  • Как я могу изменить шлюз по умолчанию?
  • Gnome 3 на FreeBSD 9
  • Почему некоторые имена пользователей на FreeBSD начинаются с подчеркивания?
  • Сервер WebDAV с правами доступа к PAM и системному файлу?
  • Постоянное именование NIC во FreeBSD
  • Linux и Unix - лучшая ОС в мире.