众所周知redpill引导还在beta阶段对于新人和主力机想使用的最新系统的人还不是很友好,我也是一时手痒用一些闲置配件搭了一个测试的nas来验证和熟悉一下新版本的安装 首先感谢 https://www.openos.org/threads/dsm-7-0-redpill.3536/ https://www.openos.org/threads/ds918-ds3615xs7-01.3529/ 这两位坛友无私的提供引导文件,我也参考了其中很多内容。 前期需要准备一些工具软件,一站式的解决就是下载https://xpenology.com/forum/topic/12422-xpenology-tool-for-windows-x64/ 论坛的1.42版本工具箱。 安装工具箱中的osfmount工具并打开选择左下角的Mount new...然后选择你下载的引导img文件弹出Select a partition in image 选择Partition 0,软件会自动分配驱动器盘符,此时一定要把Read-only drive前的勾去掉,因为一会我们要把Grub.cfg拷贝回去,如下图 然后进入给你分配的盘符到X:/boot/grub文件夹下找grub.cfg文件拷贝出来并做好备份 有了引导文件就需要更改其中的vid pid sn mac地址,如果你是多网口的主板或者机器还要修改netif_num 值并且添加对应数量的mac地址来实现群晖下多网口,具体修改位置如下图: vid pid就是你的启动U盘的识别码,用xpenology论坛工具箱里的U盘识别程序就可以看到,修改这个是为了在群晖系统里隐藏这个启动u盘,相信从6.x玩过来的人都明白,其他的项目就是根据你主板或者洗白选择来修改了,不过作为测试我就随便用工具箱里的算号器算了个号,而mac地址我用的是主板网口的真实mac。 修改完保存好了grub.cfg文件,就可以拷贝回你mount那个img的/boot/grub文件夹里替换掉原始的grub文件,然后再在osfmount软件里选择dismount all & exit,这样img文件就修改完成可以写到准备好的启动U盘里了 我用的这块主板相对比较奇葩,是某嘉的Z97N,自带双网口但是一个网口是intel的一个网口是realtek的,虽然我在引导里填了2个mac但是只有intel那个网卡能够识别,如果只有realtek网卡的主板很可能需要自己往里打驱动,具体打驱动的方法可以去网上搜一下之前很多非intel网卡黑裙在升级6.2还是6.1版本时有大批翻车的需要往里打驱动那些帖子下有方法,驱动文件可以去看开头两篇帖子里两位坛友分享的百度云。 我测试的第一遍没有再添加任何参数主板上也只插了一块硬盘再sata0口,启动后进web页面就会显示3 4 5 6口错误,sata接口禁用。然后回去扒了上面两篇帖子并且参考了https://isrey.com/archives/129/这个博客里对SataPortMap 以及 DiskIdxMap参数的定义,再结合主板说明书给出的相应原理图,重启后在grub的选择界面按e 进入参数编辑模式 从图上来看主板提供的6个sata接口是南桥芯片直接提供的,并没有走PCI-E通道进行转接,那么我就在vendor_format_version=2之后添加DiskIdxMap=00,表示第一个sata控制器(也就是南桥的sata控制)开始编号0-5对应6个sata口,此时因为我只接了一块sata硬盘,所以我把SataPortMap=1表示我sata控制器只有一个sata口,这样就系统就只检测我主板sata0接的硬盘,其他口直接无视,就不会因为其他端口没有接硬盘导致sata口被禁用,修改完按F10进入boot环节,然后就很顺利的进到安装环节。 当进入系统后我选择关机接上其他3块硬盘重启,这时就无需再进grub的编辑模式了,也不需要添加其他参数进系统就可以看见四块硬盘了 由于我sata0口的硬盘smart报错,我选择了没有对其他三块盘做任何操作情况下关机换盘,这也导致了唯一存了系统的硬盘被我替换掉,开机在不加grub参数情况下又一次sata5,6口报错,此时有了之前的经验,重启后我加入了DiskIdxMap=00 SataPortMap=4的参数进行开机实验(硬盘接的主板sata0-3口),这一次启动直接就认出了四块硬盘也同样顺利安装完系统。 那么下面可以稍微总结一下了 第一,DiskIdxMap参数是可以用来调换主板识别的sata顺序的,在那个博客的帖子里有很详细的解释,不过这个需要你对主板的sata连接设计有了解,有的主板可能会用额外的sata控制器,再加上新一代CPU内集成一个X4的直通nvme控制器那个很有可能是在默认状态下被认成第一sata口的,此时调换位置可能需要根据具体的主板来分析了。 第二个SataPortMap参数如果没跨控制器那么后面的参数设置成你对应连接的硬盘数因该就可以,比如你知道是主板第二控制器连接了1个硬盘,那么应该是SataPortMap=01,而如果跨控制器可能需要你根据连接不不同控制器的数量来具体填写,比如第一控制器连接了1个硬盘,第二控制器连接了2个,那么应该写成SataPortMap=12。 第三如果你实在不知道自己的硬盘控制器是怎么分配的那就只好用硬件试,只用DiskIdxMap=00 SataPortMap=1然后利用包括NVME接口在内的所有接口一个一个试过来,理论上应该总有一个能开机装系统,只要系统装上了,只要带着这块有系统的盘加上你需要用的硬盘开机,给其他硬盘做好了存储池理论上就可以正常使用了。 第四不建议大家把DiskIdxMap 和SataPortMap的写在img的grub文件里,那样的话要做调整还需要把U盘拔下来用diskgenius重新导出grub文件做修改,不如错了就重启重新往里填参数,鉴于这个特点最好是选择带核显的cpu和带显示输出的主板来保证重启修改boot文件的便利性。 希望以上的个人经验能对大家有所帮助
楼主研究的透彻,说明白了SATA控制器与SATA端口的关系,以及CPU直连的SATA和南桥扩展SATA的区别。 补充两点: 1、cpu-pci上直连的SATA一般可以通过BIOS关闭或开放,就是全部关闭也不会影响南桥上的sata端口。所以,对于蜗牛ABC等机型,如果不想被主板上的sata口和msata影响,可以进BIOS关闭sata即可。 2、7.0.1如果用U盘启动,已是FAT32分区,可以直接修改,不再需要进diskgenius工具导入导出了。 希望给大家提供方便。