关键一步是将参与阵列的分区类型ID修改为fd(Linux raid autodetect),该操作仅更改分区表标记,不破坏数据,旨在让内核和mdadm正确识别分区用途,避免误挂载或组装失败。

要为软件RAID搭建做前置准备,关键一步是将参与阵列的分区类型ID(Hex Code)修改为 fd(Linux raid autodetect)。这个操作本身不格式化数据、不破坏文件系统,仅更改分区表中标记,让内核和 mdadm 工具能正确识别这些分区为“专用于RAID”,避免误挂载或自动初始化。
为什么要设为 fd?
Linux 内核在扫描块设备时,会依据分区 ID 判断用途:
• ID 83(Linux)会被当作普通数据分区,可能被自动挂载或被其他工具操作;
• ID fd 明确告知系统:“此分区属于 RAID 阵列,请交由 md 驱动管理”;
• mdadm --assemble --scan 默认只扫描 ID 为 fd 的分区,否则需手动指定设备,易出错。
用 fdisk 修改分区类型ID的操作步骤
以 /dev/sdb1 为例(请替换为你实际的设备名):
- 运行
fdisk /dev/sdb - 输入
t进入类型修改模式 - 输入分区号(如
1) - 输入十六进制码
fd(不是文字“fd”,而是直接键入两个字符) - 输入
p查看确认:System 列应显示 Linux raid autodetect - 输入
w保存并退出
⚠ 注意:无需重启,但建议执行 partprobe /dev/sdb 或 blockdev --rereadpt /dev/sdb 让内核立即重读分区表。
常见误区与注意事项
- 不要在已挂载或正在使用的分区上改 ID —— 虽然不删数据,但可能触发内核异常响应
- 所有参与同一 RAID 的分区必须统一设为 fd;混用 83 和 fd 可能导致
mdadm组装失败 - GPT 磁盘不使用 Hex Code,而是靠分区类型 GUID 区分;若用 GPT,应设为
fd00(Linux RAID)GUID,而非 fd - 修改后可用
fdisk -l /dev/sdb或blkid -o list核对输出中是否含TYPE="linux_raid_member"
替代方法:用 sfdisk 批量处理(适合多盘场景)
若需配置数十个分区,可导出当前表、批量替换 ID 后回写:
- 导出:
sfdisk -d /dev/sdb > sdb_backup.txt - 编辑文本,将所有
type=83替换为type=fd - 写回:
sfdisk /dev/sdb
该方式跳过交互,适合脚本化部署,且不改变分区起止位置和大小。

















