Использование dd для резервного копирования диска на тот же диск

Использование dd для резервного копирования диска на тот же диск

Я пробовал использовать ddдля резервного копирования жесткого диска моего компьютера, но столкнулся с некоторыми довольно запутанными результатами. Я видел на нескольких источниках (например:http://www.backuphowto.info/linux-backup-hard-disk-clone-dd,http://debianhelp.co.uk/ddcommand.htm) что они включают в себя что-то вроде:

dd if=/dev/sda of=~/backup.img

1) Если я не совсем запутался, это будет попытка создать резервную копию всего диска в файле на диске, не так ли?

Я пытался использовать этот метод, но сначала сжал вывод, чтобы сэкономить место. Чтобы сжатый файл не занимал кучу места, пытаясь скопировать все свободные данные, я записывал zerofreeнули на все неиспользуемое пространство моего диска. Мой диск имеет общую емкость ~320 ГБ, и около 100 ГБ из них используется, оставляя ~220 ГБ свободными.

Когда я попробовал использовать следующую команду:

dd if=/dev/sda | gzip -c > ~/image.img.gz

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

2) Почему резервная копия занимает так много места? Это потому, что ddвидит файл, в который она записывает, а затем пытается сделать резервную копию и его тоже? Или возможно, что я не смог использовать ее zerofreeдолжным образом, и поэтому просто куча случайных мусорных данных копируется, несмотря на мои усилия предотвратить это?

решение1

Невозможно точно скопировать жесткий диск, пока он модифицируется.

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

Да, он попытается. ddКоманда прочитает блок (с диска), сожмет блок, запишет блок (в файл на этом диске) и перейдет к следующему блоку. Образ будет иметь частично записанные backup.imgи частично записанные указатели файловой системы на этот файл.

Примечание: я значительно упростил буферизацию канала между ddи , gzipпоскольку подробности здесь не имеют значения.

Почему резервная копия занимает так много места?

Вероятная причина в том, что он пытается скопировать частично записанный backup.imgфайл. Другие факторы требуют глубоких знаний о структурах файловой системы, которую вы используете.

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