Я работаю в виртуальной среде, пытаясь запустить открытые инструменты vm в среде chroot. Я тестировал с bash и, похоже, работал нормально. Я использовал ./configure --options --prefix=/home/chroot_env
для установки программы, затем с помощью ldd на vmtoolsd, я скопировал соответствующие библиотеки в каталог /lib
.Запуск программы в среде chroot немедленно возвращается
Теперь, когда я начинаю chroot /home/chroot_env /bin/vmtoolsd
, ничего не происходит, chroot возвращается напрямую. Запуск одного и того же двоичного файла в нормальной среде действительно работает.
У кого-то есть идея, почему он не работает, правильные библиотеки есть, и он работает с bash.
EDIT: strace показал, что vmtoolsd пытается получить доступ к /dev/console
, я добавил mount --bind /dev/ /home/chroot_env/dev/
, но он по-прежнему не работает.
EDIT2: еще один strace показал, что он ищет динамический динамический плагин, я добавил его, и это сработало, вывод strace
отлично подходит для отладки такой проблемы!
Имеет ли ваш '/ home/chroot_env' достаточный rootfs? Я имею в виду, есть ли у него необходимые инструменты, такие как '/ home/chroot_env/bin/bash','/home/chroot_env/bin/vmtoolsd' и т. Д.? Имеет ли он также необходимые общие библиотеки и т. Д.? – anishsane
На самом деле я добавил bash и vmtoolsd в правильные каталоги и скопировал необходимые библиотеки, может быть отсутствующий двоичный файл, но я не знаю способа найти его. – user3779430
Посмотрите, можете ли вы ['ldd'] (http://man.he.net/?section=all&topic=ldd) работать внутри chroot ... – anishsane