Как перейти с одного диска на другой, который имеет другой размер?


21

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

Каков наилучший способ скопировать данные из одного размера раздела в другой (при условии, что у цели достаточно места)?

А что, если это другая файловая система (например, от ReiserFS до ext4)?

Если это просто новый диск в существующей системе, как мне убедиться, что мне не нужно переустанавливать, чтобы все работало?

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


1
superuser.com/questions/32164/… был запрошен диск / раздел Windows
— Уоррен

Ответы:


10

Клонируйте диск с помощью CloneZilla , затем используйте gparted, чтобы изменить его размер. Оставьте свой старый на случай, если пойдет не так :-)

Кстати, этот путь бесплатный.


2
Мне нравится бесплатная часть здесь, хотя ничто не сравнится с ХОРОШИМ рабочим программным обеспечением, которое делает все (вместо 3 бесплатных программ)
— Ivo Flipse

1
Это всего лишь две бесплатные программы, и это совершенно безболезненно. Загрузки ISO не проблема.
— Крейгмоливер

Я могу подтвердить, что это работает. Я успешно переместил свой дополнительный диск с Windows 7 с диска 160 ГБ на диск 1 ТБ. Клонировал его на мой Linux-диск с помощью Clonezilla. Восстановил его на новом диске и изменил его размер с помощью средства управления дисками Windows 7. Это было от NTFS до NTFS, хотя.
— Томас Ватнедал

Вы говорите «клонировать диск», хотя он попросил клонировать раздел. Также он сказал, что другая файловая система.
— Бароп

5

Решение, которое я использовал в прошлом tar. Если разделы имеют одинаковый размер и тип, вы можете использовать dd.

Вот мой ответ на затруднение:

  1. загрузиться с использованием живого компакт-диска, такого как Slax
  2. убедитесь, что разделы, которые вы хотите, находятся на новом диске
  3. убедитесь, что старый и новый диски смонтированы, например, /tmp/driveoldи / tmp / drivenew '
  4. запустить из терминала следующую tarкоманду:

    (tar cp --xattrs /tmp/driveold/path) | (tar x /tmp/drivenew/path)

  5. повторите для каждого раздела, который нужно скопировать

Это работает для каждого раздела, на котором я когда-либо пробовал (исключая /boot, для которого я гарантирую, что разделы идентичны, и использую dd).


2
Мне нравится это решение, потому что оно очень простое, но я думаю, что вам понадобятся некоторые дополнительные параметры, такие как p (сохранить разрешения), чтобы получить все метаданные.
— Джей Конрод

1
ты прав на р - я добавил это :)
— Уоррен

2
Говоря о метаданных, следует также использовать --xattrsопцию (хранить ACL и информацию SELinux).
— Кристиан Чиупиту

2 гудрона, связанные с трубой, можно заменить на cpio --pass-through.
— Кристиан Чиупиту

1
Какая версия tarимеет --xattrsопцию? Не мой. Я предлагаю использовать rsyncили просто cpвместо: serverfault.com/questions/306538/…
— Тедди

2

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


То есть отличная идея - за исключением , если вы не используете LVM, это немного боли :) Спасибо за предложение, хотя!
— Уоррен

Что следует учесть при следующей установке :-)
— pgs,

2

+1 к Уоррену и использовать смолу.

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

Если вы смоделировали сбой диска (отключите питание от старого диска), начните восстановление на новый диск. И когда вы закончите, вы запускаете старый диск и проверяете их наличие всех файлов.

Если они идентичны, вы оба перенесли все свои данные, и вы знаете, что ваш план резервного копирования действителен и работает.


хорошая идея - хотя для тех из нас (<whistle mode = "innocent" />), у которых нет «резервного» решения, это также может быть хорошее время для его создания :)
— warren

1
:)
— Йохан

2

Другим вариантом будет загрузка с liveCD и монтирование старого диска только для чтения. Это сделано для того, чтобы livecd не мог изменить его во время копирования. Затем rsync -avz /mnt/olddisk/ /mnt/newdisk(завершающий слеш после olddisk необходим). Как уже упоминали другие, если это загрузочный диск, который расширяется, вам нужно будет перезапустить grub-install <new device>его, прежде чем он станет загрузочным.


есть один, от которого я бы не хотел :)
— Уоррен

1

Большинство утилит клонирования диска могут сделать это. Мне нравится использовать g4u из livecd. Призрак хорош, но я бы предпочел использовать бесплатный.


1

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

Norton Ghost ™ 14.0 делает то или иное программное обеспечение для изображений


Вот список программного обеспечения для клонирования дисков

Сравнение программного обеспечения для клонирования дисков [wikipedia]


4
Acronis True Image - еще одна альтернатива ( acronis.com/homecomputing/products/trueimage )
— fretje,

6
К сожалению, этот метод требует покупки Norton Ghost
— craigmoliver

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.