Changes

Jump to: navigation, search

Container enter failed

70 bytes added, 00:00, 10 December 2010
Better formatting
'''== Problem''': container created succesfully and started.==But when trying to do<pre>When you issue the following command you get an error: [root@server ~]# vzctl enter 101 </pre> enter into CT 101 failed Unable to open pty: No such file or directoryyou get<pre>== Solutions ==container enter failed(?)</pre>=== Using strace ===
Using You can use [http://linux.die.net/man/1/strace, you seestrace] 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 /pre>sbin/MAKEDEV pty vzctl enter 101 ==== Permanent fix with udev ====* For a permanent fix with udev, you will need to force udev to make LEGACY_PTYS:
'''Other solutions''': 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 ....
1) enter the VE manually creating the LEGACY_PTYS devices==== Permanent fix without udev ====* Alternatively, you can disable udev:
<pre>vzctl exec 101 Edit the ''/sbinetc/rc.d/MAKEDEV ttyvzctl exec 101 rc.sysinit'' file and comment out the ''/sbin/MAKEDEV ptyvzctl enter 101</pre>start_udev'' line
2A) If Or you want udev in VE, save can run the changes forcing udev to make LEGACY_PTYSfollowing command:
<pre>cat > sed -i 's|/sbin/start_udev|#/sbin/start_udev|g' /etc/udev/makedevrc.d/51-udev.nodes# These device have to be created manuallytty0tty1tty2tty3....ttyp0ttyp1ttyp2ttyp3.rc...ptyp0ptyp1ptyp2ptyp3....</pre>sysinit
''Warning'' Updates to the package which owns this file may revert your changes.
2B) If you think is better disable udev in ''Note'' This was tested with CentOS VE, comment out in the VE the line:<pre>/sbin/start_udev</pre>in<pre>/etc/rc.d/rc.sysinit</pre>
.. <b>however</b> updates to the package which owns this file may revert your changes, so you must take steps to guard against this.=== Debian only ===
Restart * Enter the VE and make the devices with MAKEDEV:manually<pre>vzctl exec CTID=101 /sbin/MAKEDEV tty vzctl exec 101 $CTID "mount -t devpts devpts /sbindev/MAKEDEV ptypts" vzctl enter 101</pre>$CTID
3) Debian : enter the VE * Remove udev using apt manually (the 1 && 2 solutions did'nt work on my VE debian-5.0)<pre>CTID=101 vzctl exec $CTID "mount apt-t devpts devpts /dev/pts" get remove udev vzctl enter restart $CTID</pre>
4) Debian : Simply remove udev using apt
<pre>
CTID=101
vzctl exec $CTID apt-get remove udev
vzctl restart $CTID
</pre>
== See also ==
27
edits

Navigation menu