Linux за българи: Форуми

Linux секция за напреднали => Хардуерни и софтуерни проблеми => Темата е започната от: Ivshti в Sep 28, 2008, 20:37



Титла: Chroot - разширяване
Публикувано от: Ivshti в Sep 28, 2008, 20:37
Възможно ли е в chroot да се добави опция къде да се поставя стария root. Същото като pivot_root, но да се избира кое executable да изпълни в новия root.
Аз стигнах до това:
Примерен код

cd roota
mkdir old
pivot_root . old
exec old/sbin/chroot . old/bin/sh

Проблема е, че новия root може да е празен, а pivot_root зависи от някви простотийки :(
Целта е да се модифицира installpkg така, че да стартира скрипта за конфигуриране на пакета (doinst.sh) по малко по-различен метод:
Вместо да сменя директория в тази, в която ще се инсталира пакета (оказана с -root флага или / ако не е оказана) и да стартира шел, изпълняващ скрипта doinst.sh, да стартира шела, изпълняващ скрипта, така че да е стартиран под оказания root за инсталирането на пакета (с chroot), но зареден от executable файла в "оригиналния" root, така че ако в директорията, в която ще се инсталира пакета няма shell, няма да има и проблем. Шела, който ще се ползва, е вградения в busybox (т.е. executable файла busybox трябва да се зареди от стария руут и изпълни под новия).

Надявам се, че ме разбрахте. Много ще съм благодарен ако някой помогне.