我创build了一个CentOS 6.8作为主机操作系统的LXC虚拟物理服务器。
现在,当我使用默认的Centos模板创build访客虚拟机时,它将使用Centos 6.8创build虚拟机作为访客操作系统。
我想创build一个与Centos 7.2版本的虚拟机作为来宾操作系统。 这可能吗?
我已经完成了创build虚拟机和启动的以下步骤。
pstree命令),没有分配给虚拟机的IP地址,我无法login到来宾虚拟机。 在这个环境中,我需要一台装有Centos 7.2的虚拟机。 请指导如何做到这一点。
我调整了CentOS的lxc模板来支持CentOS 7。
这是因为在当前的lxc-centos模板中没有提到与操作系统版本7相关的一些步骤,并且在lxc-oracle模板中提到了这一点。 我从lxc-oracle中取出相关部分,并将其添加到当前的lxc-centos模板中,并创build了一个名为lxc-centos-7的新模板。
然后使用该命令创build一个lxc容器
lxc-create -n centos7 -t /usr/local/share/lxc/templates/lxc-centos-7 -- -R 7
这将下载发行版本7所需的必要文件
在此之后,如果您尝试启动LXC容器,则会收到“[!!!!!!]分配pipe理器对象失败,冻结”。 当你尝试开始。
现在在/ cgroup下创build一个systemd目录
使用下面的命令装载。
mount -t cgroup -o none,name=systemd cgroup /cgroup/systemd
现在,如果您启动LXC容器并尝试login,则会收到错误消息“ server refused to allocate pty ”
为了避免这种情况,请停止容器并创build一个将执行必要操作的shell脚本。
[root@centos ~]# vi /usr/local/var/lib/{container_name}/rooftfs/usr/local/bin/device_initiation.sh #!/bin/bash mknod -m 600 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mount -n -t tmpfs none /dev 2>/dev/null mknod -m 622 /dev/console c 5 1 2>/dev/null mknod -m 666 /dev/null c 1 3 2>/dev/null mknod -m 666 /dev/zero c 1 5 2>/dev/null mknod -m 666 /dev/ptmx c 5 2 2>/dev/null mknod -m 666 /dev/tty c 5 0 2>/dev/null mknod -m 444 /dev/random c 1 8 2>/dev/null mknod -m 444 /dev/urandom c 1 9 2>/dev/null chown root:tty /dev/{console,ptmx,tty} 2>/dev/null ln -s /proc/self/fd /dev/fd 2>/dev/null ln -s /proc/self/fd/0 /dev/stdin 2>/dev/null ln -s /proc/self/fd/1 /dev/stdout 2>/dev/null ln -s /proc/self/fd/2 /dev/stderr 2>/dev/null ln -s /proc/kcore /dev/core 2>/dev/null mkdir /dev/pts 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t devpts -o gid=4,mode=620 none /dev/pts 2>/dev/null mount -t tmpfs none /dev/shm 2>/dev/null
因为我们把这个文件放在usr / local / bin中,所以这个命令可以直接从系统访问。
现在启动服务器并执行这个shell脚本,我创build了一个shell脚本。
[root@centos ~]# vi startup_centos7.sh #!/bin/bash lxc-start -n centos7 lxc-attach -n centos7 device_initiation.sh exit
一旦你执行脚本,CentOS 7将会启动,你将能够顺利login。
完成上述步骤后,我在新的LXC容器上安装了CentOS 7.3版本。