How to fix NoVNC Console Just Black Screen
Debian 5,6,7
This will also work in debian8 if you use sysv-init instead of systemd
Editing the config file via the host
You can do this on the host without entering CT (but the CT must be running). Just log in to the Proxmox VE host and:
edit all inittabs under /var/lib/vz/root/ :
nano /var/lib/vz/root/*/etc/inittab # add this 1:2345:respawn:/sbin/getty 38400 tty1Editing the configuration file inside the container
Login via SSH (or use the VNC "Shell") to your PVE host and 'vzctl enter CTID' the container:
List all running container:
pve:~# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 108 23 running 192.168.9.20 ubuntu-1204.pve.com 109 18 running 192.168.9.21 centos63-64.pve.com 111 15 running 192.168.9.23 centos5-64.pve.com 114 14 running 192.168.9.30 deb6-32.pve.com 115 15 running 192.168.9.31 deb7-32.pve.com 122 14 running 192.168.9.36 deb5.pve.comEnter the container:
pve:~# vzctl enter 122root@debian:/# nano /etc/inittabOn the bottom of /etc/inittab just add the following line:
1:2345:respawn:/sbin/getty 38400 tty1Save the changes and shutdown/start the container via Console.
Ubuntu
Ubuntu 10.04, 12.04, 14.04
Login via SSH (or use the VNC "Shell") to your PVE host and 'vzctl enter CTID' the container:
List all running container:
pve:~# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 108 23 running 192.168.9.20 ubuntu-1404.pve.com 109 18 running 192.168.9.21 centos63-64.pve.com 111 15 running 192.168.9.23 centos5-64.pve.com 114 14 running 192.168.9.30 deb6-32.pve.com 115 15 running 192.168.9.31 deb7-32.pve.com 122 14 running 192.168.9.36 deb5.pve.comEnter the container:
prpmox-ve:~# vzctl enter 108root@ubuntu-1404:/# nano /etc/init/tty1.confChange/Create the file that it looks exactly like this:
# tty1 - getty # # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 38400 tty1Save the changes and shutdown/start the container via Console.
Centos
Centos 5 / 7
Login via SSH (or use the VNC "Shell") to your PVE host and 'vzctl enter CTID' the container:
List all running container:
pve:~# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 108 23 running 192.168.9.20 ubuntu-1204.pve.com 109 18 running 192.168.9.21 centos63-64.pve.com 111 15 running 192.168.9.23 centos5-64.pve.com 114 14 running 192.168.9.30 deb6-32.pve.com 115 15 running 192.168.9.31 deb7-32.pve.com 122 14 running 192.168.9.36 deb5.pve.comEnter the container:
pve:~# vzctl enter 111root@centos5-64:/# nano /etc/inittabOn the bottom of /etc/inittab just add the following line:
1:2345:respawn:/sbin/agetty tty1 38400 linuxSave the changes and shutdown/start the container via Console.
Centos 6
Login via SSH (or use the VNC "Shell") to your PVE host and 'vzctl enter CTID' the container:
List all running container:
pve:~# vzlist CTID NPROC STATUS IP_ADDR HOSTNAME 108 23 running 192.168.9.20 ubuntu-1204.pve.com 109 18 running 192.168.9.21 centos63-64.pve.com 111 15 running 192.168.9.23 centos5-64.pve.com 114 14 running 192.168.9.30 deb6-32.pve.com 115 15 running 192.168.9.31 deb7-32.pve.com 122 14 running 192.168.9.36 deb5.pve.comEnter the container:
pve:~# vzctl enter 109root@centos63-64:/# nano /etc/init/tty.confChange/Create the file that it looks exactly like this:
# This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/agetty -8 tty1 38400Either run "start tty" without rebooting the container, or save the changes and shutdown/start the container via Console.
Troubleshooting
If you still want to use the previous method (vzctl enter CTID) you can open the host "Shell" and just type 'vzctl enter CTID" to manage your containers.
Java browser plugin
The console is using a Java applet, therefore you need latest Oracle (Sun) Java browser plugin installed and enabled in your browser (Google Chrome and Firefox preferred). If you are on Windows desktop, just go to java.com, if you run a Linux desktop you need to make sure that you run Oracle (Sun) Java plugin instead of the default openjdk. For Debian/Ubuntu based desktops, see Java_Console_(Ubuntu)
Modifying your templates
If you don't want to commit the changes above for every single CT you create, you can simply update the templates accordingly. For this, simply place the file you want to insert into your template (like etc/inittab for debian containers) into your template folder and update the template. The following is specific to CentOS 6, just replace filename/path and contents with the appropriate contents found above.
cd [TEMPLATE LOCATION] #Modify this mkdir -p etc/init cat <<EOF >etc/init/tty.conf # This service maintains a getty on tty1 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/agetty -8 tty1 38400 EOF gunzip centos-6-standard_6.3-1_amd64.tar.gz tar -rf centos-6-standard_6.3-1_amd64.tar etc gzip centos-6-standard_6.3-1_amd64.tar rm etc/init/tty.conf rmdir -p etc/init