Changes

Jump to: navigation, search

Container enter failed

666 bytes added, 19:30, 30 September 2014
no edit summary
'''Problem''': container created succesfully and started.== Symptoms ==But when trying to do
<pre>
vzctl enter 101 </pre>you get<pre>container enter failed(?)error: open pty: No such file or directory
</pre>
== Solutions == === Using strace, you see=== You can use [http://linux.die.net/man/1/strace strace] to analyse the command further:
<pre>
# strace -ff vzctl enter101
....
fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail
</pre>
'''Solution''':
Recompile the kernel with the following option:
<pre> 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 /predev/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 ===
'''Other solutions''':* Enter the VE manually CTID=101 vzctl exec $CTID "mount -t devpts devpts /dev/pts" vzctl enter $CTID
1) enter the VE * Remove udev using apt manually creating the LEGACY_PTYS devicesCTID=101 vzctl exec $CTID apt-get remove udev vzctl restart $CTID
<pre>vzctl exec 101 /sbin/MAKEDEV ttyvzctl exec 101 /sbin/MAKEDEV ptyvzctl enter 101</pre>=== Older Slackware ===
2A) If you want udev in VE, save Check that /dev/pts is mounted under the changes forcing udev to make LEGACY_PTYScontainer as a devpts filesystem:
<pre>cat > /etc/udev/makedev.d/51-udev.nodes# These device have to be created manuallytty0tty1tty2tty3....ttyp0ttyp1ttyp2ttyp3....ptyp0ptyp1ptyp2ptyp3....</pre>vzctl exec VEID mount
If it is not, try this immediate fix:
2B) If you think is better disable udev in VE, comment out in the VE the line:<pre>vzctl exec VEID mount /sbindev/start_udev</pre>in<pre>/etc/rc.d/rc.sysinit</pre>pts
You should now be able to enter the VPS. You will need to fix /etc/rc.d/rc. <b>however<S and/or /etc/b> updates fstab to ensure that /dev/pts is mounted in the package which owns this file may revert your changes, so you must take steps to guard against thisboot process.
Restart the VE and make the devices with MAKEDEV:
<pre>
vzctl exec 101 /sbin/MAKEDEV tty
vzctl exec 101 /sbin/MAKEDEV pty
vzctl enter 101
</pre>
== See also ==
1
edit

Navigation menu