PlasticFS может помочь, хотя я думаю (из чтения я не пробовал), он позволяет эффективно создавать синтетическую файловую систему в некоторой точке монтирования (вроде FUSE, но с использованием LD_PRELOAD).
Так, например, вы можете создать синтетический корень в /tmp/myfs
, но вам все равно понадобится инструмент, похожий на chroot, чтобы представить это построенное местоположение, как если бы оно было корнем файловой системы. fakechroot - очевидный выбор, так как не требует root, но он также использует LD_PRELOAD
поэтому я не уверен, что эти два инструмента перепутают друг друга.
Обновление: это немного сбивает с толку, но я действительно попробовал это сейчас - версии plasticfs вплоть до 1.11 включительно используют LD_PRELOAD (и фактически включают фильтр chroot, поэтому вам не нужно использовать fakechroot). Так что это может быть то, что вы хотите, но:
это не очень хорошо работало в моих тестах (создаваемых файлов не должно, пропущенных файлов, которые должны были там быть)
более новые выпуски (1.11 был выпущен в 2007 году, сейчас он до 1.14) полностью отказались от LD_PRELOAD для FUSE и пары команд mount
и umount
stateful, что также лишило возможности использовать его в качестве chroot.