Difference between revisions of "Container enter failed"
(can, http://www.sarahwilliamsmusic.com/profiles/blogs/clonazepam-clonazepam-120 Clonazepam, >:-]], http://pridetv.ning.com/profiles/blogs/valium-valium-online-without-337 buy Valium, jyzoyz, http://) |
|||
| (13 intermediate revisions by 7 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | == Symptoms == | |
| + | |||
| + | <pre> | ||
| + | error: open pty: No such file or directory | ||
| + | </pre> | ||
== Solutions == | == Solutions == | ||
| Line 25: | Line 29: | ||
vzctl exec 101 /sbin/MAKEDEV tty | vzctl exec 101 /sbin/MAKEDEV tty | ||
vzctl exec 101 /sbin/MAKEDEV pty | vzctl exec 101 /sbin/MAKEDEV pty | ||
| + | vzctl exec 101 mknod --mode=666 /dev/ptmx c 5 2 | ||
vzctl enter 101 | vzctl enter 101 | ||
| Line 72: | Line 77: | ||
vzctl exec $CTID apt-get remove udev | vzctl exec $CTID apt-get remove udev | ||
vzctl restart $CTID | vzctl restart $CTID | ||
| + | |||
| + | === Older Slackware === | ||
| + | |||
| + | Check that /dev/pts is mounted under the container as a devpts filesystem: | ||
| + | |||
| + | vzctl exec VEID mount | ||
| + | |||
| + | If it is not, try this immediate fix: | ||
| + | |||
| + | vzctl exec VEID mount /dev/pts | ||
| + | |||
| + | You should now be able to enter the VPS. You will need to fix /etc/rc.d/rc.S and/or /etc/fstab to ensure that /dev/pts is mounted in the boot process. | ||
| + | |||
== See also == | == See also == | ||
Latest revision as of 19:30, 30 September 2014
Contents
Symptoms[edit]
error: open pty: No such file or directory
Solutions[edit]
Using strace[edit]
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[edit]
Temporary fix[edit]
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[edit]
- 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[edit]
- 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[edit]
- 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
Older Slackware[edit]
Check that /dev/pts is mounted under the container as a devpts filesystem:
vzctl exec VEID mount
If it is not, try this immediate fix:
vzctl exec VEID mount /dev/pts
You should now be able to enter the VPS. You will need to fix /etc/rc.d/rc.S and/or /etc/fstab to ensure that /dev/pts is mounted in the boot process.