同类问题我见过几次,现场表现一样但根因不同,所以第一步是把范围缩小。 挂了一块四 T 的数据盘,fdisk 建分区时最大只到两 T,另外两 T 在系统里完全看不到,parted print 显示分区表类型是 msdos。
如果同一时间还改过其他配置,建议一次只回退一项,方便确认是哪一步起的作用。
先分清是哪一类原因
- MBR 分区表用三十二位记录扇区数,单个分区的上限只有两 T
- parted 建表时默认使用 msdos 标签,没有显式指定 gpt
- 镜像自带的 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 需要重装或者额外做一次引导修复。 处理过程中建议每改一项就验证一次,避免多个变量同时变化导致判断失真。