Пытаюсь водрузить в качестве раутера на ITX с тремя сетевыми ( ага :) ) оптимизированную генту.
Поскольку sys-apps/baselayout-2.0.1 с openrc работали некорректно, приходится работать с baselayout-1. Из-за того, что в качестве диска на этой системе используется CF, волей-неволей приходится использовать ro root.
Система разделена на два раздела, используется ext2 на каждом. Ядро собрано таким образом, что можно грузить эту машинку как по сети, так и с диска, т.о. вся отладка может делаться на сборочном хосте, проверяться по сети, а потом, простым копированием, всё необходимое переносится на CF.
На данный момент система загружается без проблем, при необходимости подхватывает динамический адрес по dhcp или из собственного файла конфигурации /etc/net.xxx. Сделано это было вот как:
1. ядро пропатчено и собрано с поддержкой unionfs; 2. отредактирован скрипт /sbin/rc:
# Setup initial $PATH just in case
PATH="/bin:/sbin:/usr/bin:/usr/sbin:${PATH}"
# добавлено 4 строки
/bin/mount -n -t tmpfs tmpfs /unionfs/etc -o size=1M
/bin/mount -n -t unionfs unionfs /etc -o dirs=/unionfs/etc=rw:/etc=ro
echo "tmpfs /unionfs/etc tmpfs rw,size=1M 0 0" >> /etc/mtab
echo "unionfs /etc unionfs rw,dirs=/unionfs/etc=rw:/etc=ro 0 0" >> /etc/mtab
tmpfs /unionfs/var/lock tmpfs size=20K,nodev,nosuid,noexec 0 0
tmpfs /unionfs/var/log tmpfs size=3M,nodev,nosuid,noexec 0 0
tmpfs /unionfs/var/run tmpfs size=200K,nodev,nosuid,noexec 0 0
tmpfs /unionfs/var/spool tmpfs size=10M,nodev,nosuid,noexec 0 0
tmpfs /unionfs/var/lib tmpfs size=1M,nodev,nosuid,noexec 0 0
tmpfs /unionfs/tmp tmpfs size=1M,nodev,nosuid,noexec 0 0
unionfs /var/lock unionfs dirs=/unionfs/var/lock=rw:/var/lock=ro 0 0
unionfs /var/log unionfs dirs=/unionfs/var/log=rw:/var/log=ro 0 0
unionfs /var/run unionfs dirs=/unionfs/var/run=rw:/var/run=ro 0 0
unionfs /var/spool unionfs dirs=/unionfs/var/spool=rw:/var/spool=ro 0 0
unionfs /var/lib unionfs dirs=/unionfs/var/lib=rw:/var/lib=ro 0 0
unionfs /tmp unionfs dirs=/unionfs/tmp=rw:/tmp=ro 0 0
/dev/sda2 / ext2 noatime,ro 0 1
Итак, загрузка проходит прекрасно, нужные сервисы стартуют и вроде бы всё ок. Но при перезагрузке/выключении компьютера, после выдачи сообщения
Unmounting filesystem
Could not kill process <номер>: No such process
ps -ef > file
Кто-нибудь боролся с такой задачей? Есть ли возможность где-нибудь посмотреть уже изобретённые велосипеды? Поиск, к сожалению, не показал ничего на эту тему, народ, наоборот, в основном не понимает, отчего у него система в ro (обычно из-за ошибок). А мне нужно именно вот так.