Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.
The edit can be undone.
Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision |
Your text |
Line 1: |
Line 1: |
− | == Symptoms ==
| + | '''Problem''': VPS created succesfully and started. |
− | | + | But when trying to do |
| + | <pre> |
| + | vzctl enter 101 |
| + | </pre> |
| + | you get |
| <pre> | | <pre> |
− | error: open pty: No such file or directory
| + | VPS enter failed(?) |
| </pre> | | </pre> |
| | | |
− | == Solutions ==
| + | Using strace, you see: |
− | | |
− | === Using strace ===
| |
− | | |
− | You can use [http://linux.die.net/man/1/strace strace] to analyse the command further:
| |
| <pre> | | <pre> |
− | # strace -ff vzctl enter 101 | + | # strace -ff vzctl enter |
| .... | | .... |
| fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail | | fstat64(...st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0)...) fail |
Line 17: |
Line 17: |
| </pre> | | </pre> |
| | | |
| + | '''Solution''': |
| Recompile the kernel with the following option: | | Recompile the kernel with the following option: |
− | CONFIG_LEGACY_PTYS=y
| + | <pre> |
− | | + | CONFIG_LEGACY_PTYS=y |
− | === LEGACY_PTYS ===
| + | </pre> |
− | | |
− | ==== 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 ==
| |
− | | |
− | * {{Bug|130}}
| |
− | * {{Bug|578}}
| |
| | | |
| [[Category: Troubleshooting]] | | [[Category: Troubleshooting]] |