LINUX.ORG.RU
ФорумAdmin

Запуск скрипта сразу же после монтирования коревой фаловой системы.

 , , ,


0

1

Здравствуйте уважаемые коллеги!

Есть интересная задачка, нужно постоянно в момент загрузки OS (Centos 6)удалять один файлик в /etc а точнее /etc/ld.so.preload . Главная проблема в том, что нужно его удалить сразу же после монтирования файловой системы и до выполнения чего-то /sbin/init. Что попробовал: Подмена /sbin/init на свой скрипт, который после себя запускает настроящий init, вешает систему. Попытка внести изменения в initramfs файл не увенчалась успехом, пишет не может найтй fatal: modules.dep Менял 99mount-root.sh... Для сборки распакованного и слегка измененного оригинала использовал эту комманду. find . | cpio --create --format='newc' > /boot/initramfs-2.6.32-573.3.1.el6.x86_64

Может есть у кого идеи, как побороть эту задачку?!

Использование chkconfig сервисов с максимальным приоритетом не подходит.

С уважением, Евгений.

А не проще ли найти ту программу, которая создаёт этот файл, и заставить её этого не делать?

intelfx ★★★★★ ()

Подмена /sbin/init на свой скрипт, который после себя запускает настроящий init, вешает систему.

Скрипт-то покажи.

deadNightTiger ★★★★★ ()

Идеи то есть, только неведомо, хватит ли у вас сил прочитать документацию.

В RHEL 6 initramfs собирается dracut'ом. И если делать правильно, то нужно написать свой модуль (man dracut.modules, http://habrahabr.ru/post/156989/), сделать в нём что-то типа:

inst_hook pre-pivot 01 "$moddir/rm-ldpreload.sh"
Сомневаюсь, что здесь кто-нибудь будте расписывать это подробно, задчка совсем не интерестная — ковыряться в документации и кишках dracut'а, писать и отлаживать его модуль.

Для сборки распакованного и слегка измененного оригинала

Вы хоть после своей сборки пробовали распаковать initramfs и сделать diff распакованных образов (вашего и оригинала)?

mky ★★★★★ ()
Ответ на: комментарий от deadNightTiger

Думаю проблема была в том, что я не передавал по цепочке параметры запуска... хотя возможно проблема глубже.

merlin-shadow ()
Ответ на: комментарий от poison1456

Это уже делается, привязкой к killall и выполняется при его запуске. Но если сервер завис, или был не правильно выключен то увы...

merlin-shadow ()
Ответ на: комментарий от mky

Спасибо за инфо, это ближе всего к тому, что нужно, но пока сделал намного проще 3 строки в rc.sysinit mount, rm и remount в режиме только для чтения....

По сути выполняется еще до монтирования FS. Сейчас американские друзья проверяют, но думаю должно работать нормально.

Спасибо всем за помощь!

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