LINUX.ORG.RU
ФорумAdmin

Debian read-only root


0

0

Здравствуйте.
Мне нужно настроить свою систему(Debian Etch) так, чтобы она не писала на диск ни байта.
К сожалению, единственный найденный мной мануал на эту тему написан для Gentoo.

Собственно, основная сложность - грубо говоря, разобраться с бутстрапом и вклинить в него свой скрипт,
монтирующий каталоги var и tmp на tmpfs с правами rw. Скрипт мне уже написали, осталось проверить, что
до его исполнения (S06* в /etc/rcS.d) не происходят неожиданности. В моём случае к этому времени исполняются
glibc.sh
hostname.sh
mountkernfs.sh
udev
mountdevsubfs.sh
bootlogd
keymap.sh

Существует ли подробное описание бутстрапа Дебиана и насколько он разный в разных дистрибутивах?

Ответ на: комментарий от philip

> Это ведь не настолько просто. Например, /etc/mtab должен быть rw.

На самом деле всё очень просто. Я это делал неоднократно ;)

1). Все файлы/каталоги, которые должны быть доступны для записи, делаем симлинками куда-нить внутрь /var.

2). Конкретно /etc/mtab лучше вообще залинковать на /proc/mounts.

execve
()

Дело в том, что у меня есть работающая система(делал её не я), и я пытаюсь разобраться
1) Как она работает
2) Точно ли она работает как надо, т.е. не пишет СОВСЕМ ничего

В /boot/grub/menu.lst написана строчка "kernel /boot/vmlinuz-2.6.18 root=/dev/hdd2 ro"
В /etc/rcS.d есть файл S05ro-root.sh, который в /dev/shm создаёт "образы" rw-каталогов.
Скриптом S35mountall.sh rw-каталоги монтируются в свои образы в /dev/shm.
Если подумать, основной мой вопрос звучит так:
Действительно ли опция загрузки ro (в menu.lst) намертво блокирует попытки записи на устройство /dev/hdd2 или есть-таки куски кода, которым "можно" писать?

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

нет, достаточно указать

какаяугоднофигня   /var  tmpfs  defaults        0       0

Ты кстати задумайся, нужно ли тебе монтировать в память _весь_ /var. Там есть много полезного, что должно переживать перезагрузку.

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

> В /boot/grub/menu.lst написана строчка "kernel /boot/vmlinuz-2.6.18 root=/dev/hdd2 ro"

Root при загрузке смонтирован как R/O. Потом он перемонтируется как прописано в /etc/fstab (обычно там прописано R/W).

> Действительно ли опция загрузки ro (в menu.lst) намертво блокирует попытки записи на устройство /dev/hdd2 или есть-таки куски кода, которым "можно" писать?

Нет, не блокирует. Да, могут.

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

> Нет, не блокирует. Да, могут.

Я вычитал уже в двух местах (http://www.faqs.org/docs/linux_admin/x1901.html и http://io.com.ua/s2033), что процесс загрузки происходит так:

1. Ядро грузится в RAM и разжимает себя.

2. Ядро монтирует корневую ФС как ro (если не указано другое).

3. Ядро стартует init, который начинает исполнять скрипты, хранящиеся в /etc/init.d.

4. Скрипты уже перемонтируют ФС как им заблагорассудится. У меня есть файл /etc/rcS/S30mountall.sh, который делает как ему указано в /etc/fstab, т.е. ro. Выходит, что при такой конфигурации никто на диск писать не может?

Если это так, то для того, чтобы сделать всё как надо, достаточно внимательно прочитать все исполняемые скрипты и, возможно, подправить их.

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

philip, а вы можить прислать S05ro-root.sh и S35mountall.sh на daniel[собака]c2p.ru, а то я сталкнулся с также проблемой, но не знаю пока как решить..

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