ArmKVM分区调整与 Tailscale 部署文档
一、操作概述
本文档详细描述buildroot系统中调整tf卡分区、挂载指定目录,并部署 Tailscale 守护进程的完整流程
二、分区调整操作
2.1 分区创建说明
通过fdisk工具对/dev/mmcblk1(tf卡)进行分区调整:
mmcblk1p3:大小 1GB,用于挂载/opt目录,存放tailscale使用mmcblk1p4:用于挂载/userdata/jetkvm/images目录,存放iso使用
操作步骤:
使用ssh工具连接ArmKVM,账号root,密码root
#指定设备
fdisk /dev/mmcblk1
#删除p3分区
d
3
p
# 重新创建p3分区(/opt)
n
p
3
180224
+1g
# 创建p4分区(/userdata/jetkvm/images)
p
n
p
2277376
#保存
w
# 查看分区情况
fdisk -l
# 重启系统使分区表生效
reboot2.2 分区格式化
将新建的 p3、p4 分区格式化为 ext4 文件系统:
请分开执行以下两条命令
mkfs.ext4 /dev/mmcblk1p3
mkfs.ext4 /dev/mmcblk1p42.3 配置开机自动挂载
修改/etc/fstab文件,添加分区挂载规则,确保系统启动时自动挂载:
# 编辑fstab文件
nano /etc/fstab
# 添加以下两行(挂载规则)
/dev/mmcblk1p3 /opt ext4 defaults 0 2
/dev/mmcblk1p4 /userdata/jetkvm/images ext4 defaults 0 2
#nano编辑命令提示 ctrl+o保存 ctrl+x退出
mount -a2.4 注释原有挂载项
编辑/etc/init.d/S11partition文件,注释掉/userdata/jetkvm/images的原有挂载逻辑(避免冲突):
nano /etc/init.d/S11partition
# 找到对应挂载行,在行首添加 #注释
# 示例:# mount /dev/mmcblk1p3/userdata/jetkvm/images三、Tailscale 部署
3.1 准备文件
- 将 Tailscale 程序包上传至
/opt目录(需提前下载对应架构的 Tailscale 二进制包) 赋予程序执行权限:
chmod u+x /opt/tailscale*上传 SSL 证书(pem 格式)至
/opt目录,并创建证书目录:
如您自建tailscale控制器才需要此操作mkdir -p /etc/ssl/certs # 可将pem证书复制到/etc/ssl/certs目录(若需要) # cp /opt/*.pem /etc/ssl/certs/
3.2 创建 Tailscale 守护进程启动脚本
创建/etc/init.d/S99tailscaled脚本,实现 Tailscale 服务的开机自启、启停管理(使用默认数据目录和端口):
#!/bin/sh
### BEGIN INIT INFO
# Provides: tailscaled
# Required-Start: $network $local_fs
# Required-Stop: $network $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/stop tailscaled daemon
### END INIT INFO
DAEMON="/opt/tailscaled"
DAEMON_NAME="tailscaled"
PIDFILE="/var/run/$DAEMON_NAME.pid"
# 构建完整的启动命令(使用默认数据目录和端口)
DAEMON_OPTS=""
start() {
printf "Starting %s: " "$DAEMON_NAME"
start-stop-daemon -S -q -b -m -p "$PIDFILE" -x "$DAEMON" -- $DAEMON_OPTS
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
stop() {
printf "Stopping %s: " "$DAEMON_NAME"
start-stop-daemon -K -q -p "$PIDFILE"
status=$?
if [ "$status" -eq 0 ]; then
echo "OK"
else
echo "FAIL"
fi
return "$status"
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $?- 赋予脚本执行权限:
chmod +x /etc/init.d/S99tailscaled3.3 启动 Tailscale 服务
# 启动服务
/etc/init.d/S99tailscaled start
# 重启服务(如需)
/etc/init.d/S99tailscaled restart
# 停止服务(如需)
/etc/init.d/S99tailscaled stop/opt/tailscale up #开始登录
四、验证操作
验证分区挂载:
df -h # 查看/opt和/userdata/jetkvm/images是否正常挂载验证 Tailscale 进程:
ps -ef | grep tailscaled # 查看进程是否运行- 验证开机自启:重启系统后,再次执行上述命令,确认分区挂载和 Tailscale 进程正常。