LINUX.ORG.RU
ФорумAdmin

Гибридная загрузка с RO/RW для архитектур arm и x86

 , , , ,


0

2

Приветствую

Есть необходимость сделать простой и устойчивый к сбоям питания контроллер на arm (raspberry pi) или на x86, если в процессе обнаружатся какие-то подводные камни. Копаю в сторону гибридных загрузок средствами overlayfs/aufs. В идеале хотелось бы: залить образ на флешку, загрузиться из системного раздела, настроить и сохранить результат. Перезагрузиться, замонтировав корневой раздел в RO, а всю запись вести в tmpfs. Для обоих систем дистрибутивом выбран opensuse, как наиболее удобный лично мне. Прошу помощи с выбором инструмента реализации задумки. Варианты:

1) Кастомное ядро + вручную собранный initrd со скриптом загрузки. В интернете есть примеры. Однако это долго, муторно и похоже на изобретение велосипеда.

2) Dracut. Вроде как он кросс-платформенен и запиленный модуль будет одинаково успешно работать как для x86, так и для arm. Пока что самый вкусный вариант

3) Opensuse KIWI imaging system. Вот тут надо скорее всего спрашивать у разработчиков сабжа. Для x86 подобные фокусы система должна уметь из коробки, но с arm там полная неопределенность...

overlayfs/aufs

зачем? Почему не f2fs/ext4?

Кастомное ядро + вручную собранный initrd

либо трусы, либо крестик.

emulek
()
Ответ на: комментарий от emulek

Потому что экономим ресурс на запись на дешевую flash память и гарантировано защищаемся от ошибок при сбое питания.

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

Про оверкилл ядро+initrd принимается, не подумал

stein_h
() автор топика
Ответ на: комментарий от stein_h

Потому что экономим ресурс на запись на дешевую flash память и гарантировано защищаемся от ошибок при сбое питания.

у меня система в нетбуке так и грузится в RO(точнее lilo вообще не монтирует, так читает) с флешки в initrd. Но ядро обычное, ваниль от Патрика. Я, правда, потом всё равно в rw монтирую, ибо мне плевать на ресурс. А от сбоев помогает бекап.

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

а зачем? Просто из initrd монтируй rootfs как тебе надо (в ro например). У меня в оперативке /home, /tmp. Можно и корень в ro, тоже работает без проблем (только бекапы так не делаются, они у меня сначала на флешку, а уж потом в облака и т.п, и логи не пишуться)

emulek
()
Ответ на: комментарий от stein_h

Linux можно успешно стартовать с / в ro? что-то сумнительно.

он так и стартует. УЖЕ. А потом remount,rw, если всё хорошо. А с initrd у тебя получается маленький линукс в RAM (ессно в rw), а уж там ты делаешь remount как хочешь.

Зачем тогда overlayfs на livecd городят?

а как ты на FAT сделаешь корень?

PS: http://emulek.blogspot.ru/2013/07/slackware-f2fs.html

emulek
()
Ответ на: комментарий от stein_h

Можно без проблем. Только /etc(если надо конфиги редактировать) и /var на tmpfs/rwfs надо вытаскивать.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от stein_h

Linux можно успешно стартовать с / в ro? что-то сумнительно. Зачем тогда overlayfs на livecd городят?

/var в RO может быть очень больно, его лучше в aufs+squashfs. Ну и /tmp вынести в tmpfs. А так - может.

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.