2

Кажется, это очень общая проблема для меня. У меня есть встроенная система под управлением Linux из корня только для чтения. Существует демон обновления, который устанавливает новые образы программного обеспечения, когда они доступны, перезаписывая целые разделы. Мой вопрос: каков наилучший подход для этого из работающей системы?

  1. dd обновленный раздел в /dev/sdX , который является текущим (только для чтения) монтируемым корнем?
  2. переместить текущий корень с помощью pivot_root в tmpfs, как обсуждалось здесь?
  3. использовать 2 корневых раздела и переключать "активный" один после каждого обновления?

Недостатки 2 и 3 в том, что мне нужно много оперативной памяти (для 2) или дискового пространства (для 3). Существует ли безопасный способ перезаписи корневого раздела, доступного только для чтения, из работающей системы и перезагрузки в обновленную систему?

1 ответ1

0

Итак, я сделал 1. подход и столкнулся с большими проблемами, когда система перестала быть стабильной из-за проблем с файловой системой. Я думаю, что перезаписать смонтированный раздел не очень хорошая идея (хотя это и не удивительно). Чтобы это исправить, я попробовал 2. идею (pivot_root), которая работает, но имеет некоторые недостатки. Один из них: вы должны остановить большинство запущенных процессов и / или перезагрузить компьютер как можно скорее после завершения обновления. Finnaly, я попробовал 3. идею, и единственным недостатком является "растрата" дискового пространства. Все остальное работает довольно хорошо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .