群晖SA6400修改eSATA(修改dtb)
由于群晖的从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 600
hdparm -S 120 /dev/sata1
hdparm -S 120 /dev/sata2
mdadm /dev/md0 --re-add /dev/sata1p1
sleep 600
mdadm /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.dts cp -f model.dtb /etc/model.dtb cp -f model.dtb /etc.defaults/model.dtb
如果咩咩的文章对你有帮助,您可以 请我喝牛奶
怎么你们的博客都要爬墙了
不用啊,是你网太辣鸡了吧
usb外置硬盘如何转成内置存储空间?
有人成功过,操作步骤跟这个一样,但是拔插会导致出问题,需要插上再开机
尝试把dts中usb_slot直接修改成internal_slot并不行,您知道详细如何修改吗
除非你是白的你可以直接改他上面那些,不然你得找你自己的usb在什么地方
能详细介绍下吗?我
不能,写的那么清楚了,连复制粘贴都不会的话我没法教你,或者你财大气粗可以掏钱买我时间,直接帮你搞定
清楚个锤子,格式都不一样,格式都不一样,还说复制粘贴
眼睛不需要的可以捐给有需要的人,文件都操作错了当然格式不一样,现在的伸手党都那么傻的吗
有点奇怪,我主板直通的4块盘能识别,但是直通了拓展卡之后反而只能识别一块盘,其他盘全显示是未共享,不支持的格式。哪怕是主板直通能正常的4块盘也是的。
只能说是通错了或者配错了
引导界面也加了参数并编译:
maxdisks="32"
usbportcfg="0x00000000"
internalportcfg="0x0000001"
esataportcfg="0xfffffffe"
但还是没啥变化。
你看清楚了,我也没让你去加这个啊