parted 在剩余空闲空间新建分区

parted 操作磁盘风险极高,会破坏数据!务必先备份,确认磁盘设备(如 /dev/sdb,不要操作系统盘 /dev/sda)

1. 查看磁盘空闲空间

parted /dev/sdb print free

输出示例:

Number  Start   End     Size    File system  Name  Flags
        1049kB  107GB   107GB   Free Space

Free Space 就是剩余空间,记下 Start / End 位置

2. 进入 parted 交互模式

parted /dev/sdb

关键:分区表类型

  • GPT(推荐):可以直接建,分区编号自己指定
  • MBR:最多4个主分区,需要注意扩展分区

查看分区表:(parted) print
如果是新盘没有分区表:

(parted) mklabel gpt

3. 在空闲空间创建分区

语法:

mkpart [分区名称] [文件系统类型] [起始位置] [结束位置]

parted 的文件系统类型只是标记,不会格式化,只是分区类型标识

示例1:整块剩余空间新建分区

空闲从 1049kB 到 107GB

(parted) mkpart data 1049kB 107GB

分区名称 data 可随便写;GPT支持中文名称,一般用英文。

示例2:只拿一部分空闲空间

空闲 1049kB ~ 107GB,只分出20G:

(parted) mkpart data 1049kB 20GB

✅ 推荐直接复用 print free 输出里的 Start 值,避免对齐问题。

4. 校验分区

(parted) print

看到新分区号,例如 /dev/sdb1。

退出:

(parted) quit

5. 格式化( parted 只做分区,格式化单独执行)

# ext4
mkfs.ext4 /dev/sdb1

# xfs
mkfs.xfs /dev/sdb1

6. 临时挂载测试

mkdir -p /mnt/data
mount /dev/sdb1 /mnt/data

写入 /etc/fstab 实现开机自挂载(按需)


一条命令非交互方式(脚本用)

直接在空闲起始到空闲末尾新建分区

parted /dev/sdb mkpart data 1049kB 107GB

⚠️ 常见坑点

  1. 单位:parted 默认单位不同,建议带单位 kB/GB,不要只用数字。
  2. 4K对齐:起始位置尽量用 1MiB(1049kB),是行业标准对齐起点,性能更好。
  3. 不要在正在挂载的磁盘上新建分区,内核可能不自动识别,需要 partprobe
    partprobe /dev/sdb
  4. MBR分区表:主分区满了要建扩展分区,再在扩展分区内建逻辑分区。

自动化提取空闲空间脚本(可选)

如果你想自动获取空闲的起始、结束,不用手动复制:

parted /dev/sdb print free | grep "Free Space"
作者:月影鹏鹏  创建时间:2026-10-04 08:14
最后编辑:月影鹏鹏  更新时间:2026-10-04 08:15