Synology 群晖

群晖

安装

资源及参考链接

https://www.openos.org/threads/dsm-6-2-3-2020-12-27.29/

准备工作

  • 引导系统装哪里?
    非常关键的问题,DSM采用系统和数据相分离的结构,也就是说引导系统需要独立安装在一个设备上,通常是U盘/SD/TF卡、或者SSD硬盘上。数据需要额外安装独立的硬盘上。

  • 引导系统安装盘 (U盘/USB flash drive/随身碟)
    无论是U盘还是TF卡,其实128MB或以上就足够了,USB 2.0/3.0都可以。

  • 数据存储硬盘 (硬盘)
    机械硬盘或者固态硬盘都可以,这个没有限制,容量当然越大越好。

  • 一般来说安装黑群晖至少需要两个文件, 一个是黑群晖的引导文件, 一个是群晖DSM的系统文件.

步骤

黑群晖系统: DSM 6.2.0–6.2.3
引导版本: 1.04b (首选推荐版本)
针对机型: DS918+
引导方式: 传统BIOS和UEFI
引导下载地址
https://www.openos.org/downloads/synology-dsm-6-2-1-loader-v1-04b.15/

DS918+ DSM 6.2.3-25426 Update2 系统
https://global.download.synology.com/download/DSM/release/6.2.3/25426/DSM_DS918+_25426.pat

其他DSM系统版本请看这里
https://archive.synology.com/download

  1. 下载群晖的引导文件, 推荐下载v1.04b.for.dms.6.2.1.synoboot-ds918.zip

    1
    2
    3
    4
    5
    http://down.nas2x.com/synology/dsm/6.2/synoboot/
    # 里面有三个文件
    dsm.6.2.synoboot_ds3615xs.1.03b.zip 02-Aug-2018 10:43 17M
    dsm.6.2.synoboot_ds3617xs.1.03b.zip 02-Aug-2018 10:42 20M
    v1.04b.for.dms.6.2.1.synoboot-ds918.zip 25-Jan-2019 18:30 21M
  2. 下载群晖的系统, 根据上面的引导下载系统, 上面选的是DS918+的话, 这里下载DS918+就好.

    1
    2
    3
    4
    # DS918+
    https://global.download.synology.com/download/DSM/release/6.2.3/25426/DSM_DS918+_25426.pat
    # 其他DSM系统
    https://archive.synology.com/download
  3. 修改引导程序配置文件,

    使用ChipEasy或者ChipGenius查找到U盘的VID和PID。

    以下图为例,这个U盘的VID是0930,PID是6544。

    请记录好这两个值。下面修改配置文件需要用到。

    IMG

  4. 编辑配置文件grub.cfg.

    打开DiskGenius, 在顶部选择硬盘-打开虚拟硬盘文件, 选择刚刚下载的.img引导文件并打开.

    IMG

    在左边找到刚刚打开的img文件, 点击展开ESP->grub, 在右边找到grub.cfg, 选择复制到桌面.

    IMG

    使用文本编辑器修改line22-line25的数据,

    需要注意的是VIDPID必须要和U盘的数值匹配好.

    SNMAC1是在洗半白的时候需要修改的数值, 是非必须修改的.

    set vid=0x058f U盘的VID 实体机必须修改,虚拟机无需修改
    set pid=0x6387 U盘的PID 实体机必须修改,虚拟机无需修改
    set sn=A8ODN02468 序列号 可以不修改
    set mac1=0011322CA603 mac地址 可以不修改

    注意:vid和pid的0x是十六进制的意思是不要删除掉的,只需要修改后面的4位.

    IMG

    回到DiskGenius内将原来的grub.cfg文件替换掉, 我这里是先将img镜像里面的grub.cfg文件删除, 再右键选择新增文件将编辑好的grub.cfg文件放入其中.

    关闭DiskGenius完成img引导的修改.

  5. 制作引导U盘

    使用Win32 Disk Imager磁盘映像工具将img引导文件写入U盘内.

    下载地址:https://sourceforge.net/projects/win32diskimager/
    中文版:https://www.openos.org/downloads/win32-disk-imager.2/

    • 先在软件界面右侧设备(Device) 部分选择U盘的盘符。
      (建议在操作前移除所有其他的USB存储设备,以防选择错误导致其他U盘或移动硬盘数据丢失)。

    • 再点击软件界面 映像文件(Image File)右侧蓝色文件夹图标,选择之前下载的synoboot.img文件。

    • 最后再点击写入(Write)。

    IMG

  6. 安装群晖系统

    插入U盘,并且在主板上设置默认从U盘启动

    默认选择从U盘启动后选择第1个选项DS3617xs 6.1 Baremetal with Jun's Mod v1.02-alpha按回车。

    IMG

  7. 找到设备IP地址

    这里需要稍微等一等提示Please open [http://find.synology.com](http://find.synology.com/) to continue后等个1-2分钟在浏览器里面输入http://find.synology.com/ ,搜索DSM,如果没有找到,那么使用SynologyAssistant查找. 点击下载Windows版本

    能进路由器管理页面的, 较好的方案是看一下群晖获取的IP是多少, 浏览器直接进去这个IP:5000的网页即可, 免去搜寻的麻烦.

    若多次测试还是无法搜索到群晖,那可能是网卡不支持,
    详情请查看DSM黑群晖网卡支持列表
    https://www.openos.org/threads/dsm-6-1-supported-drivers.42/

    IMG

  8. 上传系统文件.

    根据提示继续,点击手动安装后选择之前下载的pat文件,然后再点击立即安装

    IMG

    IMG

  9. 安装之后完成一些配置后就可以进入系统界面了.

安装后的注意事项

安装完成后的基本设置和注意事项
1,不要升级,不要升级,不要升级。可以去控制面板下面的-更新和还原里面设置。
2,还是不要升级,去计划任何里面关闭DSM自动更新选项。
3,在存储空间管理员里面设置存储空间后才可以进行其他的操作,如共享文件夹或安装其他套件。
4,DSM 6.x配置文件grub.cfg修改: https://www.openos.org/threads/dsm-6-x-grub-cfg-mac-sn.36/

群辉Synology DSM 添加硬盘/存储空间的方法
https://www.openos.org/threads/synology-dsm-hdd.30/

6.1驱动支持列表
https://www.openos.org/threads/dsm-6-1-supported-drivers.42/

经过测试,引导文件支持DSM 6.1.1-15101
但是不支持从老版本升级升级,仅限全新安装
安装后更新到update 2没有问题
https://www.openos.org/downloads/xpenology-dsm-6-1-1.8/history

安装完成后可以下载一些相关的手机端应用
DS Finder
DS File
DS photo

编译引导安装群晖

Github: https://github.com/fbelavenuto/arpl/ (这个在2023年停更了)
Github:https://github.com/RROrg/rr/releases (这个在更新,但是出现不久,据说是新的,也有说是arpl的迭代版本)

  1. 到release页面下载arpl-1.1-beta2a.img.zip,解压后得到arpl.img文件。

    1. 物理机安装群晖的,使用rufus吧arpl.img文件写入到U盘中
    2. 虚拟机安装的,将这个文件导入虚拟机,并将其设置为启动盘
  2. 开机设为启动项

  3. 跳出显示画面,按默认选项走就好

  4. 如果设备连接的路由器打开了DHCP的话,屏幕可以看到已经显示了IP:7601这样的地址。

    1. image-20230828230148188
  5. 我们需要连接到设备进行一些配置

    1. 方式一 通过终端
      1. 机器插上键盘
      2. 从设备调用“menu.sh”命令。
    2. 方式二 通过网络配置
      1. 另外一台电脑,打开刚刚屏幕上显示的网址配置
    3. 方式三 通过ssh配置
      1. 使用ssh客户端,用户名: root 和密码: Redp1lL-1s-4weSomE
  6. Choose a model选择你喜欢的型号 (DS918+ 兼容性好)

    1. image-20230828230737102
    2. 这里有个型号选择的参考 网址
  7. Choose a Build Number 可以选最新的版本,这个版本对应群晖系统的版本

    1. image-20230828230902591
  8. Choose a serial number 序列号配置

    1. Generate a random serial number 随机生成一个序列号
  9. Addons 是和十代cpu核显驱动相关的配置(这里根据CPU去配置)

  10. build the loader 编译loader程序

    1. 这个需要一点时间稍微等一下
    2. image-20230828231118050
  11. boot the loader 启动编译好的boot

    1. image-20230828231334846
  12. boot引导到DSM之后,屏幕就不会再更新信息了

  13. 访问群晖的页面

    1. 路由器找到群晖的IP,访问IP:5000
    2. 浏览器输入 https://finds.synology.com/ 寻找刚刚安装启动的NAS
  14. DSM系统安装参照上篇,DSM系统安装就是一样的了。

Note

SSH访问启动盘

1
2
3
4
mkdir /mnt/boot
cd /dev
sudo mount -t vfat synoboot1 /mnt/boot
cd /mnt/boot

半洗白 SN

前言

  • 全黑版本的群晖VideoStation不能离线转码,PhotoStation和Moments的略缩图和人像识别也会有问题
  • 半洗白就是转码和缩略图一类的可用
  • 全白就是多了QC,这个就没必要了(白嫖个系统就好了,就不要去嫖别人的服务器了)
  • 主要通过Docker+DDSM来获得SN
  • 群辉新版的Docker 18.09.0-0506已经关闭了DDSM安装,可下载17.05.0版本的Docker

步骤

  1. 下载17.05.0的Docker,可以在群晖官网下载

  2. 下载DDSM,可在群晖官网下载,注意要对应自己DSM的版本。

  3. 首先在套件中心点手动安装把第一步下载的17.05.0的Docker放进去。

  4. 打开Docker-左侧DSM-点击新增-下一步-下一步-下一步-手动上传,把刚刚下载的DDSM放进去,等待他安装完成。

  5. 安装完成后,进入DDSM群晖的控制面板。

  6. 在信息栏可看到SN和MAC,复制DDSM的SN和MAC保存下来。

  7. SSH接入DSM群晖,挂载启动盘BOOT,修改/grub/grub.cfg文件。

    1
    2
    3
    4
    5
    # 挂载启动盘BOOT
    mkdir /mnt/boot
    cd /dev
    sudo mount -t vfat synoboot1 /mnt/boot
    cd /mnt/boot
  8. 重启。

image-20211018141146176

半洗白后moments人脸识别不出来

原因

当群晖系统升级到6.22-24922以后,Moments也升级到了1.3.X,新的bug也随着版本升级来了”人物或者主题经常识别不出来“,经查日志后发现是Moments1.3插件有bug引导的,有问题的插件为“libsynophoto-plugin-detection.so”,经测试该插件在Moments1.2版本中是正常的。

步骤

  1. 群晖上启用SSH,并将moments停用

  2. MobaXterm连接群晖,启用root登录

    1. sudo -i
    2. vi /etc/ssh/sshd_config
    3. 找到#PermitRootLogin prohibit password,这一行最后,按回车,然后输入 PermitRootLogin yes
    4. 修改root密码synouser --setpw root 你的密码
    5. 重启
  3. 用root重新登录,将libsynophoto-plugin-detection.so插件替换掉

    1. 找到目录:/var/packages/SynologyMoments/target/usr/lib/libsynophoto-plugin-detection.so
    2. 将原文件先备份一下
    3. 用现有新文件将他替换掉
    4. 新文件权限修改一下
  4. 将moments启用,问题解决

参考资料

https://www.zhihu.com/question/428454266/answer/1681110862?ivk_sa=1024320u

https://blog.csdn.net/weixin_36059505/article/details/112766321

群晖安装 ipkg 包管理

仅适用于x86平台,ARM平台需要修改链接

1
2
3
4
5
6
7
8
9
# 以 root 用户执行
sudo -i
cd /volume1/@tmp
wget http://ipkg.nslu2-linux.org/feeds/optware/syno-i686/cross/unstable/syno-i686-bootstrap_1.2-7_i686.xsh
chmod +x syno-i686-bootstrap_1.2-7_i686.xsh
sh syno-i686-bootstrap_1.2-7_i686.xsh
rm syno-i686-bootstrap_1.2-7_i686.xsh
ipkg update
reboot

CPU频率调整

  1. Linux的/sys/devices/system/cpu/cpuxxx/cpufreq目录存储着第xxx个CPU的一些参数,例如最小最大平均频率,bios限制频率。

  2. 使用如下命令可以查看支持的工作模式:

    1
    cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
    模式介绍
    powersave只会保持最低频率,节能省电
    userspace自定义频率
    ondemand一有cpu计算量的任务,就会立即达到最大频率运行,等执行完毕就立即回到最低频率
    conservative根据负载状态自动在频率上下限调整
    performance保持以最大频率运行
  3. 通过下面指令可以看第*个CPU核心的工作状态,

    1
    cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

安装cpufreq-info:

1
2
ipkg update
ipkg install cpufrequtils

查看CPU频率和模式

1
cpufreq-info

修改模式:

1
cpufreq-set -c * -g MODE

例如将四个核心全部ondemand:

1
2
3
4
cpufreq-set -c 0 -g ondemand
cpufreq-set -c 1 -g ondemand
cpufreq-set -c 2 -g ondemand
cpufreq-set -c 3 -g ondemand

为了下次开机也自动生效,可以手动添加启动脚本。将其存成.sh,开启启动即可

1
2
3
4
5
#/bin/bash
/opt/bin/cpufreq-set -c 0 -g ondemand
/opt/bin/cpufreq-set -c 1 -g ondemand
/opt/bin/cpufreq-set -c 2 -g ondemand
/opt/bin/cpufreq-set -c 3 -g ondemand

lm-sensors 风扇控制

执行安装命令

1
ipkg install lm-sensors

查看温度

1
sensors

配置风扇控制,这块主要的目的只检测风扇在那一路,一般主板会涉及到多个风扇,但不一定都会安装,所以通过pwmconfig来检测与测试风扇的转速控制。

1
sudo pwmconfig

使用fancontrol自动控制风扇转速,他的原理就是定时执行脚本,监控CPU温度、根据不同的温度区间控制PWM值,从而改变风扇的转速。
当转速降低了后,噪音自然就解决了。

fancontrol会依赖pwmconfig命令生成的配置文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
/etc/fancontrol

-----------配置内容如下--------------
# Configuration file generated by pwmconfig, changes will be lost
INTERVAL=10
DEVPATH=hwmon0=devices/platform/coretemp.0 hwmon1=devices/platform/it87.2624
DEVNAME=hwmon0=coretemp hwmon1=it8772
FCTEMPS=hwmon1/device/pwm2=hwmon0/device/temp3_input
FCFANS= hwmon1/device/pwm2=hwmon1/device/fan2_input
MINTEMP=hwmon1/device/pwm2=20
MAXTEMP=hwmon1/device/pwm2=60
MINSTART=hwmon1/device/pwm2=150
MINSTOP=hwmon1/device/pwm2=100

默认生成的配置基本能够满足需求,经过测试风扇在2000转左右噪音相对能够接受。

VideoStation

参考:

关于群晖NAS video station TMDB连接测试失败及搜刮结果下载失败的解决方案

(群晖)关于Video Station内电影及电视剧封面简介为空白的处理方法

步骤

  • TMDB的图片服务器被屏蔽需要修改hosts 加上 api.themoviedb.org 的ip

  • 修改hosts后即可测试,已经连通

  • 搜刮信息会出现下载失败,主要是下载图片的url需要切换一下

    编辑 util_themoviedb.php 文件

    1
    2
    cd /var/packages/VideoStation/target/plugins
    vi util_themoviedb.php
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 找到下面的语句
    define('API_URL', 'https://api.themoviedb.org/3/');
    define('BANNER_URL', 'https://image.tmdb.org/t/p/w500');
    define('BACKDROUP_URL', 'https://image.tmdb.org/t/p/original');

    # 我们只需要把改为
    image.tmdb.org
    # 改为
    www.themoviedb.org

Gogs

参考

【工具】群晖利用docker安装Gogs代码管理平台

步骤

  1. 打开“Docker”->”注册表”,搜索Gogs并“右键”->“下载此映像”

    在这里插入图片描述

  2. 在”映像“页面中安装Gogs容器后,切换到”容器“页面,然后双击打开Gogs详情页

    1. 设定容器的本地端口
    2. 设定桌面快捷方式
  3. Gogs配置

    1. 数据库类型。

      这里我是个人用,所以就选SQLite,比较好备份,备份的时候可以整个打包走。

      如果选用mariaDB就按下面的步骤配置

      1. Windows中用ssh登录群晖服务器,cd到mariaDB目录下:

        cd /volume1/@appstore/MariaDB10/usr/local/mariadb10/bin/

      2. 输入命令 ./mysql -u root -p,然后输入密码,连接数据库

      3. 输入命令 use mysql切换到mysql数据库

      4. 创建数据库gogs
        CREATE DATABASE IF NOT EXISTS gogs;

      5. 输入下面的命令获取数据库远程访问权限 :

        GRANT ALL PRIVILEGES ON gogs.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
        其中user为用户名
        password为用户密码

      6. 然后用show databases;命令查看一下结果

    2. ssh建议使用内置ssh服务器,注意的是使用内置ssh服务器的时候就不能再使用22端口了,需要改掉

    3. HTTP端口和应用URL这里需要注意,如果配置了bredge网络,这里是端口是gogs的端口,应用URL的端口是对外的配置网络时候配置的端口。

  4. gogs:port 设定相关参数即可

  5. 着重需要说明的是:

    1. NULL
  6. tips

    1. 删除数据库 DROP DATABASE gogs;

Note

  • gogs 的配置保存在/data/gogs/conf/app.ini 参考下图

image-20211103161058734

  • 注意 MariaDB的port默认是不开的,需要去套件里面打开。
  1. Domain 填写Docker宿主机的物理IP地址,或者域名地址,注意这里是不带 http的 如: 192.168.137.140 或 git.mydomain.com
  2. SSH port 假如Docker映射的端口是 10022:22 那么这里就填写宿主机开放的端口 10022
  3. HTTP port 假如Docker映射的端口是 10080:3000 这里要填容器内的监听端口 3000
  4. Application URL 这里要填写的格式为 http(s)?/ + Domain + HTTP port ,比如:http://git.mydomain.com/10080 。还需要注意的一点是,如果你用了nginx来映射宿主机的 10080 端口,这里要去掉后面的端口,即 http://git.mydomain.com/,说白了就是你在外部浏览器上访问的地址。
  • 注意非标准port的ssh需要注意clone地址是否正确

备份

https://github.com/gogs/gogs/discussions/6876

  • 数据备份
  • 因为容器内的 /data 目录是直接挂载到宿主机的,我们把容器内备份目录设置为 /data , 方便宿主机将备份文件同步到远程备份服务器。
  • 这是直接在宿主机上执行的命令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
docker container exec gogs su - git -s /bin/ash \
-c "/app/gogs/gogs backup \
--config=/data/gogs/conf/app.ini \
--target=/data"
# 注意挂载目录的权限



# 也可以在docker命令行中手动执行命令来备份

# 打开命令交互窗口
docker exec -ti gogs bash
# gogs是git用户运行的 需要 先切换到git用户
su - git
# 查看备份命令的格式
/app/gogs/gogs backup -h
# 执行备份 config自然就是配置文件了 target是输出的目录
/app/gogs/gogs backup --config=/data/gogs/conf/app.ini --target=/data/
  • 数据恢复

  • 用docker完成gogs部署之后,执行下面命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
docker container exec -it gogs su - git -s /bin/ash \
-c "/app/gogs/gogs restore \
--config=/data/gogs/conf/app.ini \
--tempdir=/data \
--from=/data/gogs-backup-20211230091744.zip"



# 同样的这里如果手动执行的话就是这样的啦
# 记得先在docker部署好gogs
# 打开命令交互窗口
docker exec -ti gogs bash
# gogs是git用户运行的 需要 先切换到git用户
su - git
# 查看恢复命令的格式
/app/gogs/gogs restore -h
# 执行恢复
/app/gogs/gogs restore --config=/data/gogs/conf/app.ini --tempdir=/data --from=/data/gogs-backup-xxx.zip
  • 注意:

  • 备份和恢复时,使用的 gogs 版本必须是一致的

  • 备份和恢复时,使用的 mysql 版本必须是一致的

自述文档

Create a plain text file then move to directory custom/conf/readme/README and restart Gogs.

  • {Name}: Repository name
  • {Description}: Repository description
  • {CloneURL.SSH}: Repository SSH clone address
  • {CloneURL.HTTPS}: Repository HTTP/HTTPS clone address
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# {Name}
{Name} Repository

## Tip
You can get the development version of this repo via
**git clone {CloneURL.SSH}**
or
**git clone {CloneURL.HTTPS}**

## Bref
{Description}

## Details

zerotier

img namelast versionnotes
henrist-zerotier-one11.6.6没有自动配置路由
bltavares zerotier1.6.6网络不通
zyclonite/zerotier/1.8.4没有自动配置路由 配置路由后正常
spikhalskiy-zerotier11.8.2运行会报错zerotier-cli: /usr/lib/libstdc++.so.6: no version information available (required by zerotier-cli), 没有自动配置路由 配置路由后正常
zerotier-zerotier-synology1.8.4没有自动配置路由 配置路由后正常
1
2
3
4
5
6
7
8
9
10
docker run \
-d \
--restart always \
--name zerotier-one \
--device /dev/net/tun \
--net host \
--cap-add NET_ADMIN \
--cap-add SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one \
zerotier/zerotier-synology

第三方套件

1
2
# 矿神
https://spk.imnks.com/

群晖的备份 还原

晖硬盘接到电脑上使用diskgenius查看,有三个分区:系统、swap交换分区、数据存储区,所有的硬盘都有这三个分区。

交换分区,英文是swap,意思是“交换”、“实物交易”。 它的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。

image-20220918161100014

弄清楚这三个分区是做什么的就很简单了, 我们备份和还原自然也就是备份和还原第一个系统分区了.

需要注意的是群晖的系统存在于任何一块硬盘内, 所以还原分区的时候需要将分区还原到每一块硬盘内才行.

如果只还原一块后,开机进入系统,系统会提示修复,虽然也能成功但是并不建议这么做

群晖 硬盘扩容 硬盘升级

紧跟上面, 如果我们需要进行硬盘扩容, 比如原来的硬盘128G, 现在购入一块新硬盘256G, 我们需要用256去替换原来的硬盘, 但是现有设备上盘位已经插满了或者是属于单盘位的机器, 这时候就要把硬盘拆下来手动将数据进行转移.

我的大致思路是使用DG全盘拷贝到256G硬盘上(当时尝试的时候没有找到这方面的文章, 不知道该怎么样操作, 担心数据出问题所以就用了全盘拷贝), 然后上电开机SSH登录上去扩容一下分区就好.

克隆数据

首先打开DiskGenius软件 选择 -> 工具 -> 克隆磁盘 我这里选的是按扇区全盘克隆.

讲道理来说将系统区数据存储区拷贝过去, 再划分出swap交换分区应该也是可以的.

等待克隆完成.

扩容分区

磁盘克隆完成后, 旧的硬盘先不能格式化掉, 需要先留着以防万一.

将新的硬盘安装回群晖, 并上电开机, 开机一切正常, 查看存储管理器会发现, 256的磁盘只显示了128G, 这个时候我们就需要登录SSH进行下一步操作了.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 首先查看一下新放进去的盘的挂载位置
$ fdisk -l
Disk /dev/sda: 232.9 GiB, 250059350016 bytes, 488397168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos

# 上面可以看到 设备在`/dev/sda` 这里的sda里面的a是按顺序来的 第二个第三个盘就是sdb sdc 类推
# 输入命令后它会让我们输入结束地址, 我们这里直接回车, 设定地址为最末尾
$ parted /dev/sda resizepart 3
End? [250GB]?
Information: You may need to update /etc/fstab.

# 这里运行的时候报错了, 但是时间有点久没有记录下来给忘记了, 哎这些东西还是不能拖, 要立刻记录下来才行
$ resize2fs -f /dev/sda3
resize2fs 1.42.6 (21-Sep-2012)
.....

# 再次查看扩容完成
$ fdisk -l

参考:

群晖升级硬盘 磁盘克隆后的简单扩容教程

PVE Exsi 硬盘扩容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
sudo fdisk /dev/sdb

# 输入 p 查考分区情况
Command (m for help): p

Disk /dev/sdb: 64 GiB, 68719476736 bytes, 134217728 sectors
Disk model: HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x6776aa49

Device Boot Start End Sectors Size Id Type
/dev/sdb1 8192 16785407 16777216 8G fd Linux raid autodetect
/dev/sdb2 16785408 20979711 4194304 2G fd Linux raid autodetect
/dev/sdb3 21241856 66904063 45662208 21.8G fd Linux raid autodetect

# 输入 q 退出
Command (m for help): q

# 输入命令,给存储池扩容(命令中的3,对应/dev/sdb3)
parted /dev/sdb resizepart 3 100%

# 再次使用此命令查看分区表是否正确
sudo fdisk /dev/sdb

shell操作完成后在群晖的存储管理器,就看到系统提示”检测到未使用的硬盘空间,请单击立即扩充以扩充此存储池“,点蓝色的”立即扩充“;

群晖安装USB网卡驱动 AX88179A 6.2.3

image-20220926214605083

  1. 将USB网卡插入群晖

  2. 下载驱动程序 ax88179_178a.ko.zip

  3. 解压后将ax88179_178a.ko文件复制到群晖的/lib/modules/目录下

    1
    cp /volume......./ax88179_178a.ko /lib/modules
  4. 使用命令 chmod 644 ax88179_178a.ko修改文件权限为-rw-r--r--

  5. 加载驱动insmod /lib/modules/ax88179_178a.ko

    1. 我这里当时报错了, 但是似乎并没有什么影响

    2. insmod: ERROR: could not insert module /lib/modules/ax88179_178a.ko: Invalid module format

    3. 拓展一下

      1
      2
      3
      4
      5
      # 获取已加载的驱动列表
      lsmod
      # 卸载驱动
      # 参数为lsmod获取到的驱动名称,而不是路径
      rmmod ax88179_178a
  6. 启用网卡 ifconfig eth1 up

  7. 重新启动

网上很多blog写需要添加启动项, 但是我这里并没有添加 看起来也没有什么问题.

添加启动项的操作是在群晖的设置里面 添加一个任务计划开机触发执行下面这个脚本

1
2
insmod /lib/modules/ax88179_178a.ko
ifconfig eth1 up

PC通过群晖的网卡桥接上网

注意:首先需要确定Open vSwitch是开启的. 控制面板->网络->网络界面->管理,打开Open vSwitch(如果使用了VMM套件会自动开启,而且提示无法禁用).

1
2
# 路径图
网关(路由器) <-eth0-> 群晖 <-eth1-> PC

装了群晖的Virtual Machine Manager后一个接口会多出来一块网卡, 其中eth0是物理网卡, ovs_eth0是Open vSwitch这个网络管理工具虚拟出来的网卡.

一般来说eth0会空闲, 流量都是通过ovs_eth0这个虚拟网卡, 其中eth0会被配置成与ovs_eth0桥接


修改配置文件

如你的电脑接在群晖的第一个网口eth0就修改ifcfg-eth0,接的是第二个网口eth1就修改ifcfg-eth1(本例)。

1
2
3
4
5
6
# 编辑
vim /etc/sysconfig/network-scripts/ifcfg-eth1
# 将BRIDGE 改成ovs_eth0
# 原BRIDGE=ovs_eth1
BRIDGE=ovs_eth0

/etc/sysconfig/network-scripts/ifcfg-eth1文件参数简介

img

命令修改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 查看当前网桥 可以看到有两个网桥 ovs_eth0 和 ovs_eth1
> ovs-vsctl show

# 我们将网桥 ovs_eth1 删除, 并将 eth1 加入到 网桥ovs_eth0
> ovs-vsctl del-br ovs_eth1
> ovs-vsctl add-port ovs_eth0 eth1

# 再次查看网桥状态
> ovs-vsctl show
Bridge "ovs_eth0"
Port "eth1"
Interface "eth1"
Port "eth0"
Interface "eth0"
Port "ovs_eth0"
Interface "ovs_eth0"
type: internal
# 此时eth0和eth1全部在ovs_eth0内,即两个网口处于同一个交换机内。
# 将eth1和电脑相连,发现电脑可以正常从路由器获取IP地址,并正常上网

PC通过群晖的网卡NAT上网

这里主要是利用iptable路由流量.

首先补个iptable的教程

Iptables入门教程

  1. 我们需要先给局域网2 eth1设置一个静态ip 192.168.88.1/24 gw 192.168.88.1
  2. 然后在DHCP服务器端开启局域网2 eth1的DHCP服务, 网关填192.168.88.1
  3. 然后配置iptable开启网口转发

image-20221121215936519

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 开启群晖的转发功能
echo "1" > /proc/sys/net/ipv4/ip_forward

# 为PC添加 去往群晖的 路由表 群晖开了对应接口的DHCP就不需要了
route add -net 192.168.88.0/24 gw 192.168.88.1

# 在群晖中添加iptable 策略
# 配置 NAT 服务器,执行命令
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o ovs_eth0 -j MASQUERADE
# -t 表名
# -A 在指定链的末尾添加(--append)一条新的规则
# -s 指定数据包的源地址参数,可以使IP地址、网络地址、主机名
# 192.168.88.0 表示 192.168.88.x 的整个网络。
# -o 输出接口
# -j 目标动作或跳转
# MASQUERADE 则表示从 NAT 服务器的网卡上自动获取当前的 IP 地址来做端口转发。否则,基于目标的网络地址转换模式(即 DNAT)需要在每次 NAT 服务器连接外网的 IP 地址变更的时候重新配置端口转发。
# 也可以使用源地址目标转换模式(即 SNAT),命令是
# ** 这里和上面选其一即可 **
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o ovs_eth0 -j SNAT --to-source 192.168.20.2
# 显然这种方式也会依赖命令中指定的通向外网的 IP 地址,所以仍然不够灵活。推荐使用第一种方式。

# 允许端口转发
# 此命令将允许经过 eth1 网卡(连接内网)的所有数据包通向外网的转发。
iptables -A FORWARD -i eth1 -j ACCEPT
# 或者 仅允许转发192.168.88.0/24段的报文
iptables -A FORWARD -s 192.168.88.0/24 -j ACCEPT

参考

Linux 内部路由实现及网口转发之理论篇

Linux 系统双网卡实现内网端口转发


Synology 群晖
https://www.oikiou.top/2021/ee60585b/
作者
Oikiou
发布于
2021年10月18日
许可协议