Как смонтировать root-файлы в Red Hat / Fedora Core?
Я пытаюсь настроить виртуальную машину под управлением 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"? Страница man для nash(8) документов переключается с одним аргументом, но мой сценарий /init вызывает его без каких-либо аргументов.
(Мотивация: виртуальная машина будет подвержена внедрению программных сбоев; я хочу защитить корневую файловую систему от воздействия неисправной системы, чтобы я мог быстро перезагрузить ВМ в исправное состояние.)
Спасибо!!
PS Да, я мог бы просто загрузить LiveCD и посмотреть, как это там делается, но я подумал, что кто-то должен был написать HOWTO, которого мои навыки поиска в Google не обнаружили.
1 ответ
В initrd содержится gp-архив cpio, который помещается на виртуальный диск во время init. Setuproot загружает все необходимые модули (содержащиеся в initrd), обычно для таких вещей, как LVM, заполняет /dev (initrd содержит ограниченный /dev). Switchroot отключает архив cpio от реальной корневой файловой системы.
Нэш чрезвычайно ограничен. Каждый двоичный файл должен быть статическим, сценарии практически невозможны и т. Д. Это может быть полезно (сценарии сборки находятся в его репозитории SVN).