由于群晖的从DS920开始的机器不再使用esataportcfg和internalportcfg的synoinfo进行esata和内置sata的配置,所以修改这两个参数已经不能把内置sata改为esata了
新的机型采用dtb的方式进行配置,下面将讲述如何进行dtb配置
-
首先,先把需要设置成esata的盘位插上硬盘,进入RR(或者ARPL,下称引导)的编译引导环境(Configure),正常的配置好编译引导
-
进入系统安装(如果已经装好系统,用第二个启动项进入安装程序)用telnet连接,用户名root没有密码,执行下面的命令查看sata口信息
cat /sys/block/sata数字/device/syno_block_info其中“数字”取决于群晖磁盘管理中显示的硬盘序号,可以ls /sys/block/sata*查看所有的
pciepath对应下方配置中完整的pcie_root
ata_port对于下方配置中的ata_port
记下来,下面会用到
对应的 /sys/block/usb*则是usb盘的内容,如果你希望用usb硬盘盒改成内置硬盘来用,就请这样找出来在dts中进行类似的修改
- 在系统安装中,执行以下命令解析并查看dtb(进入dsm系统后没有dtc命令,所以只能在系统安装做)
dtc -I dtb -O dts -o model.dts /run/model.dtb# 先多按几下回车方便查找 把下面这个命令输出的内容复制下来cat model.dts使用Visual Studio Code或者其他记事本,使用UTF-8编码保存刚刚复制的内容(用系统自带的记事本也行)并进行修改
根据刚刚让你记下来的信息找到你的esata接口,并把它的internal_slot改成esata_port,并调整一下后面的数字,没有就自行增加一个
esata_port@从1开始数接口数量 { ahci { pcie_root = "0000:刚刚让你记下的控制器id; ata_port = <0x刚刚Ports里数的转16进制>; internal_mode; }; };比如说pve里加的第一个虚拟硬盘就是 00:1e.0,01.0,07.0 和1,那你需要输入 0000:00:1e.0,01.0,07.0和 0x01 (16进制会自忽略前面的0)
esata_port是外置esata,internal_slot是内置口,请举一反三
下面则是天钡r1用pve直通n100的物理sata控制器,1口是esata,0口是内置的例子(cpu风扇那边是0)/dts-v1/;
/ { compatible = "Synology"; model = "synology_epyc7002_sa6400"; version = <0x01>;
esata_port@1 { protocol_type = "sata";
ahci { pcie_root = "0000:00:1c.0,00.0"; ata_port = <0x01>; }; };
internal_slot@1 { protocol_type = "sata";
ahci { pcie_root = "0000:00:1c.0,00.0"; ata_port = <0x00>; }; };
usb_slot@1 {
usb2 { usb_port = "1-1"; };
usb3 { usb_port = "1-1"; }; };
usb_slot@2 {
usb2 { usb_port = "1-2"; };
usb3 { usb_port = "1-2"; }; };
usb_slot@3 {
usb2 { usb_port = "1-3"; };
usb3 { usb_port = "1-3"; }; };
usb_slot@4 {
usb2 { usb_port = "1-4"; };
usb3 { usb_port = "1-4"; }; };
usb_slot@5 {
usb2 { usb_port = "1-5"; };
usb3 { usb_port = "1-5"; }; };
usb_slot@6 {
usb2 { usb_port = "1-6"; };
usb3 { usb_port = "1-6"; }; };
usb_slot@7 {
usb2 { usb_port = "2-1"; };
usb3 { usb_port = "2-1"; }; };
usb_slot@8 {
usb2 { usb_port = "2-2"; };
usb3 { usb_port = "2-2"; }; };
usb_slot@9 {
usb2 { usb_port = "2-3"; };
usb3 { usb_port = "2-3"; }; };
usb_slot@10 {
usb2 { usb_port = "2-4"; };
usb3 { usb_port = "2-4"; }; };
usb_slot@11 {
usb2 { usb_port = "2-5"; };
usb3 { usb_port = "2-5"; }; };
usb_slot@12 {
usb2 { usb_port = "2-6"; };
usb3 { usb_port = "2-6"; }; };};如果在pve中增加一块sata0虚拟盘作为启动盘(引导盘用scsi0),设置为槽1,那就是这样
/dts-v1/;
/ { compatible = "Synology"; model = "synology_epyc7002_sa6400"; version = <0x01>;
esata_port@1 { protocol_type = "sata";
ahci { pcie_root = "0000:00:1c.0,00.0"; ata_port = <0x01>; }; };
internal_slot@1 { protocol_type = "sata";
ahci { pcie_root = "0000:00:1e.0,01.0,07.0"; ata_port = <0x00>; }; };
internal_slot@2 { protocol_type = "sata";
ahci { pcie_root = "0000:00:1c.0,00.0"; ata_port = <0x00>; }; };
usb_slot@1 {
usb2 { usb_port = "1-1"; };
usb3 { usb_port = "1-1"; }; };
usb_slot@2 {
usb2 { usb_port = "1-2"; };
usb3 { usb_port = "1-2"; }; };
usb_slot@3 {
usb2 { usb_port = "1-3"; };
usb3 { usb_port = "1-3"; }; };
usb_slot@4 {
usb2 { usb_port = "1-4"; };
usb3 { usb_port = "1-4"; }; };
usb_slot@5 {
usb2 { usb_port = "1-5"; };
usb3 { usb_port = "1-5"; }; };
usb_slot@6 {
usb2 { usb_port = "1-6"; };
usb3 { usb_port = "1-6"; }; };
usb_slot@7 {
usb2 { usb_port = "2-1"; };
usb3 { usb_port = "2-1"; }; };
usb_slot@8 {
usb2 { usb_port = "2-2"; };
usb3 { usb_port = "2-2"; }; };
usb_slot@9 {
usb2 { usb_port = "2-3"; };
usb3 { usb_port = "2-3"; }; };
usb_slot@10 {
usb2 { usb_port = "2-4"; };
usb3 { usb_port = "2-4"; }; };
usb_slot@11 {
usb2 { usb_port = "2-5"; };
usb3 { usb_port = "2-5"; }; };
usb_slot@12 {
usb2 { usb_port = "2-6"; };
usb3 { usb_port = "2-6"; }; };};如果后续再加一条计划任务,就能实现开机自动把机械盘加入10分钟后分离,既能备份,也能保证硬盘休眠
md0是系统盘,md1是swap虚拟内存,sata1是机械(1不是槽1,而是跟上面第1点的那个)
sleep 600hdparm -S 120 /dev/sata1hdparm -S 120 /dev/sata2mdadm /dev/md0 --re-add /dev/sata1p1sleep 600mdadm /dev/md0 -f sata1p1#mdadm /dev/md1 -f sata1p2如果是物理机,亲测nvme不能作为esata_port,不用尝试了
/dts-v1/;
/ { compatible = "Synology"; model = "synology_epyc7002_sa6400"; version = <0x01>; power_limit = "100";
esata_port@1 { protocol_type = "sata";
ahci { pcie_root = "0000:00:17.0"; ata_port = <0x01>; }; };
internal_slot@2 { protocol_type = "sata";
ahci { pcie_root = "0000:00:17.0"; ata_port = <0x00>; }; };
nvme_slot@1 { pcie_root = "0000:00:1c.0,00.0"; port_type = "ssdcache"; };
usb_slot@1 {
usb2 { usb_port = "1-1"; };
usb3 { usb_port = "1-1"; }; };
usb_slot@2 {
usb2 { usb_port = "2-1"; };
usb3 { usb_port = "2-1"; }; };
usb_slot@3 {
usb2 { usb_port = "3-1"; };
usb3 { usb_port = "3-1"; }; };
usb_slot@4 {
usb2 { usb_port = "3-2"; };
usb3 { usb_port = "3-2"; }; };
usb_slot@5 {
usb2 { usb_port = "3-3"; };
usb3 { usb_port = "3-3"; }; };
usb_slot@6 {
usb2 { usb_port = "3-4"; };
usb3 { usb_port = "3-4"; }; };
usb_slot@7 {
usb2 { usb_port = "3-5"; };
usb3 { usb_port = "3-5"; }; };
usb_slot@8 {
usb2 { usb_port = "3-6"; };
usb3 { usb_port = "3-6"; }; };
usb_slot@9 {
usb2 { usb_port = "3-7"; };
usb3 { usb_port = "3-7"; }; };
usb_slot@10 {
usb2 { usb_port = "3-8"; };
usb3 { usb_port = "3-8"; }; };
usb_slot@11 {
usb2 { usb_port = "3-9"; };
usb3 { usb_port = "3-9"; }; };
usb_slot@12 {
usb2 { usb_port = "3-10"; };
usb3 { usb_port = "3-10"; }; };
usb_slot@13 {
usb2 { usb_port = "3-11"; };
usb3 { usb_port = "3-11"; }; };
usb_slot@14 {
usb2 { usb_port = "3-12"; };
usb3 { usb_port = "3-12"; }; };
usb_slot@15 {
usb2 { usb_port = "4-1"; };
usb3 { usb_port = "4-1"; }; };
usb_slot@16 {
usb2 { usb_port = "4-2"; };
usb3 { usb_port = "4-2"; }; };
usb_slot@17 {
usb2 { usb_port = "4-3"; };
usb3 { usb_port = "4-3"; }; };
usb_slot@18 {
usb2 { usb_port = "4-4"; };
usb3 { usb_port = "4-4"; }; };};-
强制关机重启或在telnet中
reboot,进入引导,用浏览器访问引导的web配置界面,选择“高级”中的“自定义dts文件”上传你刚刚编辑好的文件,并进行一次编译,再正常启动即可完成对esata的配置另外也可以直接对系统中的dtb进行覆盖,但是可能会导致你的修改被系统覆盖而无法生效,所以不推荐,除非你是白的
sudo dtc -I dts -O dtb -o model.dtb model.dtscp -f model.dtb /etc/model.dtbcp -f model.dtb /etc.defaults/model.dtb