必须用parted + mklabel gpt初始化并mkpart 1MiB对齐,否则内核无法识别超2TB容量;fdisk默认MBR上限2.2TiB,需强制转GPT且执行partprobe刷新内核分区表。

直接说结论:必须用 parted + mklabel gpt 初始化,再用 mkpart 创建对齐分区,否则内核根本识别不到全部容量——这不是操作慢不慢的问题,是 lsblk 显示容量被截断、mkfs 报 Invalid argument 的硬性限制。
为什么 fdisk 一上手就报错或只认出 2TB
因为 fdisk 默认操作 msdos(即 MBR)分区表,而 MBR 的起始/结束扇区字段只有 32 位,按 512 字节扇区算,上限就是 232 × 512 = 2.2TiB。超过部分的扇区地址根本无法编码,内核连设备节点 /dev/sdb1 都不会生成。你看到 lsblk 里磁盘总容量正常但分区大小卡在 2TB、或者 df -h 完全不显示新挂载点,基本可以锁定是这个原因。
-
fdisk -l /dev/sdb如果末尾写着Disk label type: dos,就是 MBR,必须换工具 - 新版
fdisk虽支持输入g切 GPT 模式,但交互不直观,容易漏掉w写入或误选单位,不推荐用于生产环境 -
parted -l输出中若显示Partition Table: gpt,说明已就绪;若为msdos,哪怕磁盘全新也得先mklabel gpt
mklabel gpt 是不可跳过的强制动作
parted 不会因为你插了一块 60TB 硬盘就自动切 GPT——它只检测磁盘大小并提示“建议用 GPT”,但默认仍沿用旧标签(包括空盘可能残留的 MBR 签名)。不执行这步,后续所有 mkpart 都在 MBR 框架下运行,结果就是分区表写进去但超出 2TB 的部分无效。
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 进入交互:
parted /dev/sdb(把sdb换成你的目标盘) - 执行:
mklabel gpt,系统会警告“清空分区表”,输yes——它只清元数据,不擦数据区,但为防万一,关键数据请提前备份 - 立刻
print确认输出里有Partition Table: gpt,没看到就重来 - 别信“磁盘全新所以不用初始化”——某些 RAID 卡或 NVMe 设备出厂自带隐藏 MBR 签名,
mklabel gpt才能彻底清除
mkpart 必须用 1MiB 对齐,别碰 0 或 0%
用 mkpart primary 0% 100% 看似省事,但 0% 在某些内核版本或磁盘类型(如 4Kn 扇区盘)下会落到非对齐位置,触发 Warning: The resulting partition is not properly aligned。更糟的是,这种分区虽然能创建成功,但 I/O 性能可能下降 20% 以上,且部分旧 BIOS/UEFI 固件无法引导。
- 推荐写法:
mkpart primary 1MiB 100%——1MiB= 2048 个 512B 扇区,是 SSD/NVMe/现代 RAID 卡的通用对齐边界 - 如果非要手动算扇区,先
unit s切扇区单位,再mkpart primary 2048s 100% - 创建后必须验证:
align-check optimal 1,返回1 aligned才算过关;若报not aligned,立刻rm 1删除重来 - 文件系统类型(如
ext4、xfs)在这里只是提示,parted不格式化,真正格式化要靠mkfs.xfs或mkfs.ext4
退出后 kernel 不刷新分区表是常见失联原因
parted quit 后马上跑 lsblk 或 mkfs,大概率看到 /dev/sdb1 不存在、报 No such file or directory。这是因为内核缓存没更新,得主动通知它。
- 最稳妥方式:
partprobe /dev/sdb(需安装util-linux包) - 备选:
blockdev --rereadpt /dev/sdb(部分老内核不支持) - 极端情况(比如 RAID 卡驱动不响应):只能
reboot,但这是最后手段 - 验证是否生效:
ls /dev/sdb*应该列出/dev/sdb和/dev/sdb1;cat /proc/partitions | grep sdb应该显示两个条目
对齐和 partprobe 这两步最容易被跳过,但恰恰是 90% 的“分完看不到分区”问题的根源。GPT 本身很健壮,坑都在初始化和内核同步这些细节里。

















