Я должен сделать резервную копию моего жесткого диска. Я хочу использовать dd
и поместить изображение на внешний жесткий диск.
- Могу ли я сделать это, используя
dd
ОС, которая находится на самом жестком диске, или мне нужно загружаться с другого устройства, например с LiveCD? - Безопасно ли вообще делать образ устройства, если оно установлено и работает?
- Что делать, если устройство смонтировано, но я уверен, что во время работы другой операции ввода-вывода не
dd
происходит?
Я уверен, что rsync
это лучший инструмент для резервного копирования, особенно для инкрементных.
Но меня это интересует dd
, потому что я хочу сделать резервную копию и других устройств хранения, и он также копирует данные, хранящиеся в неразмеченном пространстве. Например, моя электронная книга использует неразмеченное пространство для хранения загрузчика, ядра и других данных.
backup
dd
disk-image
Марко Сулла
источник
источник
Ответы:
В целом это не безопасно. FS предполагает, что операции записываются в определенном порядке, поэтому она может записать новые данные файла и затем сделать указатель на него из других данных, точные детали зависят от файловой системы. Представьте, что произойдет следующее:
dd
читает из местоположения X, которое содержит мусор или некоторые данныеdd
читает из местоположения X + 1 ссылка на местоположение XС точки зрения резервного копирования вы получаете мусорные данные. Однако есть несколько способов обойти это:
xfs_freeze
она одна, и я не знаю никакой другой, но такая возможность существует, по крайней мере, в теории)И последнее замечание -
dd
возможно, это не лучший способ резервного копирования. Он копирует полный диск, что часто приводит к расточительству, поскольку вы копируете также и «мусор». Если вам нужны образы дисков , лучше использовать partimage . Если вам не нужен лучший вариант, используйте rsync, tar в дифференциальном / инкрементном режиме и т. Д. Или систему полного резервного копирования, такую как bacula , tarsnap или одну из многих других. Дедупликация данных может творить чудеса с размерами резервных копий.источник
Это зависит от того, для чего предназначен раздел, и какова цель копии. Однако я скажу, что в целом
dd
это неуместный инструмент для резервного копирования файловых систем . Это не то, для чего это было предназначено.Это будет тратить много времени на копирование пустых разделов раздела.
Это может привести к несоответствиям, если файловая система в настоящий момент смонтирована, отчасти потому, что она является объектом уровня ОС и может быть не синхронизирована с базовым блочным устройством.
sync
Первоначальный вызов не очень поможет в этом, так как процесс не мгновенный.Используйте
cp -a
илиrsync
вместо. Затем вам, конечно, нужно создать целевой раздел, так что он не так прост, но гораздо безопаснее и гибче. Если вам нужно создать образ файловой системы , см. Ниже.Если вы собираетесь скопировать корневую файловую систему, абсолютно не используйте
dd
. Вы должны использовать что-то вродеrsync -ax
(илиcp -ax
в отдельных каталогах верхнего уровня), потому что есть множество вещей, которые НЕ должны быть в копии . В Linux это включает в себя:Некоторые из них на самом деле являются интерфейсами ядра, а не настоящими каталогами на диске. Если вы копируете их, вы копируете кучу информации, которая не будет применяться в копии; если вы попытаетесь запустить систему с ней, это будет просто потраченное впустую пространство, так как реальный интерфейс будет смонтирован сверху. Другие содержат временную информацию, используемую запущенными процессами, и они представляют большую проблему, поскольку система не сможет разобрать мусор, если вы скопируете это.
Если вы хотите создать файл образа корневой файловой системы (или любой файловой системы), создайте пустой файл образа - это подходящее использование для
dd
:Это изображение размером 1024 МБ (1000000 * 1024). Отрегулируйте,
count
если хотите, другой размер. Создайте, например,ext
файловую систему в файле :Он предупредит вас, что это не реальное блочное устройство. Приступить. Теперь смонтируйте файл образа:
/mnt/img
должен существовать, но может что угодно. Теперь вы можетеrsync
(илиcp -a
) в/mnt/img
. Содержание останется внутриwhatever.img
когда вы отключите его.Тем не мение...
Просто чтобы прояснить ситуацию, используйте только что описанный метод образа файловой системы, если вам абсолютно необходим файл изображения по любой причине. Если ваша цель - скопировать раздел на другой жесткий диск, вам не нужен образ : создайте новый раздел с пустой файловой системой на этом диске, смонтируйте его и скопируйте туда. Вместо этого вы можете просто поместить содержимое файловой системы в пустой каталог и заархивировать его:
Затем вы можете развернуть его в существующем (пустом или ином) разделе, поместив его на верхний уровень и используя:
Остерегайтесь, что будут перезаписывать существующие файлы, если их пути совпадают с чем-то в архиве. В противном случае существующая иерархия каталогов не изменится.
источник
cp
и rsync есть возможность-x
избежать рекурсии в другие файловые системы. Ответ Мачея лучше всего объясняет, почемуdd
здесь абсолютно неуместно (почти гарантированно получится непригодная копия, если вы не примете меры предосторожности, указанные Марком , из-за записей, которые в противном случае произойдут во время копирования).dd
Я не буду копировать на диск вещи, которые не являются настоящими каталогами, поэтому я не уверен, откуда исходит ваша первая мысль. Например, подключенные устройства/mnt
, узлы/proc
и т. Д. Не будут частью данных, которыеdd
собираются, поскольку они не находятся на диске. Для несмонтированных файловых системdd
это совершенно справедливо; вы получите точную копию. Единственная причина, по которой он не подходит для смонтированных файловых систем, заключается в том, что данные в системе могут изменяться / частично записываться в течение длительного периода времени, необходимогоdd
для работы.rsync - это инструмент выбора для резервного копирования файловой системы, и он может сделать загрузочную резервную копию текущей работающей ОС.
Некоторые предостережения:
Некоторые преимущества rsync перед другими методами, такими как tar:
Резервные копии образов имеют свое место, но они копируют диск точно так же, как есть, включая любые проблемы, которые могут у вас возникнуть. Резервная копия файла создает новый каталог и имеет побочный эффект линеаризации (дефрагментации) вашего диска в процессе. Если вы хотите сделать 10 идентичных копий вашей текущей ОС, я бы использовал rsync для мастера копирования, а затем dd (или аналогичный) для остальных.
источник
Это зависит от того, что вы подразумеваете под «текущей рабочей системой». Если вы просто хотите избежать использования загрузочного диска и не беспокоиться о нарушении работы служб на компьютере, это возможно:
sync
mount -o ro /
./etc/mtab
; игнорируйте его).Я использую этот метод для создания архива компьютера, с которого я только что обновился, и не ожидаю, что он будет использовать намного больше. Это не очень хороший метод для активной системы: она медленная (занимает часы или дни), резервные копии огромны (поэтому вы не можете хранить больше нескольких), и это невероятно разрушительно для использования резервируемой системы. вверх. Для повседневного резервного копирования я рекомендую что-то, что работает на уровне файловой системы, например
rsnapshot
.источник
/etc/mtab
на/proc/self/mount
них, что будет работать, даже если у вас есть такие вещи, как пространства имен chroot или fs.mount -o remount,ro /
может записываться. Но как только эта команда вернется, в какой ситуации будут происходить последующие записи?Используйте Clonezilla , серьезно. Это лучшая утилита, похожая на Norton Ghost, с открытым исходным кодом. Он будет выполнять клонирование как разделов, так и полных дисков, либо с диска на диск, либо с диска на файловую систему (сохранить как файл). Он поддерживает большинство файловых систем Linux, NTFS, FAT32 и многое другое. Он может сохранять на внутренний диск, внешний диск или даже по сети на общих ресурсах SMB или NFS.
Он очень прост в использовании и сэкономит вам много времени.
Изменить: чтобы ответить на вопрос, нет, вы не можете
dd
большинство файловых систем, пока они смонтированы, потому что вы рискуете получить несогласованную копию вашей файловой системы, поскольку чтение с блочного устройства не является атомарным. Например, если вы копируете 100 блоков, система могла обновить первый блок и последний блок, пока вы были только на полпути, что означает, что ваша копия будет содержать измененный последний блок, но не первый.источник