Linux: укажите корневую файловую систему с возможностью отката

Linux: укажите корневую файловую систему с возможностью отката

Я знаю, что мог бы использовать initrd/initramfs, чтобы сделать все необходимое, но я бы хотел избежать этого варианта, если это возможно.

Мне нужна "нормальная" работающая rootfs (на SD-карте встроенной системы, если это имеет значение). Если по какой-либо причине загрузка не будет успешной (например, ядро ​​не сможет чисто смонтировать эту систему), следует попытаться загрузиться с "восстановительной" rootfs (SquashFS на Flash), которая будет отвечать за восстановление "нормальной" файловой системы и перезапуск.

Можно ли сделать что-то подобное, не прибегая к initramfs?

Причина, по которой мне не нужны initrd/initramfs, заключается в ограничениях размера Flash-памяти.

решение1

Вы можете использовать систему "восстановления" для тех же целей, что и initramfs. Это почти одно и то же.

Конечно, он не будет загружен в оперативную память так же, как initramfs, но это единственное отличие, и он все равно может служить той же цели — смонтировать настоящий rootfs, проверить, все ли в порядке, pivot_root в него и выполнить его /sbin/init. Если монтирование не удается, он выполняет восстановление.

(И наоборот, вы можете удалить файловую систему squashfs и просто поместить все инструменты восстановления в initramfs — если на устройстве достаточно оперативной памяти для их хранения.)

Связанный контент