同类问题我见过几次,现场表现一样但根因不同,所以第一步是把范围缩小。 挂了一块四 T 的数据盘,fdisk 建分区时最大只到两 T,另外两 T 在系统里完全看不到,parted print 显示分区表类型是 msdos。

如果同一时间还改过其他配置,建议一次只回退一项,方便确认是哪一步起的作用。

先分清是哪一类原因

  1. MBR 分区表用三十二位记录扇区数,单个分区的上限只有两 T
  2. parted 建表时默认使用 msdos 标签,没有显式指定 gpt
  3. 镜像自带的 fdisk 版本偏老,根本不会提示还有 GPT 这个选项

按顺序处理

1. 确认当前分区表类型

parted -s /dev/vdb print

2. 空盘改成 GPT 标签

parted -s /dev/vdb mklabel gpt

3. 按 GPT 划分整块盘

parted -s /dev/vdb mkpart primary xfs 0% 100%

4. 格式化并挂载确认容量

mkfs.xfs /dev/vdb1 && mount /dev/vdb1 /data

怎么确认已经恢复

parted print 显示分区表是 gpt,df -h /data 能看到接近四 T 的可用容量,剩余空间不再浪费。

容易忽略的地方

mklabel 会清空整张分区表,有数据的盘必须先备份;系统盘从 MBR 转 GPT 需要重装或者额外做一次引导修复。 处理过程中建议每改一项就验证一次,避免多个变量同时变化导致判断失真。

作者 9823189