Problem: container created succesfully and started. But when trying to do
vzctl enter 101
you get
container enter failed(?)
Using strace, you see:
# strace -ff vzctl enter .... fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail ....
Solution: Recompile the kernel with the following option:
CONFIG_LEGACY_PTYS=y
Other solutions:
1) enter the VE manually creating the LEGACY_PTYS devices
vzctl exec 101 /sbin/MAKEDEV tty vzctl exec 101 /sbin/MAKEDEV pty vzctl enter 101
2A) If you want udev in VE, save the changes forcing udev to make LEGACY_PTYS:
cat > /etc/udev/makedev.d/51-udev.nodes # These device have to be created manually tty0 tty1 tty2 tty3 .... ttyp0 ttyp1 ttyp2 ttyp3 .... ptyp0 ptyp1 ptyp2 ptyp3 ....
2B) If you think is better disable udev in VE, comment out in the VE the line:
/sbin/start_udev
in
/etc/rc.d/rc.sysinit
.. however updates to the package which owns this file may revert your changes, so you must take steps to guard against this.
Restart the VE and make the devices with MAKEDEV:
vzctl exec 101 /sbin/MAKEDEV tty vzctl exec 101 /sbin/MAKEDEV pty vzctl enter 101
I have used this method also to create zap dummy devices for asterisk in VE:
/dev/zap/ctl /dev/zap/pseudo /dev/zap/channel /dev/zap/timer
2C) The devices can be setup also with a line in VE config
grep DEV /etc/vz/conf/101.conf DEVNODES="zap/ctl:rw zap/channel:rw zap/pseudo:rw zap/timer:rw "