Latest revision |
Your text |
Line 1: |
Line 1: |
− | == Symptoms ==
| + | Problem: VPS created succesfully and started. |
− | | + | But when trying |
− | <pre>
| + | vzctl enter 101 |
− | error: open pty: No such file or directory
| + | you get |
− | </pre>
| + | VPS enter failed(?) |
− | | + | strace -ff vzctl enter |
− | == Solutions ==
| |
− | | |
− | === Using strace ===
| |
− | | |
− | You can use [http://linux.die.net/man/1/strace strace] to analyse the command further:
| |
− | <pre>
| |
− | # strace -ff vzctl enter 101
| |
| .... | | .... |
| fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail | | fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail |
| .... | | .... |
− | </pre>
| |
− |
| |
− | 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
| |
− |
| |
− | === 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 == | + | Solution: |
| + | CONFIG_LEGACY_PTYS=y |
| | | |
− | * {{Bug|130}}
| |
− | * {{Bug|578}}
| |
| | | |
| [[Category: Troubleshooting]] | | [[Category: Troubleshooting]] |