Я пытаюсь настроить виртуальную машину с Red Hat EL (на самом деле Scientific Linux, но с той же разницей), где корневая файловая система защищена и недоступна для записи. Я бы хотел добиться этого с помощью соединительного крепления, используя aufs. То есть файловая система с возможностью записи (на другом виртуальном жестком диске) накладывается на корневую файловую систему.
Есть ли где-нибудь HOWTO по этому поводу? У меня установлен модуль aufs, и я смог смонтировать файловую систему union, но хитрость заключается в том, чтобы сделать это для корневой файловой системы.
Я видел сценарии initramfs help.ubuntu.com/community/aufsRootFileSystemOnUsbFlash, написанные для дистрибутивов в стиле Debian / Ubuntu, которые делают такие вещи внутри сценария / init: перед монтированием реального корня защищенный корень монтируется где-то, как читается -только наложенная файловая система монтируется в другом месте как чтение-запись, объединенная файловая система создается и монтируется, а затем объединенное монтирование становится настоящим корнем. Следовательно, исходная защищенная корневая файловая система никогда не монтируется для чтения и записи.
Я хотел бы знать, как это сделать в сценарии nash / init дистрибутивов Red Hat.
Еще более конкретные вопросы: Что именно делают команды nash "setuproot" и "switchroot"? Страница руководства для nash (8) включает корневой каталог с одним аргументом, но мой сценарий / init вызывает его без каких-либо аргументов.
(Мотивация: виртуальная машина будет подвергнута внедрению программного сбоя; я хочу защитить корневую файловую систему от воздействия неисправной системы, чтобы я мог быстро перезагрузить виртуальную машину в исправное состояние.)
Спасибо!!
P.S. Да, я мог бы просто загрузить какой-нибудь LiveCD и посмотреть, как это там делается, но я подумал, что кто-то должен был написать HOWTO, которого не обнаружили мои навыки работы в Google.
Initrd содержит сжатый дамп cpio, который помещается на RAM-диск во время инициализации. Setuproot загружает все необходимые модули (содержащиеся в initrd), обычно для таких вещей, как LVM, заполняет / dev (initrd содержит ограниченный / dev). Switchroot перемещает архив cpio в настоящую корневую файловую систему.
Нэш чрезвычайно ограниченное. Каждый двоичный файл должен быть статическим, создание сценариев практически невозможно и т. Д. это может быть полезным (скрипты сборки находятся в его репозитории SVN).