Можно ли использовать dd для выполнения частичного резервного копирования образа?

Можно ли использовать dd для выполнения частичного резервного копирования образа?

Этот вопрос связан содин из нескольких лет назад, где я искал способ сделать частичную резервную копию образа. На эту часть так и не ответили, так что это отдельный вопрос для нее.

Проблема

  • Я планировал уменьшить раздел Windows и хотел сначала сделать резервную копию образа, для страховки. Если бы потребовалось восстановление, резервную копию нужно было бы восстановить на сжатом разделе.

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

  • Инструмент сжатия разделов Windows заранее сообщает, насколько он сократит раздел. Мне нужно было изображение только той части раздела, которая останется после сжатия.

  • У меня была резервная копия на основе файлов, поэтому я не беспокоился о файлах, которые могли оказаться за пределами области сжатия и потенциально не попасть в резервную копию.

Концепция решения

Здравый смысл подсказывает, что эти требования не могут быть выполнены с помощью dd. Однако, зная достаточно, чтобы быть опасным, есть подход, который, кажется, должен быть решением (я предполагаю, что ddрешение на основе ) будет выполнено из Linux).

Идея:

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

Это, кажется, сырой материал для расчета ddпараметров. Собирать части вместе — это то, чего я раньше не делал. Так чтовопросявляется:

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

Предостережение

Определение и копирование нужного раздела раздела с голого железа выглядит как нечто простое. Однако неясно, привязан ли NTFS MFT к исходному размеру раздела, так что восстановление его на сжатом разделе приведет к его повреждению, по крайней мере, за пределами возможности чего-то вроде chkdskвосстановления.

Вопрос Цель

Theконечная цельзаключается в создании частичной резервной копии образа раздела Windows, как описано. Эта проблема никогда не привлекала решения в исходном вопросе, поэтому этот вопрос призван предложить зерно потенциального подхода. Однако моя концепция может не сработать. Таким образом, хотя решение и ddявляется фокусом этого вопроса, я бы не стал исключать альтернативное решение с использованием встроенных или общедоступных бесплатных инструментов. Таким образом, успешным ответом может быть:

  • Рабочее ddрешение
  • Авторитетное и окончательное объяснение того, почему ddрешение на основе -не может работать (или, по крайней мере, нельзя быть уверенным в его надежной работе)
  • Альтернативное решение, которое достигает поставленных целей.

Приложение

Ответ Камила Мациоровски определяет еще один вопрос:Клонировать только используемое пространство на жестком диске, это довольно похоже, но я не думаю, что это дубликат. Некоторые ключевые различия:

  • Тот вопрос пытается клонировать только используемое пространство. Этот вопрос пытается клонировать определенную часть раздела.
  • Этот вопрос не имеет никаких особых ограничений для получения результата. Этот требует, чтобы изображение было в первозданном текущем состоянии, без изменения или риска для содержания, что исключает любой тип "подготовки".
  • Тот вопрос касается целого диска и файловой системы Linux. Этот вопрос касается части раздела и NTFS.

решение1

Я могу сказать, что этопроблема XYи настоящий вопрос таков:Как клонировать только используемое пространство на жестком диске(или раздел)? Я не хочу указывать на другой ответ без объяснения, почему он должен быть лучше, чем ваша предложенная идея; поэтому вот он:

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

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

Много раз я делал что-то похожее на то, чего вы хотите добиться, в основном с NTFS. Мой способ работает независимо от того, где в файловой системе находятся свободные куски. В основном:

  • записывать нули в файл до тех пор, пока не останется места,
  • синхронизация,
  • удалить файл нулей,
  • umount,
  • перенести изображение в разреженный или сжатый файл.

Это может занять много времени. Убедитесь заранее, что файловая система исправна. Также не делайте этого, если вы подозреваете, что диск неисправен.

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

К сожалению, такой образ не может быть восстановлен на сжатый раздел. Образ будет полезен, если процесс сжатия не удастся и вы потеряете исходные файлы. Я думаю, вам нужен инструмент, который может делать резервные копии файлов (и метаданных внутри файловой системы), чтобы иметь возможность восстановить на меньший раздел. Ну, ddтакого инструмента нет.

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