4 virtualization containers wayland systemd-nspawn
这是问答分享我对基于 stackoverflow 规则/鼓励的标题的 hack
https://stackoverflow.blog/2011/07/01/its-ok-to-ask-and-answer-your-own-questions/
https://stackoverflow.com/help/self-answer
我可以回答我自己的问题吗?
是的!Stack Exchange 一直明确鼓励用户回答他们自己的问题。如果你有一个你已经知道答案的问题,并且你想公开记录这些知识,以便其他人(包括你自己)可以稍后找到它,那么在 Stack Exchange 站点上提出和回答你自己的问题是完全可以的.
原始回购是
小智 7
本教程将引导您在计算机上使用 linux systemd-nspawn容器设置Wayland桌面环境。这类似于 VMware Workstation 或 VirtualBox,但 linux 仅具有最小的开销性能。

? 通过 systemd-nspawn 容器技术以极其高效、最小性能开销的硬件抽象方法来实现硬件独立的容器操作系统
? 在启用 systemd 的 linux 主机之间 100% 可移植,轻松备份和恢复
?直接渲染作品,如 3D 桌面效果
?视频和声音有效
吗?网络开箱即用
?不太可能搞乱hostOS,也不太可能对hostOS和硬件进行不频繁的重启操作,而是享受containerOS的即时虚拟启动、断电和重启。
启动kwin_wayland窗口,
嵌套在您当前的桌面环境中。
使用以下命令启动容器操作系统 systemd-nspawn
从 containerOS 控制台:
(a) 将桌面环境(例如XFCE或LXQt)启动到目标kwin_wayland窗口。
(b) 只需准备您最喜欢的启动器应用程序,例如突触或xfce4-panel,即可进行最少的设置。

hostOS 可以是任何带有 systemd 的 linuxOS,桌面环境可以是 Wayland 或旧版 X11。
虽然,Wayland hostOS 显然更可取,但情况仍然不成熟。截至 2017 年 3 月,只有 Fedora 25 将基于 Wayland 的 GNOME 会话作为默认设置而不是基于 X11 的会话,但其他发行版则没有。最新版本的 KDE-Plasma 在 X11/Xorg 上是稳定的,但在 Wayland 上不稳定。
可能,如果您在主机环境中使用 GNOME,请选择 Wayland,但如果使用 Plasma 或其他 DE,为了稳定性,请保守地使用 X11/Xorg。
这种方法在两种情况下都非常有效,我个人使用Arch Linux和KDE-Plasma(X11/Xorg)。
systemd-nspawn和kwin_wayland一些发行版(例如 Arch)已经有了systemd-nspawn,但其他发行版(例如Ubuntu)没有。
ubuntu xenial 中的二进制包“systemd-container”
昆威兰ubuntu xenial 中的二进制包“kwin-wayland”
Arch 可能包含kwin_wayland在xorg-server-xwayland包中。

KWin被称为功能最完整和最稳定的窗口管理器之一。这是wayland由 管理KWin并嵌套在当前桌面环境中的直接渲染启用窗口空间。
启动嵌套的 KWin @KWin/Wayland - KDE Community Wiki
从 5.3 开始,可以在 X11 或 Wayland 下启动嵌套的 KWin 实例:
export $(dbus-launch); \
kwin_wayland --xwayland &;
Run Code Online (Sandbox Code Playgroud)
用于fish外壳
export (dbus-launch);
Run Code Online (Sandbox Code Playgroud)

sudo systemd-nspawn \
-bD /YOUR_MACHINE_ROOT_DIRECTORY \
--volatile=no \
--bind-ro=/home/YOUR_USERNAME/.Xauthority \
--bind=/run/user/1000 \
--bind=/tmp/.X11-unix \
--bind=/dev/shm \
--bind=/dev/dri \
--bind=/run/dbus/system_bus_socket \
--bind=/YOUR_DATA_DIRECTORY
Run Code Online (Sandbox Code Playgroud)
/YOUR_DATA_DIRECTORY将hostOS绑定到containerOS,这样你就可以在两者之间共享数据目录,同时你的containerOS可以保持尽可能小和干净,便于移植和备份/恢复。
登录 containerOS 控制台。
通常,您从最小/服务器操作系统映像构建容器发行版操作系统。请记住,您不需要为 containerOS 安装 X11/Xorg 显示服务器或 wayland,因为kwin_wayland窗口起着作用。
kwin_wayland窗口。
请记住,KWin 已经在运行,它是一个功能完整且功能强大的 WindowManager。您可以通过快捷键使用 KWin 启动和切换任务,或者准备您最喜欢的启动器应用程序,例如synapse或xfce4-panel进行最小设置。
但是,如果我们需要更多用户友好的桌面环境,只需安装并启动XFCE或LXQt可以与KWin.
从 containerOS 控制台:
export XAUTHORITY=/home/YOUR_USERNAME/.Xauthority; \
export XDG_RUNTIME_DIR=/run/user/1000; \
export CLUTTER_BACKEND=x11; \
export QT_X11_NO_MITSHM=1; \
xfce4-session --display :1;
Run Code Online (Sandbox Code Playgroud)


可能你想移除 containerOS 的框架,这就是 Plasma(HostOS 的 DE)上的方法。

确认 XFCE 环境识别在 XWAYLAND 显示器上运行。
XWayland实现了一个兼容层,可以在 Wayland 上无缝运行旧版 X11 应用程序。
到目前为止,更像是例外,如果您安装wayland 的 GUI 库,带有某个标志,您可以看到 GUI 应用程序在 Wayland 上本地运行。

左边是kateXorg/X11 兼容模式的窗口。
右边是Wayland原生模式的窗口。
可以看到原生wayland app没有反映当前窗口主题,XFCE面板也没有显示app任务,只要使用PC的正常应用就看不出性能的差异。
因此,可能没有太多理由去追求 Wayland 本机模式应用程序。但是对于 3D 游戏,情况可能会有所不同,而在 Raspberry Pi 等小型设备上则明显不同。
尽管本教程侧重于 Wayland 嵌套窗口,但Xephyr(作为 X 应用程序运行的嵌套 X 服务器)已经存在很长时间了。
与 不同kwin_wayland,Xepher未针对直接渲染进行优化,并且未捆绑 KWin 窗口管理器,因此如果您在 之上运行 KWin 或其他直接渲染作曲家Xepher,事情会变得缓慢且效率低下,因此,不推荐使用,但方法如下:
Xephyr -ac -screen 1200x700 -resizeable -reset :1 &;
Run Code Online (Sandbox Code Playgroud)
您不能在 HostOS 和 ContainerOS 之间进行复制和粘贴。
您可以考虑使用GoogleKeep在 HostOS 和 ContainerOS 之间共享内容,当然,您应该通过 systemd-nspawn 绑定共享目录。
您可以“备份/恢复”或“复制”或“移动”continerOS 到任何地方,而不管
/etc/fstab等)或任何其他典型的集成故障!
请注意主机内核版本。
您的机器目录./machines
您的机器备份目录./machines-bak
您的机器映像目录arch1
cd ~/machines/
sudo tar -cpf ~/machines-bak/arch1.tar arch1 --totals
Run Code Online (Sandbox Code Playgroud)
cd ~/machines/
sudo tar -xpf ~/machines-bak/arch1.tar --totals
Run Code Online (Sandbox Code Playgroud)
tar上面的命令可能不是最聪明的方法,但是,它是一种经过验证的可靠方法,无需安装任何额外的工具。通常,简单是最好的。
但是,您可以选择各种备份工具以提高效率。
Git base bup看起来不错而且很新。
任何硬件相关因素,例如:
/etc/fstabNetworkManager.service 的 systemd| 归档时间: |
|
| 查看次数: |
3565 次 |
| 最近记录: |