Solaris SPARC RAID-5 UFS 左异步恢复复盘
发布:2026年10月7日 · 深圳易昇卓越数据恢复中心 · 实战案例复盘(Solaris UFS 阵列)
一台 Sun Solaris 服务器上的 RAID-5 阵列出现故障,阵列由四块硬盘组成,客户提供的是四块物理盘的部分镜像。盘上文件系统为 UFS,属于 SPARC 架构,数据需要按大端字节序解释。现场首先要解决的不是挂载,而是从镜像中把条带大小、盘序、左右结构和同步/异步方向判断出来。
现场情况:Sun Solaris 四盘 RAID-5 与部分镜像
本案例来自 Sun Solaris 系统下的 RAID-5 阵列,系统架构不是 X86,而是 SPARC 架构,因此字节序与常见小端环境不同,WinHex 的数据解释器需要切到大端,读出的数据才会正确。阵列由四块硬盘组成,现场拿到的是四个物理盘镜像文件,并且属于部分镜像,不是完整镜像或原盘。
先用 WinHex 打开四个镜像,按物理盘编号观察。硬盘 0 的第一个扇区看起来像磁盘标签,但数据不太对,结合后续结构判断,它应当是校验。硬盘 1 的第一个扇区是 I 节点表,前两个节点为保留项,后面有数据。硬盘 2 的第一个扇区应当是一个超级块,第三个扇区可见签名标志。硬盘 3 的首扇区是很规范的磁盘标签,其中能看到 Solaris 的片/切片表。
磁盘标签里可读出该 RAID-5 的逻辑容量为 100 多 GB,100 GB 多一些。它分有两个数据切片:第一个从 0 号柱面开始,大小约 50 GB;第二个从 26018 柱面开始,大小也是 50 GB 多一些。这个现场观察为后续判断起始位置、条带大小和盘序提供了入口。
第一步看什么:用 WinHex 按大端检查各盘首扇区
面对 SPARC 架构的 Solaris 盘,第一步是调整 WinHex 数据解释器,把大端选中,否则后续看到的超级块、I 节点表和磁盘标签都可能解释错误。然后不是急着拼 RAID,而是先分析 RAID 的起始扇区,逐个查看四块盘的首扇区结构。
硬盘 0 首扇区像磁盘标签但数据有问题,后来被判断为校验。硬盘 1 首扇区明显是 I 节点表,前两个节点保留,说明这里有文件系统元数据。硬盘 2 首扇区是超级块结构,第三个扇区有签名,它更像是备份超级块。硬盘 3 首扇区是规范的磁盘标签,里面有 Solaris 切片表,磁盘标签显示 RAID-5 逻辑容量 100 多 GB,两个数据切片分别从 0 号柱面和 26018 号柱面开始,大小都在 50 GB 左右。
从这些首扇区可以得出一个初步结论:这个 RAID-5 的起始位置在 0 号扇区附近,硬盘 0 首扇区是校验,硬盘 3 首扇区是磁盘标签,硬盘 2 首扇区是超级块,硬盘 1 首扇区是 I 节点表。盘序不能只看物理编号,而是要把这些结构关系与左右结构、同步/异步方向结合起来判断。
条带大小怎么定:从 16 号扇区到 32 扇区
条带大小是重组 RAID-5 的关键参数。按该磁盘结构,16 号扇区应当是超级块,于是先对硬盘 3 跳转到 16 号扇区,结果确实是 UFS 超级块,第三个扇区有签名标志。这说明条带大小一定大于 16 个扇区,至少应为 32 扇区。
接着用 UFS 超级块模板查看参数,选择大端模式。模板显示:备份超级块相对偏移在 16 段,主描述符相对偏移在 24 段,二级点表相对起始位置在 32 段,每段 1024 字节,也就是 2 个扇区。备份超级块的相对位置在 16 段,即 32 号扇区。于是去看硬盘 3 的 32 号扇区,结果不是备份超级块,而是 I 节点表/空结构,说明 32 号扇区已经转向下一个条带,数据没有和上面衔接。
由此可判断该 RAID-5 的条带大小就是 32 扇区。另一个佐证是硬盘 2 的首扇区是超级块结构,第三个扇区有签名,它像是备份超级块;备份超级块时间较旧,约 06 年,而原始超级块最后更新时间为 09 年 1 月 3 号,接近用户服务器最后一次写入和崩溃的时间。备份超级块不频繁更新,因此时间较旧合理。条带大小定为 32 扇区后,后续盘序判断才有了固定尺度。
盘序与左右结构:用 544 号扇区校验块反推
盘序判断与左右结构紧密相关。若为左结构,硬盘 3 首扇区有磁盘标签,应作为 0 号盘;硬盘 2 首扇区是备份超级块,跟随其后,应为 1 号盘;硬盘 1 首扇区是 I 节点表,应为 2 号盘;硬盘 0 首扇区是校验,应为最后一块,即 3 号盘。若为右结构,则硬盘 0 首扇区校验可能作为 0 号盘,硬盘 3 作为 1 号盘,硬盘 2 作为 2 号盘,硬盘 1 作为 3 号盘。两种结构会影响最终盘序。
为了判断左还是右,从硬盘 1 入手找校验位置。UFS 超级块中零号柱面组第一个数据块相对偏移为 832 段,每段 2 扇区,832×2 得到 1664 号扇区,这是 RAID-5 逻辑盘中的位置。当前 RAID-5 有四块盘,数据盘为三块,除以 3 后大致落在 554 号扇区附近。继续查看 544 号扇区,并对四块盘做对比。
硬盘 3 的 544 号扇区是 I 节点表;硬盘 2 是柱面组概要信息;硬盘 1 是柱面组概要与 I 节点表异或后的结果,也就是校验;硬盘 0 是目录像,可见点目录和点点目录,目录名长度为 1,I 节点号为 3,目录像长度为 12 字节。由此确认硬盘 1 的 544 号扇区是校验。条带大小为 32 扇区,四块盘循环扇区数为 128,用 544 对 128 取模,结果为 32,说明硬盘 1 的 32 号扇区是校验,而 32 号扇区刚好是第二个条带开始。左结构下硬盘 1 的第二个条带是校验,右结构下硬盘 1 必须是第四个条带才是校验,因此排除右结构,确定为左结构。盘序也就确定为硬盘 3、硬盘 2、硬盘 1、硬盘 0,即倒序 3210。
同步还是异步:543 号扇区跨条带衔接
左结构确定后,还要判断数据方向是同步还是异步。素材中的判断方法是对比数据块跨条带后的衔接对象:如果数据块 A 后面衔接的是数据块 B,则属于异步结构;如果衔接的是数据块 C,则属于同步方向。实际分析中,重点看硬盘 1 条带的最后一个扇区,也就是 543 号扇区,以及硬盘 3 的 544 号扇区和硬盘 0 的 544 号扇区。
先查看硬盘 1 的 543 号扇区,它依然是空 I 节点,说明 I 节点表还没有结束,接着跨了条带,后面进入校验区域。再回头看另外两块盘:硬盘 0 的 544 号扇区之前分析过是目录像;硬盘 3 的 544 号扇区依然是 I 节点表。这个对比说明,硬盘 1 的 I 节点表没有结束,继续写到了硬盘 3 的 544 号扇区,而不是接到硬盘 0 的 544 号扇区。
因此可以确定该 RAID-5 是异步结构。结合前面已经判断出的左结构,这个阵列就是左异步 RAID-5。到这里,重建所需的几个核心参数已经齐了:条带大小为 32 扇区,盘序为硬盘 3、硬盘 2、硬盘 1、硬盘 0,循环方向为左异步,起始位置为 0。
虚拟 RAID 重组与数据验证
参数分析完成后,用 UFS 工具做虚拟重组。先加载四个镜像文件,全部加入工具中,然后创建一个虚拟 RAID,把四块盘按照分析好的盘序依次加进去。由于最终盘序是倒着排列的,虚拟 RAID 中第一块盘对应硬盘 3 的镜像,之后依次是硬盘 2、硬盘 1、硬盘 0。类型选择 RAID5,条带大小填 32 扇区,也就是 16K,循环方向选择左异步,起始位置为 0,然后执行 Build 创建虚拟 RAID5。
重组后可以看到文件系统是 UFS。需要说明的是,这次现场使用的是非常小、非常不完整的部分镜像,因此工具虽然能显示 UFS 文件系统,但实际上数据肯定是不完整的,不能把它当作完整恢复结果来验证。素材也指出,如果是完全镜像盘、完整镜像文件或者原盘,只要双击工具中显示出来的片/切片,就能够直接读取数据。
所以本案例的验证重点,不是从部分镜像中读出全部业务文件,而是通过可观察到的磁盘标签、超级块、I 节点表、目录像和校验块,确认条带大小、盘序、左右结构和同步/异步方向是否正确。从素材的现场判断和重组结果看,这个 Solaris UFS RAID-5 案例到这里已经完成恢复成功。
结论与可迁移经验
这个案例最终判定为 Sun Solaris SPARC 架构、四盘 RAID-5、UFS 文件系统、大端字节序、条带大小 32 扇区、盘序倒序 3210、左异步结构。整个判断链条不是靠猜型号或套模板,而是从 WinHex 大端解释开始,先看各盘首扇区,再找 16 号扇区超级块、32 号扇区备份超级块,接着用 544 号扇区对比 I 节点表、柱面组概要、校验、目录像,最后用 543 号扇区跨条带衔接确认同步/异步方向。
可迁移的经验是:遇到 Solaris UFS RAID-5,且能拿到部分镜像时,先确认架构和字节序,再逐盘观察磁盘标签、I 节点表、超级块和校验块。条带大小可以通过超级块位置反推,盘序可以通过左右结构假设和校验位置验证,同步/异步则要看条带边界的数据衔接对象。若这些关键结构在镜像中还能看到,这套分析路径有参考价值。
不适用的情形也要明确:如果镜像严重不完整,关键结构缺失,或者无法确认盘数、RAID 级别、字节序和条带边界,就不能直接套用本案例的结论。本案例能推进,是因为现场镜像中仍保留了磁盘标签、UFS 超级块、I 节点表、目录像和校验块等可互相印证的结构。缺少这些依据时,应先补镜像或重新确认阵列信息,而不是直接按某个参数重组。
常见问题
Solaris UFS 阵列恢复为什么要先确认大端字节序?
本案例是 SPARC 架构,和 X86 架构完全不同,用的字节序也不一样。素材中明确要先把 WinHex 数据解释器调整到大端,读出的超级块、I 节点表和磁盘标签才会正确。如果字节序选错,后续条带大小和盘序判断都会失去可靠依据。
条带大小 32 扇区是怎么确认的?
先看硬盘 3 的 16 号扇区,发现是 UFS 超级块,说明条带大小至少大于 16 扇区。再用 UFS 超级块模板看到备份超级块应在 16 段即 32 号扇区,但硬盘 3 的 32 号扇区不是备份超级块,而是 I 节点表,说明 32 号扇区已进入下一条带,因此条带大小为 32 扇区。
为什么盘序最后定为硬盘 3、2、1、0?
因为判断为左结构后,硬盘 3 首扇区是磁盘标签,作为 0 号盘;硬盘 2 首扇区是备份超级块,跟随其后作为 1 号盘;硬盘 1 首扇区是 I 节点表,作为 2 号盘;硬盘 0 首扇区是校验,作为最后一块盘。因此最终盘序是倒序 3210。
左异步 RAID-5 是什么意思?
左结构是结合盘序和校验方向判断出的排列方式,异步则是看数据块跨条带后衔接哪一块盘。本案例中硬盘 1 的 543 号扇区仍是 I 节点表,跨条带后接到硬盘 3 的 544 号扇区,而不是硬盘 0 的 544 号扇区,因此判断为异步,合起来就是左异步。
只提供部分镜像,能验证出文件系统吗?
素材中现场使用的镜像非常小、非常不完整。虚拟 RAID 重组后,UFS 工具能显示出文件系统是 UFS,但数据肯定看不完整。若换成完全镜像盘、完整镜像文件或原盘,重组后双击显示的片/切片就能直接读取数据。能否完整恢复取决于镜像完整程度。
数据无价,先检测再决定
到店免费检测,出具检测报告后根据具体故障报价,不做盲目低价引流再加价。不成功不收费。
📞 韦工:18620311365
📍 办公室:福田区深南中路2070号电子科技大厦
📖 延伸阅读:RAID 参数判定方法 · RAID5 重建实战 · 技术专题