
Я пробовал использовать 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
файл. Другие факторы требуют глубоких знаний о структурах файловой системы, которую вы используете.