Open main menu

OpenVZ Virtuozzo Containers Wiki β

Container enter failed

Revision as of 06:00, 26 September 2011 by 175.156.68.60 (talk) (Temporary fix, added in the mknod line for ptmx which may not get created)


Contents

Solutions

Using strace

You can use strace to analyse the command further:

# strace -ff vzctl enter 101
....
fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail
....

Recompile the kernel with the following option:

CONFIG_LEGACY_PTYS=y

LEGACY_PTYS

Temporary fix

Note: This is a temporary fix so you can enter the VE.

  • Create the LEGACY_PTYS devices:
vzctl exec 101 /sbin/MAKEDEV tty
vzctl exec 101 /sbin/MAKEDEV pty
vzctl exec 101 mknod --mode=666 /dev/ptmx c 5 2
vzctl enter 101

Permanent fix with udev

  • For a permanent fix with udev, you will need to force 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
....

Permanent fix without udev

  • Alternatively, you can disable udev:

Edit the /etc/rc.d/rc.sysinit file and comment out the /sbin/start_udev line

Or you can run the following command:

sed -i 's|/sbin/start_udev|#/sbin/start_udev|g' /etc/rc.d/rc.sysinit

Warning Updates to the package which owns this file may revert your changes.

Note This was tested with CentOS VE.

Debian only

  • Enter the VE manually
CTID=101
vzctl exec $CTID "mount -t devpts devpts /dev/pts" 
vzctl enter $CTID
  • Remove udev using apt
CTID=101
vzctl exec $CTID apt-get remove udev
vzctl restart $CTID

See also