在(黑)群晖里挂载NTFS磁盘

最近丢掉了七年前买的台式机,换了联想的 R7000 笔记本作为主力工作和娱乐机。但是原来主机里 1TB 机械硬盘的数据要导出来,本来想着以前买的易驱线(SATA->USB3.0)搞定没问题,结果发现 WD 1TB 蓝盘即使在易驱线插上了 12V/2A 外接电源,依然在启动时吭哧吭哧,无法越过启动时的电流峰值。硬盘上写着 12V/0.55A 的工作电流看看就好,千万别信。寻觅一圈儿,家里只有黑群晖(蜗牛星际)自带台式机配置的 SATA 和电源,只是定制化 Linux 能否读写 NTFS 让人心里打鼓。

好在网上类似的教程还挺多,只要搜“群晖 NTFS 挂载”就有不少教程参考。总的来说就是以下几步:

  1. 用 root 权限打开 /etc.defaults/synoinfo.conf
  2. 找到 internalportcfgesataportcfg,二者的比特位进行 OR 操作的话应该是所有的 SATA 类接口数目。即如果二者 OR 运算结果为 0xFFFF,则说明本机应该有 16 个 SATA 类接口(含 SATA 和 eSATA)。在群晖的系统设定中,SATA 只可以使用 Linux 的 ext3/4/btrfs 文件系统,但 eSATA 则除了以上 Linux 文件系统,还可以使用 NTFS/exFAT 等 Windows 文件格式。所以将某个 SATA 接口改为 eSATA 即可让系统自动挂载 NTFS 格式。
  3. 蜗牛星际这台机的默认配置是 internalportcfg = 0xFFFFesataportcfg = 0x0,也就是所有内部 SATA 类接口配置为 SATA。在“存储空间管理员”中可以看到所有的 SATA 类槽位数量。在我的配置中,第一个插槽是群晖系统所在的 mSATA 硬盘,3/4 号槽位是插在 3.5 寸硬盘 1/2 号盘位的硬盘。我的目标是把插在 4 号盘位的 NTFS 硬盘改为 eSATA,以便直接访问。

  1. 将两个参数修改为以下数值(原数值用 # 注释掉):
    internalportcfg = 0xF
    esataportcfg = 0xFFF0

    刚刚发现,在我的 synoinfo.conf 中,先定义的是 esataportcfg,而这个配置好像会覆盖掉 internalportcfg。也就是说只要 esataportcfg 的比特位设置为 1,这个槽位就会被认定为 eSATA 而不管 internalportcfg 是否设定为 1。

  2. 由此,前四个槽位(含 1/2 号 3.5 寸盘位)为内部 SATA,使用 Linux 文件系统,后面的其他盘位都可以挂载任意其他系统。被认为是 eSATA 的硬盘,将出现在“控制面板”的“外接设备”中。
  3. 你以为这样就圆满了吗?呵呵。当我把配置调好后,“外接设备”的确出现了标识为 eSATA 的 1TB硬盘,并且显示有四个分区。但是,文件系统却显示<不支持>,且 File Station 中也不像大家说的,会自动挂载成名为 satasharefile-x 的文件夹直接浏览。在 SSH 中用 fdisk -l 查看分区信息后发现,系统报告 NTFS 分区的边界没有 4K 对齐。再上网搜搜,有不少人报告类似情况,因为 当时 NTFS 的分区格式化时可能不是 4KB 为最小簇,而群晖系统对所有系统均按 4KB 识别。解决办法就像中年人的世界,唯一且无奈——按 4KB 重新格式化。

所以,在故事的最后,并没有得到美好的结局。只能把硬盘带到有 Windows 台式机的环境,笨拙得开机箱插进去,用移动硬盘拷回数据。

Comments
Write a Comment