Лучший способ создать корневую файловую систему, разделите между только для чтения и перезаписываемым

Моя цель состоит в том, чтобы создать систему, где основные части корневой файловой системы хранятся на SD-карте только для чтения с записываемыми частями, расположенными на наборе SSD к rw. Это должно быть сделано в целях хранения корневой файловой системы, лишенной вмешательства и повреждения, и сделать обновление и другое обслуживание случаем загрузки предварительно сконфигурированной SD-карты. Я использую Ubuntu 14.04 LTS.

Я рад регулярным разделением и монтированием заботиться о / домой, / var и т.п., но это становится намного более хитрым при контакте с / и т.д. Я знаю, что некоторые части / и т.д. должны быть перезаписываемыми, такими как mtab и также знают, что к / и т.д. получают доступ во время начальной загрузки. У меня есть чувство, что также желательно иметь некоторые части/, и т.д. сохраняются между начальными загрузками.

Я склоняюсь к использованию overlayfs, только на / и т.д., с upperdir, только содержащим те файлы, которые я хочу сохранить. Что-либо, что только должно быть считано из / и т.д., проникнет от lowerdir. upperdir будет перезаписываем с новыми файлами, хотя они только сохранятся посредством начальных загрузок, если определено в белом списке. Сценарий должен работать на завершении работы для копирования этих файлов от upperdir до белого списка и противоположного непосредственно после начальной загрузки (или во время при необходимости).

Править

Белый список имеет целью останавливать любые новые файлы, записанные в upperdir и сохраняющийся между начальными загрузками. Я буду использовать полномочия управлять этим также.

Действительно ли это - хороший способ достигнуть результата, который я хочу, и каковы проблемы, о которых я должен знать?

Я читал в использование, монтируются - связывают, но понимают, что оно имеет проблемы сами по себе, я также знаю о методе symlinking/etc/mtab к/proc/mounts/и опасаюсь этого подхода также.

Любая справка значительно ценилась бы, я читал много на форумах и посредством общего веб-поиска, детали о реализации overlayfs очень недостаточны действительно. Не стесняйтесь сообщать мне, сверхусложняю ли я значительно вещи, или если существует лучший подход. Также это - мой первый вопрос так быть добрым!!

Править

Я понял, что сделал что-то вроде туманного, основанного на мнении типа вопроса, поэтому думали, что я мог бы перефразировать свой вопрос.

Там какой-либо другой полезный путь настраивает этот вид системы, кроме объединения монтируются?

2
задан 27 August 2014 в 20:35

2 ответа

aufs (в конечном счете UnionFS) стар и overlayfs в новом решении для этого в Ubuntu. Этот сценарий для overlayfs работал бегло на меня с 14.04.1

, Таким образом, необходимо скопировать сценарий в /etc/initramfs-tools/scripts/init-bottom/root-ro, тогда

#make the script executable
cmdod 755 /etc/initramfs-tools/scripts/init-bottom/root-ro

#add the module overlayfs to initramfs
echo overlayfs >> /etc/initramfs-tools/modules

#update initramfs
update-initramfs -u
update-grub

Перезагрузка, чтобы дать ему попытку. Тогда выпуск mount, необходимо было произвести:

overlayfs-корень на / вводит overlayfs (rw)

, Вы найдете /mnt/root-rw и /mnt/root-ro каталоги для "более низкого" и "верхнего" слои из Ваших overlayfs.

можно также добавить к способности к меню личинки загрузиться без overlayfs:

echo overlayfs >> /etc/initramfs-tools/modules
cp root-ro /etc/initramfs-tools/scripts/init-bottom/root-ro
chmod 755 cp /etc/initramfs-tools/scripts/init-bottom/root-ro

#########################GRUB#########################
cat /etc/grub.d/10_linux|sed  s/'linux_entry "${OS}" "${version}" simple'/'linux_entry "RW: ${OS}" "${version}" simple'/ |sed  s/'"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"'/'"${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} disable-root-ro=true"'/ >/etc/grub.d/11_custom

sed -i.orig -e \
"/{GRUB_DISABLE_RECOVERY}\" != \"xtrue\" ]; then/s/^.*$/    \
if [ 0 ]; then/" \
/etc/grub.d/11_custom

sed -i.orig -e \
"/in_submenu=:/s/^.*$/    \
/" \
/etc/grub.d/11_custom

sed -i.orig -e \
"/\"Previous Linux versions/s/^.*$/    \
if [ 0 ]; then/" \
/etc/grub.d/11_custom

rm /etc/grub.d/11_custom.orig
#########################GRUB#########################

chmod 777 /etc/grub.d/11_custom
3
ответ дан 7 October 2019 в 05:03

Я немного дальнейший включенный с реализацией этой системы, и все, кажется, подходит до сих пор. Вероятно, средства это собирается обрушиться!

Используя Overlayfs для создания файловой системы объединения, кажется, осуществимое решение, хотя я должен все же заняться выпуском сценариев, запускающихся при начальной загрузке! Существует много документации о том, как внести свой вклад процесса все же.

ссылка, отправленная выше @Rinzwind, была действительно разумным руководством и повторяется здесь; http://www.logicsupply.com/blog/2009/01/27/how-to-build-a-read-only-linux-system/

0
ответ дан 7 October 2019 в 05:03

Другие вопросы по тегам:

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