Насколько надежна резервная копия системы, созданная с помощью команды dd?

Опции для configureобъясняются в выводе configure --help, но исходный дистрибутив coreutils также имеет хорошую документацию в текстовом файле INSTALL.

Короче говоря, --prefixустанавливает префикс установки. Это верхний каталог, в котором будут установлены bin, libи другие каталоги. Префикс установки по умолчанию часто /usr/local, но часто требуется установить программное обеспечение в другом месте, поэтому существует этот параметр --prefix.

Диспетчер пакетов Homebrew для macOS, который вы, похоже, используете, использует --prefixдля установки основных утилит GNU по определенному пути и предоставляет к ним доступ с помощью символических ссылок и возможности изменить вашу PATHсреду. Переменная. Homebrew разработан так, чтобы не устанавливать вещи непосредственно в /usr/local, что позволяет вам использовать этот путь установки для вещей, которые вы компилируете и устанавливаете самостоятельно. См. FAQ по Homebrew для информации и предостережений по этому поводу.

С помощью --program-prefixможно установить строку, которая должна быть добавлена ​​в начале ко всем исполняемым двоичным файлам. Очень распространено префикс исполняемых файлов GNU coreutils и исполняемых файлов другого программного обеспечения GNU с префиксом gна не -Linux Unices, которые уже предоставляют собственные утилиты с такими же именами. Это означает, что вы получите gls, gxargs, gniceи т. д. в качестве имен двоичных исполняемых файлов.

--without-gmpотключает использование gmp, которая является библиотекой GNU для арифметики произвольной точности.

Параметры являются общими для всех программ, поставляемых со сценарием configure, сгенерированным с помощьюautoconf. Обычная форма последней опции — --without-xxx, где xxx— это какая-то другая библиотека, которую хотелось бы избежать использования (или хотеть использовать с--with-xxx). Часто есть дополнительные опции --disable-xxxи --enable-xxxдля отключения и включения определенных функций программы.

3
09.01.2021, 19:29
3 ответа

Вы правы в своих предположениях :Если вы просто делаете снимок с помощью dd, результирующие сохраненные данные могут быть противоречивыми. Так же могут быть ошибки при чтении с sdcard, а так же ошибки передачи (что редко но возможно ).

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

Для максимальной безопасности:

  1. Создайте отдельный раздел для резервного копирования данных.
  2. Сделайте резервную копию дважды и сравните хеш-суммы -, они должны совпадать.
  3. Используйте par2 для резервных копий данных и проверяйте тома par2 при создании.
3
18.03.2021, 22:37

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

Даже если копия файловой системы успешно монтируется и выглядит хорошо, у вас нет гарантии, что скопированные вами блоки соответствуют блокам, выделенным для конкретного файла. (Возможно, у вас есть запись в каталоге для файла, который имеет размер x МБ, но содержит неполные данные внутри выделенных для него блоков.)

Это можно показать в качестве примера последовательного копирования с начала до конца SD-карты. Примерно в середине -пути резервного копирования считайте, что запись в каталоге создается для нового файла, а содержимое файла записывается на диск. Метаданные могут быть захвачены, потому что они записаны в каталог, физически расположенный ближе к концу SD-карты, поэтому файл, похоже, существует в резервной копии. Однако,содержимое файла могло быть записано на более раннюю часть диска, которую вы уже обработали, и поэтому не делайте его резервной копией.

Не делай этого.

Наилучшим вариантом является копирование моментального снимка (см. LVM, файловые системы с таблицами моментальных снимков и коммерческое программное обеспечение ).

Следующим лучшим способом является выполнение резервного копирования на основе файла -(см. rsyncиrsnapshot); это по-прежнему зависит от условий гонки, когда два или более файла могут оказаться несинхронизированными в резервной копии, и поэтому не подходит для непрерывно изменяющихся файлов, таких как файлы базы данных, но в основном большинство файлов будут скопированы успешно и правильно. Если вам нужно сделать резервную копию базы данных в этом сценарии, рассмотрите возможность использования собственного инструмента резервного копирования базы данных, а затем используйте rsync/ rsnapshot, чтобы скопировать полученный файл резервной копии. Вам также нужно будет отдельно и явно скопировать таблицу разделов диска, и разделы файловой системы, не относящиеся к -, такие как те, которые участвуют в процессе загрузки (dd, могут быть здесь вашими друзьями, если вы подойдете к этому осторожно ).

8
18.03.2021, 22:37

Да, использование ddдля резервного копированиясмонтированнойфайловой системы имеет определенные риски. Как сказал кто-то здесь, «Если вам повезет, вы обнаружите проблемы вскоре после резервного копирования; если вам не повезет, вы обнаружите их гораздо позже».

Я не думаю, что вы используете правильный инструмент для работы. Поскольку у вас есть Raspberry Pi (и , есливы используете RPi OS Buster ), вы можете использовать image-utils. Он использует rsyncвместо dd, поэтому риск повреждения файла очень низок. Он также создает файл образа в качестве резервной копии -, который легко прошивается на SD-карту с помощью rufusили etcher, и он намного меньше, чем созданный файл образа dd-.

У вас есть возможность обновить существующую резервную копию образа или создать новую. В любом случае резервное копирование выполняется быстро -«полное» резервное копирование на моем RPi занимает около 15 минут.

image-utilsможно скачать здесь на форуме организации Raspberry Pi. Автор оказывает поддержку в том же месте, и это, кажется, довольно популярно. У меня нет связи, но я нахожу это очень полезным.

РЕДАКТИРОВАТЬ @ 2021 -06 -07

Этот вопрос был объявлен дубликатом , и, возможно, это точная оценка с общей точки зрения Linux и Unix. Однако,Я хотел обратить внимание на тот факт, что существует (по крайней мере одно )решение для резервного копирования, которое работаетуникальным образомс ОС Raspberry Pi:***image-utils***.

Различные вопросы по резервному копированию задаются в RPi SE время от времени, а для тех, кто попадает сюда в поисках решения, есть более подробный ответ доступен там.

2
18.03.2021, 22:37

Теги

Похожие вопросы