站点图标 Linux-技术共享

SolusVM 官方模板修改方案

已知条件(我已全部纳入方案)
SolusVM:1.29.04 Stable
虚拟化:KVM
模板来源:SolusVM 官方
模板类型:Debian 12 64bit Minimal
Generation:Gen2
Disk Driver:virtio
模板格式:raw + gzip(.gz)
制作环境:Ubuntu 24
模板文件:linux-debian-12-x86_64-gen2-v1.gz

核心原理(你只要看一眼)
SolusVM 官方 KVM 模板是:
raw 磁盘 → gzip 压缩
正确修改方式是:
.gz → .img → loop 挂载 → chroot 修改 → 退出 → gzip

不要直接解压后 tar
不要重新 debootstrap(官方不推荐)

三、Ubuntu 24 上的完整实操步骤(重点)

准备工具(一次即可)

```bash
apt update
apt install -y \
gzip \
qemu-utils \
parted \
losetup \
rsync \
e2fsprogs \
systemd-container
```

---

2️下载官方模板

```bash
mkdir -p /home/solusvm/kvm/template
cd /home/solusvm/kvm/template

wget https://templates.solusvm.com/kvm/linux-debian-12-x86_64-gen2-v1.gz
```

---

3️ 解压模板(得到 raw 镜像)

```bash
gunzip linux-debian-12-x86_64-gen2-v1.gz
```

得到:

```text
linux-debian-12-x86_64-gen2-v1
```

确认文件类型:

```bash
file linux-debian-12-x86_64-gen2-v1
```

应看到类似:

```text
DOS/MBR boot sector
```

---

4️关联 loop 设备(非常关键)

```bash
losetup -fP linux-debian-12-x86_64-gen2-v1
losetup -a
```

你会看到类似:

```text
/dev/loop0: linux-debian-12-x86_64-gen2-v1
```

并且有分区:

```bash
ls /dev/loop0*
```

一般是:

```text
/dev/loop0p1
```

---

5️挂载系统分区

```bash
mkdir -p /mnt/debian12
mount /dev/loop0p1 /mnt/debian12
```

---

6️准备 chroot 环境

```bash
mount --bind /dev /mnt/debian12/dev
mount -t proc proc /mnt/debian12/proc
mount -t sysfs sys /mnt/debian12/sys
mount --bind /run /mnt/debian12/run
```

进入系统:

```bash
chroot /mnt/debian12 /bin/bash
```

---

四、在模板系统内修改(自动开启 22 的关键)

> 以下 **每一行都必须执行**

---

1️确认 / 安装 SSH 服务

```bash
apt update
apt install -y openssh-server
```

---

2️启用 SSH 开机自启

```bash
systemctl enable ssh
```

---

3️强制开启 22 端口 + root 登录

```bash
sed -i 's/^Port .*/Port 22/' /etc/ssh/sshd_config
sed -i 's/^Port .*/Port 22/' /etc/ssh/sshd_config
sed -i 's/^PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/^PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config
sed -i 's/^UseDNS.*/UseDNS no/' /etc/ssh/sshd_config
```

---

4️确认 cloud-init 不禁 SSH(非常重要)

```bash
grep -R "disable_root" /etc/cloud || true
```

修改 / 新建:

```bash
cat > /etc/cloud/cloud.cfg.d/99-solusvm-ssh.cfg << EOF
disable_root: false
ssh_pwauth: true
EOF
```

---

5️关闭防火墙(官方 minimal 常见坑)

```bash
ufw disable 2>/dev/null || true
iptables -F || true
```

---

6 清理 machine-id(防克隆冲突)

```bash
truncate -s 0 /etc/machine-id
rm -f /var/lib/dbus/machine-id
```

---

7️(可选)确认默认 root 密码策略

你给的模板参数是:

```text
Root Password: debian12svm
```

SolusVM 会在创建时重置,这里**不需要改 passwd**。

---

8️退出 chroot

```bash
exit
```

---

五、卸载并释放 loop(一定要按顺序)

```bash
umount /mnt/debian12/dev
umount /mnt/debian12/proc
umount /mnt/debian12/sys
umount /mnt/debian12/run
umount /mnt/debian12

losetup -d /dev/loop0
```

(如果不是 loop0,按实际)

---

六、重新压缩为 SolusVM 官方格式

```bash
gzip -9 linux-debian-12-x86_64-gen2-v1
```

生成:

```text
linux-debian-12-x86_64-gen2-v1.gz
```

---

七、上传并替换 SolusVM 模板

```bash
scp linux-debian-12-x86_64-gen2-v1.gz \
root@SOLUSVM_NODE:/var/lib/solusvm/kvm/template/
```

SolusVM 后台:

```
KVM → Templates → Synchronize
```

或重新添加模板。

---

八、创建 VPS 验证(必须)

创建新 VPS 后:

```bash
ssh root@VPS_IP
```

应 **无需 VNC 即可连接 22**。

---

九、最终核查命令(你可以在新 VPS 执行)

```bash
systemctl status ssh
ss -lntp | grep 22
cloud-init status
```

---

 

退出移动版