2

Несмотря на большое количество поисков в Google, я не смог найти ответ на свою проблему.

Я являюсь системным администратором Linux и хочу сделать резервную копию установки Windows XP (но это может быть любая другая ОС), расположенной на первом разделе жесткого диска объемом 160 ГБ (который я сократил до минимального размера, около 4,8 ГБ), и MBR, в том же файле. Цель состоит в том, чтобы получить один образ диска, который я мог бы использовать для перезаписи нового жесткого диска (например, dd if =/my/file.img of =/dev/sda) и использовать gparted для увеличения раздела до полного нового диска. впоследствии размер, что позволяет использовать образ, такой же простой в использовании, как образы гибридных дисков, выпущенные Debian или Ubuntu для их живых систем (которые можно записывать напрямую на USB-накопители с помощью dd, но я хочу использовать их только на обычных жестких дисках).

Я уже знаю, как сделать резервную копию / восстановить MBR или отдельный раздел с помощью dd, но теперь я хотел бы сделать резервную копию обоих в одном файле.

Я еще ничего не пробовал, но подумал о двух методах:

  1. Объединить (например, с cat) файлы MBR и образа раздела в один файл образа, но я не уверен, что между ними на исходном диске ничего нет.

  2. Используйте опцию dd "count" для резервного копирования жесткого диска до конца первого раздела, но затем я не знаю, как рассчитать правильный размер для завершения копирования. Возможно, количество байт, скопированных при резервном копировании раздела (который выводит dd после его завершения) с 512 байтами, добавленными для MBR, но, опять же, я не знаю структуры данных жестких дисков достаточно глубоко, чтобы быть уверенным, что нет никаких данных между ними, что я должен добавить к общему.

Резервное копирование всего диска в разреженный или сжатый файл не вариант, поскольку я хотел бы иметь возможность использовать этот образ на диске, меньшем, чем исходный (но, конечно, больше, чем сжатый раздел).

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

1 ответ1

2

Ваш вариант № 2 должен работать. Например, если fdisk или parted показывает, что раздел Windows заканчивается в секторе 9 375 000, вы можете сделать следующее:

dd if=/dev/sda of=/path/to/winxp.img bs=512 count=9375001

(Обратите внимание на добавление 1 к значению count , поскольку сектора нумеруются, начиная с 0.) Чтобы скопировать этот образ на другой диск, вы должны сделать обратное, и вы можете опустить параметры count и bs (хотя установка более высокого значения bs может повысить производительность; в моем примере это значение равно 4096, что является размером физического сектора в новом Расширенный формат дисков):

dd if=/path/to/winxp.img of=/dev/sdb bs=4096

Копия прекратится в конце файла. Пока диск имеет как минимум 9 375 001 сектор, все должно работать. На компьютере под управлением BIOS загрузчик находится в главной загрузочной записи (MBR; первый сектор диска). Иногда дополнительный код (например, для GRUB или некоторых типов программного обеспечения для шифрования диска) идет в секторах между MBR и началом первого раздела. Все эти сектора будут присутствовать в файле резервной копии. Хотя некоторые программы теоретически могут хранить данные за пределами разделов в самом конце диска, такая практика встречается редко. На самом деле, я не знаю ничего, что делает это, по крайней мере, на компьютере с BIOS/MBR. (Более новая система разделов таблицы разделов GUID, или GPT, сохраняет резервную копию таблицы разделов в конце диска. Таким образом, если вы хотите сделать резервную копию GPT-диска, вам нужно будет сделать что-то более сложное или выполнить операцию восстановления таблицы разделов после восстановления резервной копии.)

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

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