Centos6

LXC 來賓作業系統安裝

  • January 16, 2018

我創建了一個使用 Centos 6.8 作為主機作業系統的 LXC 虛擬化物理伺服器。

現在,當我使用 Centos 的預設模板創建來賓 VM 時,它正在創建使用 Centos 6.8 作為來賓作業系統的 VM。

我想創建一個使用 Centos 7.2 版本的 VM 作為來賓作業系統。這可能嗎?

我已完成以下步驟來創建 VM 並啟動。

  1. 創建了 centos 模板的副本,並在模板中硬編碼了 7.2 版本。(據我了解,它會檢查 /etc/os-release 的 CPE ID)
  2. 創建了一個來賓 VM,指向創建的這個新模板。(Centos 7.2 版本已下載並放置在 LXC 記憶體中)
  3. 來賓 VM 已創建。我將配置文件中的網路連結更改為橋接網路。
  4. 我啟動了來賓 VM,但我只能看到 systemd 程序已啟動(使用pstree命令),沒有為 VM 分配 IP 地址,我無法登錄來賓 VM。

在這個環境中,我需要一個帶有 Centos 7.2 的 VM。請指導如何實現這一目標。

我調整了 CentOS 的 lxc 模板以支持 CentOS 7。

我創建的 lxc 模板的副本放在https://github.com/nirmalraj17/lxc/blob/master/templates/lxc-centos.in

這樣做是因為有一些與 OS 版本 7 相關的步驟,這些步驟在目前的 lxc-centos 模板中沒有提到,而在 lxc-oracle 模板中提到了。我從 lxc-oracle 中取出了相關部分並將其添加到目前的 lxc-centos 模板中,並創建了一個名為 lxc-centos-7 的新模板。

然後使用命令創建一個lxc容器

lxc-create -n centos7 -t /usr/local/share/lxc/templates/lxc-centos-7  -- -R 7

這將下載發布版本 7 所需的必要文件

在此之後,如果您嘗試啟動 LXC 容器,您將收到**“$$ !!!!!! $$無法分配管理器對象,凍結。”**當您嘗試啟動時。

現在在 /cgroup 下創建一個目錄systemd

使用以下命令掛載。

mount -t cgroup -o none,name=systemd cgroup /cgroup/systemd

現在如果您啟動 LXC 容器並嘗試登錄,您將收到錯誤消息“伺服器拒絕分配 pty

為了避免這種情況,請停止容器並創建一個 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 腳本,我已經創建了一個 shell 腳本。

[root@centos ~]# vi startup_centos7.sh
#!/bin/bash
lxc-start -n centos7
lxc-attach -n centos7 device_initiation.sh
exit

執行腳本後,CentOS 7 將啟動,您將能夠順利登錄。

完成上述步驟後,我在新的 LXC 容器上安裝了工作 CentOS 7.3 版本。

引用自:https://serverfault.com/questions/848966