15

Я не уверен, как лучше объяснить это в теме, поэтому "вопрос" может быть неправильным. Но здесь идет. У меня три жестких диска. Диск A - это диск емкостью 320 ГБ, диск B - диск объемом 80 ГБ, а диск C - диск объемом 1 ТБ. Я скопировал данные с диска 80 ГБ на диск емкостью 1 ТБ и собираюсь изменить размер раздела (чтобы затем я мог скопировать данные с диска 320 ГБ).

У меня такой вопрос: если я загружаюсь в операционную систему на диске 1 ТБ, могу ли я использовать dd для копирования диска объемом 320 ГБ в другой раздел на этом физическом диске? Я знаю, что не должен копировать активный раздел поверх (то есть, я не могу скопировать данные с диска объемом 320 ГБ, если я использую эту операционную систему).

Я рассуждаю так: я пытался использовать Acronis TrueImage, Partition Manager и Image 4 DOS/Linux (оба приложения), и на копирование данных уйдет неделя. Это означает, что в течение недели я не могу пользоваться компьютером, что недопустимо (если только это не мой единственный вариант). Я надеюсь, что это работает, поэтому я могу по крайней мере использовать компьютер, пока я делаю копию.

Если мне нужно, я могу либо загрузиться с Live CD (не очень предпочтительный вариант), либо использовать "Диск B", но я бы хотел удалить этот привод как можно скорее.

2 ответа2

14

Да, то, что вы хотите сделать, будет работать нормально, если выполняются следующие два условия:

  1. Там нет (установлен) файловой системы на разделе вы dd'ing к.
  2. Перегородка вы dd'ing до, по крайней мере такого же размера , как тот , который вы dd'ing из (т.е. 320 ГБ).

Причина, по которой он будет работать нормально, состоит в том, что разделы - это просто файлы в UNIX. Их содержимое имеет особое значение, только если они содержат смонтированную файловую систему.

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

1 TB = sda, два раздела, sda1, с которого вы загрузились, и sda2, на который вы собираетесь

320 ГБ = sdb, один раздел, sdb1, с которого вы удаляетесь

Ваша команда будет выглядеть так:

dd if=/dev/sdb1 of=/dev/sda2 bs=1M

Параметр bs=1M предназначен для того, чтобы dd копировал данные большими кусками, а не отправлял запрос для каждого сектора.

5

В целом, это нормально, чтобы dd любой раздел, пока он не смонтирован. Если вам нужно смонтировать исходный раздел для чтения во время работы dd, было бы лучше смонтировать его только для чтения с параметром -o ro.

если вы хотите сначала загрузиться в исходный раздел amd, а затем использовать dd для его копирования, вы можете выполнить команду mount -o ro, remount /, чтобы сделать ее читаемой только после загрузки.

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