如何扩展磁盘分区大于2TB

假设你的磁盘 /dev/sdb 总容量为 13TB,但分区时发现只能使用 2TB,通常是因为使用了 MBR(Master Boot Record)分区表,而 MBR 的天然限制是单个分区最大仅支持 2TB。要支持超过 2TB 的分区,需改用 GPT(GUID Partition Table) 分区表。

以下是完整的解决方案:

1. 确认磁盘分区表类型

sudo parted /dev/sdb print

• 若输出 Partition Table: msdos,表示当前是 MBR 分区表。
• 若输出 Partition Table: gpt,则无需调整,但需要检查其他问题(例如未正确对齐)。


2. 转换为 GPT 分区表

注意:此操作会删除磁盘所有数据!确保磁盘无重要数据或已备份。

步骤:

# 进入 parted 交互模式
sudo parted /dev/sdb

# 输入以下命令(逐行执行):
(parted) mklabel gpt            # 创建 GPT 分区表
(parted) mkpart primary 0% 100% # 创建占用全部空间的分区(默认名称为 sdb1)
(parted) align-check optimal 1  # 检查对齐(返回 aligned 表示成功)
(parted) quit                   # 退出

3. 格式化分区

# 查看新分区名(通常为 /dev/sdb1)
sudo lsblk

# 格式化(推荐 XFS,适合大容量磁盘)
sudo mkfs.xfs /dev/sdb1

# 或使用 EXT4
sudo mkfs.ext4 /dev/sdb1

4. 挂载分区

# 创建挂载点
sudo mkdir -p /opt/mysql

# 临时挂载
sudo mount /dev/sdb1 /opt/mysql

# 永久挂载(编辑 /etc/fstab)
echo "/dev/sdb1 /opt/mysql xfs defaults 0 0" | sudo tee -a /etc/fstab

# 验证挂载
sudo mount -a
df -h /opt/mysql

5. 验证分区容量

# 检查分区是否识别全部 13TB
sudo parted /dev/sdb print
# 应显示类似:
# Number  Start   End     Size    File system  Name     Flags
# 1      1049kB  13.0TB  13.0TB  xfs          primary

6. 高级优化(可选)

分区对齐优化

确保分区起始位置对齐到 1MiB(避免性能损失):

sudo parted /dev/sdb
(parted) mkpart primary 1MiB 100%  # 手动指定起始偏移

文件系统优化(XFS 示例)

# 启用更高效的 inode 和日志配置
sudo mkfs.xfs -f -i size=512 -l size=128m /dev/sdb1

7. 故障排查

问题:转换 GPT 后系统无法启动

原因:若 /dev/sdb 是系统盘,转换为 GPT 会导致 BIOS/MBR 引导失败。
解决方案:仅对非系统盘(数据盘)使用 GPT。

问题:挂载时报错 mount: unknown filesystem type 'xfs'

原因:系统未安装 XFS 工具。
修复

sudo yum install xfsprogs -y
sudo modprobe xfs

关键总结

步骤 命令/操作 作用
转换分区表 parted mklabel gpt 突破 2TB 限制
创建分区 parted mkpart primary 0% 100% 使用全部空间
格式化 mkfs.xfs /dev/sdb1 适配大容量存储
挂载 mount /dev/sdb1 /opt/mysql 提供存储路径

通过以上步骤,你的 13TB 硬盘将能完整使用,无需受限于 2TB 分区。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容