Обновление rootfs с сохранением / etc

286
Benjamin T

Я пытаюсь найти решение, чтобы легко обновить встроенное устройство Linux.

Я искал вокруг, и одно из решений, которое я нашел, состоит в том, чтобы иметь 2 раздела rootfs. Допустим, A и B. Один из них активен, то есть загружается загрузчиком во время запуска. Допустим, A. Затем, когда обновление завершено, новый rootfs записывается в B, затем загрузчик переконфигурируется для использования B и, наконец, система перезагружается.

Эта стратегия, кажется, широко распространена и используется различными программами обновления, такими как SWUpdate.

Мой вопрос здесь: как насчет /etc? Выполнение того, что описано выше, /etcбудет полностью заменяться при каждом обновлении системы. Это может вызвать некоторые проблемы, такие как стирание ключа хоста SSH (находится в /etc/ssh). Это также может стереть пользовательские настройки, такие как IP-конфигурации.

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

0
Только некоторые мысли, определенно не ответ: если вы хотите сохранить всю папку, вы можете создать третий раздел и смонтировать его в `/ etc`. Если ваше ядро ​​поддерживает это, вы можете использовать [OverlayFS] (https://en.m.wikipedia.org/wiki/OverlayFS). Таким образом, вы все равно сможете обновлять файлы в `/ etc`, но пользовательская конфигурация будет накладываться поверх нее. В качестве дополнительного преимущества, заводские настройки и пользовательские настройки разделены, поэтому вы можете легко импортировать / экспортировать пользовательские настройки или восстанавливать заводские настройки. Однако я ничего не знаю о встроенных системах, поэтому мои идеи могут быть ужасно ошибочными. danzel 5 лет назад 0

0 ответов на вопрос

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