LXD 镜像制作
由于一些发行版官方不支持,或者一些过时的版本已不提供,所以需要自己动手制作。
Debian
需要先安装 debootstrap 包,如果当前主机没有提供包,则可以考虑在 LXD 创建一个 Debian 环境:
lxc launch debian/11 my-debian-container
lxc exec my-debian-container -- bash
apt install -y debootstrap
或者在 Docker 下:
docker run --privileged \
-e container=docker \
--name my-debian \
-it debian \
/sbin/init
docker exec -it my-debian-container bash
apt install -y debootstrap
Lenny
debootstrap lenny ./lenny http://mirrors.aliyun.com/debian-archive/debian
tar -cvzf rootfs.tar.gz -C lenny .
如果该系统不是基于 Systemd 的,那么是需要一些配置,首先是网络:
cat << EOF >> ./lenny/etc/network/interfaces
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
EOF
其次是让 LXD 可以执行 lxc stop
来关闭他,需要改动里面的 init 脚本:
sed -i 's|pf::powerwait:/etc/init.d/powerfail start|pf::powerwait:/etc/init.d/rc 0|' ./lenny/etc/inittab
打包:
tar -cvzf rootfs.tar.gz -C lenny .
创建 metadata.yaml
文件:
architecture: x86_64
creation_date: 1658306082
properties:
architecture: amd64
description: Debian Ienny amd64
os: Debian
release: lenny
再打包该文件,并导入到 LXD 中:
tar -cvzf metadata.tar.gz metadata.yaml
lxc image import metadata.tar.gz rootfs.tar.gz