Difference between revisions of "Container enter failed"
(WOC9or power,) |
m (Reverted edits by 91.217.90.56 (Talk) to last revision by Kir) |
||
Line 1: | Line 1: | ||
− | + | == 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 | ||
+ | .... | ||
+ | </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 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 | ||
== See also == | == See also == |
Revision as of 11:59, 3 January 2011
Contents
Solutions
Using strace
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
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 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