Можно ли загрузить текущий диск с которого вы загрузились?


22

У меня есть копия FreeNAS, работающая с живого USB-диска. И я хотел бы сделать резервную копию этого.

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

Или мне придется выключить машину и запустить ddдругую машину?

Ответы:


15

Вы можете запустить ddна работающем диске. Это следует делать в случае серьезных изменений в структуре диска. Также вам следует fschkуказать пункт назначения, как только вы закончите. Чем тише система во время резервного копирования, тем лучше.

Запуск холодного резервного копирования (файловая система отключена) - лучший вариант, если вы хотите использовать `dd '.

Есть лучшие варианты для резервного копирования работающей системы.

  • tarили cpioбудет читать файлы и достаточно хорошо справляется с открытыми файлами. Вы, вероятно, пропустите некоторые изменения, которые происходят во время резервного копирования.
  • rsyncведет себя как tarв отношении открытых файлов, так и отсутствующих изменений во время резервного копирования. Он может использоваться для первоначального резервного копирования и очень хорошо выполняет инкрементные резервные копии. При выполнении инкрементного резервного копирования можно пропустить копирование неизмененных частей файла.

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


Хорошие моменты по использованию инструментов более высокого уровня - tar, cpioи rsyncвсе работы в рамках файловой системы , так что это может быть целесообразно. ddOTOH, работает напрямую с дисковыми блоками, минуя ФС.
Писквор

16

Это технически возможно (как в «стрельбе в себя»), но крайне нежелательно, особенно если любой из разделов диска доступен для записи.

Представьте себе этот сценарий:

  • dd начинает читать диск с самого начала и весело подходит к концу.
  • Когда он на полпути, ОС записывает файл на диск. Файл несколько фрагментирован - одна его часть физически расположена к началу диска, а другая к концу.
  • Нет проблем для ОС - он прекрасно пишет файл и выталкивает его из кэшей записи; теперь он правильно записан на диске.
  • Проблема в вашей резервной копии: ddона уже прошла и скопировала первую часть файла, поэтому при попадании во вторую часть будет записано противоречивое состояние - каждая часть будет из другой версии!

Если вы можете перемонтировать все разделы на USB-диске только для чтения, эта проблема не должна возникать (акцент на « не должен »); это требует значительной предварительной установки / подготовки в автономном режиме и настройки времени загрузки /раздела - хотя я не думаю, что обычно вы можете перемонтировать /r / o на лету, будет зависать несколько вещей, требующих r / w доступ.

Таким образом, запуск копирование , вероятно , не будет нарушать запущенную систему, но не даст вам работоспособную резервную копию , что делает спорную задачу. Я настоятельно рекомендую сделать копию в автономном режиме - что потребует выключения компьютера.


1
Спасибо за отличный ответ, я надеялся на легкий выход, но вы правы, я не могу представить хороший сценарий, вытекающий из того, что вы указали.
Stuartc

1
@stuartc: Для этого потребуется серьезное сотрудничество со стороны драйвера FS - информирование процесса копирования о всех изменениях, произошедших с момента начала копирования, и о том, достигает ли оно согласованного состояния. Если это серьезная проблема, обратите внимание на файловые системы, которые поддерживают создание снимков, например btrfs.
Писквор

4

Вы никогда не должны создавать образ смонтированного раздела. Неважно, загрузился ли ты с него или нет.

Но вам будет трудно размонтировать раздел, с которого вы загрузились.


4

Для этого я использую dump(8)на FreeBSD. Напримерdump -auLf /mnt/some-other-disk/root.dmp /

-LОпция позволяет копирование файловой системы живого, взяв снимок.

Дампы можно восстановить с помощью restore(8).

Это может работать только с UFS; Я не уверен в этом.


0

Удивительно, сколько советов по резервному копированию не упоминают следующее:

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

Этого легче всего достичь, если на нем не работает ОС, когда вы пытаетесь создать образ.

Для резервного копирования и восстановления его можно смонтировать, и, скорее всего, так и должно быть, но не под управлением работающей ОС в качестве своего root (/).


Причина: в каждой многозадачной операционной системе, в том числе и в linux, одновременно выполняются потоки кода, влияющие на файлы, что делает невозможным выполнение точных общесистемных резервных копий или восстановлений с набором файлов.

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


Варианты: Резервное копирование должно выполняться либо специальным программным обеспечением и / или дисковыми системами (например, Acronis в Windows, например, для резервного копирования работающей ОС), либо внешней вторичной ОС, обращающейся к файлам неработающей ОС, которые вы пытаетесь выполнить. резервное копирование или восстановление.

!!! Поэтому, когда вы видите веб-страницы, на которых вам советуют использовать, например, Deja-dup для резервного копирования, это работает только /homeи только тогда, когда вы не запускаете никаких программ, влияющих /homeна работу deja-dup. (И даже тогда вы можете захотеть скрестить пальцы, если вы действительно не знаете, что может касаться ваших файлов с помощью демона.)


0

Я уже делаю это с успехом в тестовой среде, с fsck и rsync в конце, чтобы улучшить шансы на хорошую копию устройства.


1
Можете ли вы объяснить, как вы используете rsyncдля улучшения дампа всего диска (всей файловой системы), сделанного с  dd? (И, если у вас есть доступ rsync, почему бы вам просто не использовать его как основной инструмент резервного копирования, а не как вспомогательный, вспомогательный?) отредактируйте  свой ответ, чтобы сделать его более понятным и полным.
Скотт
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.