简介:本文详细解析Linux系统下使用parted命令进行磁盘分区的完整流程,涵盖从基础操作到高级技巧的全方位指导,特别适合系统管理员和开发者学习参考。
作为Linux系统下功能强大的交互式磁盘分区工具,parted(Partition Editor)相比传统fdisk工具具有显著优势。其最突出的特点是支持GPT(GUID Partition Table)分区表,突破了MBR分区表2TB的容量限制,特别适合处理现代大容量存储设备。parted采用交互式命令行界面,支持脚本化操作,可同时管理多个磁盘设备。
在分区类型支持方面,parted不仅兼容传统的ext2/3/4、xfs文件系统,还能处理lvm逻辑卷、swap交换分区等特殊分区类型。其独特的实时修改功能允许在不卸载文件系统的情况下调整分区大小(需文件系统支持),这在生产环境维护中极具价值。
sudo parted /dev/sdX
执行后进入parted交互环境,显示当前磁盘信息:
Model: VMware Virtual Disk (scsi)Disk /dev/sdb: 53.7GBSector size (logical/physical): 512B/512BPartition Table: gptDisk Flags:
print:显示完整分区表print free:显示未分配空间unit:设置显示单位(B/KB/MB/GB)select /dev/sdY:切换磁盘设备
mkpart primary ext4 1GB 10GB
参数说明:
primary:主分区类型(可替换logical/extended)ext4:文件系统类型1GB:起始位置10GB:结束位置
resizepart 2 15GB
将2号分区扩展至15GB(需确保后续有可用空间)
rm 3
删除3号分区(操作不可逆)
现代磁盘采用4K物理扇区,正确对齐可提升性能:
mkpart primary xfs 1049kB 53.7GB
使用1049kB(2048*512B)作为起始位置确保对齐。可通过align-check opt N验证分区N的对齐状态。
对于需要兼容新旧系统的场景,可创建混合分区表:
(parted) mklabel msdos # 创建MBR表(parted) mkpart primary ext4 1MB 10GB(parted) set 1 boot on # 设置可启动标志(parted) mklabel gpt # 转换为GPT表(保留MBR引导分区)
创建partition.script:
mklabel gptmkpart primary ext4 1GB 10GBmkpart primary xfs 10GB 20GBset 1 boot on
执行脚本:
sudo parted -s /dev/sdX < partition.script
lsblk -f确认磁盘标识blkid验证分区UUIDdd if=/dev/sdX of=/backup.img bs=4Mumount /dev/sdX1
mklabel gptmkpart primary ext4 1MB 100%set 1 lvm on # 准备用于LVM
mklabel gptmkpart primary fat32 1MB 513MB # EFI分区mkpart primary ext4 513MB 10GB # Linux根分区mkpart primary ntfs 10GB 50GB # Windows分区set 1 esp on # 设置EFI标志
fsck修复前确保分区未挂载| 特性 | parted | fdisk | gdisk |
|---|---|---|---|
| 分区表支持 | MBR/GPT | MBR | GPT |
| 最大容量 | 8ZB | 2TB | 8ZB |
| 交互界面 | 是 | 是 | 是 |
| 脚本支持 | 是 | 否 | 否 |
| 在线调整 | 部分支持 | 否 | 否 |
parted在处理大容量磁盘和自动化脚本方面具有明显优势,而fdisk在简单MBR分区场景中可能更直观。对于纯GPT环境,gdisk提供更专业的界面。
mklabel gptmkpart primary 1MB 10GB# 退出parted后执行sudo cryptsetup luksFormat /dev/sdX1sudo cryptsetup open /dev/sdX1 crypt1sudo mkfs.ext4 /dev/mapper/crypt1
mklabel gptmkpart primary 1MB 50GBmkpart primary 50GB 100GB# 创建软件RAIDsudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdX1 /dev/sdY1
针对云服务器建议:
mklabel gptmkpart primary ext4 1GB 90%mkpart swap linux-swap 90% 100%set 1 boot on
配合云服务商的镜像市场实现快速部署。
parted无法识别磁盘:
dmesg | grep sd确认磁盘是否被系统识别lsof /dev/sdX)分区后无法启动:
sudo mount /dev/sdX1 /mntsudo grub-install --root-directory=/mnt /dev/sdX
扩展分区失败:
GPT保护分区未删除:
sgdisk --zap-all /dev/sdX清除GPT头(谨慎使用)通过系统掌握parted命令的各项功能,结合实际场景灵活运用,可大幅提升Linux系统下的磁盘管理效率。建议新手先在虚拟机环境练习,逐步掌握分区调整的精确控制技巧。