)
手把手教你用parted为Ubuntu 22.04的/home目录无损扩容附GPT分区表操作当你第一次安装Ubuntu时可能没预料到/home目录会这么快被塞满——下载的电影、开发环境的容器镜像、编译中间文件不知不觉就占满了当初分配的那点可怜空间。别急着删文件或重装系统用parted这个神器就能像搭积木一样重新调整分区布局把闲置空间挪给/home用。下面我会用最稳妥的方式带你一步步完成这个操作确保你的猫照片和代码仓库安然无恙。1. 准备工作安全扩容的黄金法则在动磁盘分区之前有四个必须检查的事项完整备份重要数据哪怕99%成功的操作也有1%的风险用rsync或tar把/home目录打包到外接硬盘确认分区表类型现代Ubuntu默认使用GPT分区表用sudo parted -l查看找到带有Partition Table: gpt字样的行准备Live USB万一操作失误导致系统无法启动可以用Ubuntu安装U盘进入Try Ubuntu模式修复计算空间需求用df -h查看当前/home使用情况比如$ df -h /home Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p3 200G 186G 14G 94% /home关键提示操作前务必卸载/home分区用sudo umount /home如果提示设备忙可能需要进入单用户模式。2. 分区手术用parted调整GPT分区边界2.1 定位目标分区首先用lsblk找到/home对应的物理分区比如可能是/dev/nvme0n1p3。然后启动parted交互模式sudo parted /dev/nvme0n1输入print free查看空闲空间分布你会看到类似这样的输出Number Start End Size File system Name Flags 1 1049kB 538MB 537MB fat32 boot, esp 2 538MB 10.7GB 10.2GB ext4 3 10.7GB 215GB 204GB ext4 home 215GB 256GB 41.0GB Free Space2.2 调整分区边界假设我们要把末尾的41GB空闲空间合并到/home分区编号3先删除原分区不会丢失数据(parted) rm 3新建扩展后的分区注意保持起始点不变(parted) mkpart primary ext4 10.7GB 256GB设置分区名称(parted) name 3 home危险操作警示绝对不要调整系统启动分区通常是编号1的EFI分区的边界这会导致系统无法引导。3. 文件系统扩容让系统识别新空间分区调整只是改了围墙位置还需要扩展文件系统才能真正使用空间sudo e2fsck -f /dev/nvme0n1p3 # 强制检查文件系统 sudo resize2fs /dev/nvme0n1p3 # 调整ext4文件系统大小完成后用df -h检查应该能看到/home的可用空间增加了。如果遇到contains a mounted filesystem错误说明你忘了卸载分区。4. 疑难排错常见问题解决方案4.1 分区错位修复有时调整分区后会出现Partition ends after the end of the disk警告这时需要用sudo fdisk -l查看实际磁盘容量重新计算精确的结束扇区通常比磁盘总容量小1MB在parted中用unit s切换为扇区单位重新操作4.2 空间未生效处理如果resize2fs后空间没变化可能是LVM卷组在作祟。用这套组合拳sudo pvresize /dev/nvme0n1p3 # 调整物理卷 sudo lvextend -l 100%FREE /dev/mapper/ubuntu--vg-home # 扩展逻辑卷 sudo resize2fs /dev/mapper/ubuntu--vg-home # 扩展文件系统4.3 系统无法启动应急方案如果重启后卡在grub rescue界面用Live USB启动后挂载原系统分区sudo mount /dev/nvme0n1p2 /mnt sudo mount /dev/nvme0n1p1 /mnt/boot/efi重新安装grubsudo chroot /mnt grub-install /dev/nvme0n1 update-grub5. 进阶技巧分区优化与自动化5.1 分区对齐优化现代SSD需要2048扇区对齐以获得最佳性能在parted中创建分区时使用(parted) mkpart primary ext4 10.7GB 256GB alignoptimal5.2 自动化脚本示例对于需要频繁调整的测试环境可以编写这样的脚本#!/bin/bash DEVICE/dev/nvme0n1 HOME_PART3 NEW_SIZE100% sudo umount /home sudo parted $DEVICE resizepart $HOME_PART $NEW_SIZE sudo e2fsck -f ${DEVICE}p$HOME_PART sudo resize2fs ${DEVICE}p$HOME_PART sudo mount -a记得用chmod x给脚本添加执行权限。