221203
1. lxd 配置
详细内容见: lxd_archwiki
1.1. 初始化
systemctl start lxd sudo lxd init
按照提示配置好 一般能看的懂选项
1.2. 配置文件
lxd 使用 lxc 命令进行配置 执行以下命令编辑配置文件
lxc profile edit default
配置文件如下:
注意 !!!!!:我的 Xsocket 绑定位置与wiki 里的不同 wiki 为: listen: unix:/mnt/xorg1/X0
Waylandsocket 也是一样
- 原因: 由于调试时使用不了, 修改后未改回
config: {} description: Default LXD profile devices: Waylandsocket: bind: container connect: unix:/run/user/1000/wayland-1 gid: "1000" listen: unix:/mnt/wayland-1 mode: "0777" security.gid: "1000" security.uid: "1000" type: proxy uid: "1000" Xsocket: bind: container connect: unix:/tmp/.X11-unix/X0 gid: "1000" listen: unix:/mnt/X0 mode: "0777" security.gid: "1000" security.uid: "1000" type: proxy uid: "1000" eth0: name: eth0 network: lxdbr0 type: nic mygpu: type: gpu root: path: / pool: test type: disk name: default used_by: - /1.0/instances/alpine - /1.0/instances/arch
1.3. 启动容器
lxc image list images:archlinux #列出镜像 lxc launch images:archlinux/current/amd64 arch #发动镜像:从远程拉取镜像并生成容器 注意上面的输出的镜像信息并没有被/分割 lxc exec arch -- bash #进入容器 shell passwd #修改自定义密码
1.4. X11 绑定(wayland)
容器内建立一个 shell 文件名为 x11.sh
内容如下:
mkdir -p /run/user/1000 ln -s /mnt/wayland-0 /run/user/1000/wayland-0 #如果不需要可以不使用 wayland 路径根据 profile 里的 listen: unix 自定义的路径调整 ln -s /mnt/X0 /tmp/.X11-unix/X0 echo "export XDG_RUNTIME_DIR=/run/user/1000" > ~/.profile echo "export WAYLAND_DISPLAY=wayland-0" >> ~/.profile echo "export QT_QPA_PLATFORM=wayland" >> ~/.profile echo "export DISPLAY=:0" >> .profile source ~/.profile
每次使用时执行 sh x11.sh && source ~/.profile
1.5. 报错
由于之前清理掉了/var/lib/lxd/disks/default.img 所以报以下错误:
Error: Failed instance creation: Failed creating instance from image: Storage pool
解决方案:
lxc storage create test btrfs #新建一个存储器 lxc profile edit default #修改默认 pool 为 pool: test lxc launch images:alpine/edge alpine
1.6. 其他要点
- 由于未知原因容器内执行
pacman -S
往往失败 换为sudo pacman -S
可行 需要手动安装 =xorg-sercer =如果不使用 ssh 直接使用 X11 绑定, 则可以不安装 执行sudo pacman -S xorg-server