TrueNAS Scale 折腾记录

TrueNAS Scale 折腾记录

写在前面

截止到本篇博客书写,最新的 TrueNAS Scale 的版本为 ElectricEel-24.10.0.2,即文章封面图所示的版本。从 TrueNAS Scale 24.10 版本开始,系统将 Docker Compose 作为默认的应用容器管理工具,替代了原来的 K3S,终于不用捏着鼻子用 K3S 了~

开机 Docker 自动换源

  • 将更新脚本写入到 /root/update_docker_daemon.sh 文件:

    sudo tee /root/update_docker_daemon.sh > /dev/null << 'EOF'
    #!/bin/bash
    sleep 30
    # 备份原始文件
    sudo cp /etc/docker/daemon.json /etc/docker/daemon.json.bak
    
    # 使用 jq 添加新的键值对并写入临时文件
    sudo jq '. + { "registry-mirrors": ["https://docker.1ms.run"] }' /etc/docker/daemon.json | sudo tee /etc/docker/daemon.json.tmp > /dev/null
    
    # 检查 jq 是否成功
    if [ $? -eq 0 ]; then
        # 替换原始文件
        sudo mv /etc/docker/daemon.json.tmp /etc/docker/daemon.json
        echo "成功更新 daemon.json 文件。"
    else
        echo "更新 daemon.json 文件失败,恢复备份。"
        sudo mv /etc/docker/daemon.json.bak /etc/docker/daemon.json
    fi
    
    # 重启 Docker 服务
    sudo systemctl restart docker
    EOF
    
  • 设置开机自启
    在 TrueNAS Scale 系统->高级设置->开机/关机脚本中添加脚本,类型选“命令”,命令填 bash /root/update_docker_daemon.sh,什么时候选“初始化后期”,保存即可

恢复数据保护中的 OneDrive 项

在官方论坛 Kiva 提出了解决方案,在命令行中执行:

# 将 /usr 目录重新挂载为可读写
sudo mount -o remount,rw /usr
# 如有需要,还要先设置 Git 代理
git clone https://github.com/imkiva/onedrive-sdk-python
cd onedrive-sdk-python/
# 将兼容高版本 Python 的 OneDrive SDK 库加入到 pip 包目录中
cp -ar src/onedrivesdk /usr/lib/python3/dist-packages
cp -ar src/python3/request /usr/lib/python3/dist-packages/onedrivesdk
# 下载核心脚本
cd /usr/lib/python3/dist-packages/middlewared/rclone/remote/
wget -e use_proxy=yes -e https_proxy=http://<ip>:<port> https://raw.githubusercontent.com/truenas/middleware/cd9acacac17f9a4e98883c7d8baefacd2085eea7/src/middlewared/middlewared/rclone/remote/onedrive.py
sed -i '1d;$d' onedrive.py
# 恢复 /usr 目录权限
mount -o remount,ro /usr

然后重启系统,便可以看到 OneDrive 备份项回来了~