partprobe是解决“分区改完但系统看不见”的核心工具,它仅通知内核重读磁盘分区表,不格式化、不挂载、不改动数据;必须在fdisk/parted等工具保存变更后执行,且需root权限并推荐指定设备如sudo partprobe /dev/sdb。

不用重启服务器,partprobe 就是解决“分区改完了但系统看不见”的核心工具。它不格式化、不挂载、不改动数据,只做一件事:通知内核丢掉旧的分区缓存,立刻从磁盘重新读取最新分区表。
什么时候必须用 partprobe
只要你用 fdisk、parted 或 gdisk 完成以下操作并保存(比如 fdisk 中按 w,parted 中执行 quit),就必须跟上 partprobe:
- 新建或删除了分区(例如新增了
/dev/sdb2) - 调整了现有分区大小(如把
/dev/sda1扩容) - 清空或重建整块磁盘的分区表(比如
parted /dev/sdc mklabel gpt) - 执行后看到警告:
Re-reading the partition table failed ... The kernel still uses the old table
正确执行方式(带权限 + 指定设备)
必须用 root 权限,且强烈建议明确指定目标磁盘,避免误刷其他盘:
- 刷新单块磁盘(最推荐):
sudo partprobe /dev/sdb - 查看是否生效(验证用):
sudo partprobe -s,输出类似/dev/sdb: gpt partitions 1 2 - 仅测试不刷新(调试用):
sudo partprobe -d /dev/sdc - 刷新所有磁盘(多盘环境慎用):
sudo partprobe
执行失败常见原因和应对
如果运行后仍看不到新分区,先检查这几个关键点:
- 确认分区操作已真正保存:fdisk 要按 w,parted 要执行 quit,否则磁盘上根本没有变更
- 检查设备是否被占用:
lsof /dev/sdb或fuser -v /dev/sdb;如有挂载或进程在用,先umount /dev/sdb1或终止对应进程 - 尝试更底层的替代命令:
sudo partx -a /dev/sdb(对 GPT 或复杂分区兼容性更好) - 极少数情况可强制重读:
sudo blockdev --rereadpt /dev/sdb
partprobe 后该做什么
它只负责同步分区视图,后续操作需你手动衔接:
- 要格式化新分区?等 partprobe 成功后,再运行
sudo mkfs.ext4 /dev/sdb2 - 要挂载使用?先确认
ls /dev/sdb*能列出新设备节点,再sudo mount /dev/sdb2 /mnt - 用于 LVM 扩容?partprobe 刷新后,立即执行
sudo pvresize /dev/sdb1


















