【OECT刷armbian】Armbian+ 1Panel 部署教程

本教程旨在指导您在一个拥有 eMMC 系统盘和 SATA/NVMe 数据盘的设备上,搭建一个系统与数据完全分离、配置优化、稳定可靠的 1Panel 服务器环境。

🗂️ 最终存储结构规划

路径存储介质用途说明
/eMMC (系统盘)纯净系统:只安装操作系统和基础软件。
/mnt/mydisk/SATA/NVMe SSD (数据盘)数据总盘:所有应用和用户数据存储于此。
docker/SSDDocker 的所有镜像、容器和数据卷。
opt/SSD1Panel 面板程序及通过其安装的应用。
storage/SSD您的个人文件、媒体库、备份等。
🚀 完整操作步骤
第一阶段:系统准备
SSH 登录系统

Bash

ssh root@你的设备IP
更新系统并安装必要工具

Bash

apt update && apt upgrade -y
apt install -y fdisk parted htop ncdu curl
第二阶段:配置数据盘 (SSD)
识别磁盘设备

Bash

fdisk -l
# 仔细查看输出,确认您的数据盘路径,通常是 /dev/sda 或 /dev/nvme0n1。
# 【警告】请务必确认目标设备,误操作将导致数据丢失!
分区与格式化

将下面命令中的 /dev/sda 替换为您的实际磁盘路径。

Bash

# 1. 为磁盘创建GPT分区表 (此操作会清除磁盘上的所有数据)
parted /dev/sda mklabel gpt

# 2. 创建一个占满全部空间的 ext4 主分区
parted /dev/sda mkpart primary ext4 1MiB 100%

# 3. 格式化新创建的分区 (注意分区名末尾有数字 "1")
mkfs.ext4 /dev/sda1
配置开机自动挂载

Bash

# 1. 获取新分区的 UUID
blkid /dev/sda1
# 复制输出内容中 UUID="xxxxxxxx-...." 这一长串值

# 2. 编辑 fstab 配置文件
nano /etc/fstab
在文件末尾添加新的一行 (将 UUID 替换为您刚才复制的实际值):

# Mount Data SSD
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /mnt/mydisk ext4 defaults,nofail 0 2
说明: nofail 参数可防止因 SSD 故障导致系统无法启动。
保存并退出: Ctrl + X -> Y -> Enter。

创建挂载点并测试

Bash

# 1. 创建挂载点目录
mkdir -p /mnt/mydisk

# 2. 挂载所有 fstab 中的磁盘并检查结果
mount -a
df -h | grep mydisk
# 预期输出应显示 /dev/sda1 成功挂载到 /mnt/mydisk
第三阶段:创建数据目录结构
在 SSD 上创建规划好的目录

Bash

mkdir -p /mnt/mydisk/{docker,opt,storage}
第四阶段:安装与配置 Docker
使用官方脚本安装 Docker

Bash

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
systemctl start docker
systemctl enable docker
配置 Docker 数据目录与镜像加速器

我们将使用一种能100%避免格式错误的方法,直接写入配置文件。

Bash

cat <<EOF > /etc/docker/daemon.json
{
  "registry-mirrors": [
    "https://mirror.ccs.tencentyun.com"
  ],
  "data-root": "/mnt/mydisk/docker"
}
EOF
重启 Docker 并验证配置

Bash

systemctl restart docker
docker info | grep -E '(Registry Mirrors|Root Dir)'

# 预期输出应包含以下两行:
#  Docker Root Dir: /mnt/mydisk/docker
#  Registry Mirrors:
#   https://mirror.ccs.tencentyun.com
如果 Registry Mirrors 为空,请参考文末的【常见问题排查】。

第五阶段:安装 1Panel
【核心步骤】链接 /opt 目录到 SSD

此步骤确保 1Panel 程序本身被安装在 SSD 上。

Bash

# 1. 将 /opt 目录里可能已有的文件,全部移动到 SSD 的目标位置
mv /opt/* /mnt/mydisk/opt/

# 2. 删除现在已经变空的 /opt 目录
rmdir /opt

# 3. 创建符号链接,将 /opt 指向 SSD
ln -s /mnt/mydisk/opt /opt

# 4. 验证链接是否成功
ls -ld /opt
# 预期输出的开头应为 'l',并有箭头指向 /mnt/mydisk/opt
执行 1Panel 安装脚本

Bash

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && bash quick_start.sh
安装过程中,当提示安装路径、端口、用户名、密码时,您可以根据需要设置,或者直接按回车使用默认值。

【警告】安装完成后,请务必将最后输出的访问地址、用户名和密码妥善保存!

第六阶段:最终验证与收尾
重启系统进行最终考验

Bash

reboot
重启后全面检查

等待 1-2 分钟,重新 SSH 登录服务器,执行以下所有命令进行最终检查。

Bash

# 1. 检查硬盘挂载
df -h | grep mydisk
# 2. 检查 Docker 状态与配置
systemctl status docker
docker info | grep -E '(Registry Mirrors|Root Dir)'
# 3. 检查 1Panel 服务状态
systemctl status 1panel
所有检查项都应显示为已挂载、active (running) 和配置正确。

💡 常见问题排查 (FAQ)
问题:安装 1Panel 时 curl 下载失败或出现 Segmentation fault?

原因:大概率是网络环境不稳定(特别是使用代理时),导致下载的 docker-compose 文件损坏。

解决方案:

直接重新运行安装脚本 bash quick_start.sh,有时第二次就能成功。

如果依然失败,尝试暂时关闭设备的代理/VPN,使用常规网络环境完成安装,成功后再开启。

问题:步骤 10 验证时,Registry Mirrors 为空?

原因:系统无法通过 DNS 解析镜像服务器的域名。

解决方案:

测试网络连通性:ping -c 4 mirror.ccs.tencentyun.com,如果提示 Name or service not known 则确认为 DNS 问题。

编辑 DNS 配置文件:nano /etc/resolv.conf。

在文件最顶行添加一个可靠的公共 DNS,然后保存退出。

国内环境推荐:nameserver 114.114.114.114

特殊网络环境推荐:nameserver 8.8.8.8

重新执行步骤 10 的重启和验证命令。

至此,您已拥有一个架构完美、稳定可靠的家庭服务器。祝您使用愉快!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注